Documentation

TauCeti.ModelTheory.Infinitary.Fragment

Fragments of L_{ω₁ω} #

A fragment is a set of L_{ω₁ω} formulas without free variables, each tagged by its number of bound-variable slots, that is closed under taking constructor components: both sides of an implication, the body of a universal quantifier, and every member of a countable conjunction or disjunction. In this syntax, where bound variables are slots, the component relation is the subformula relation.

A fragment is not required to contain any atomic formula. Consequently the fragment generated by a countable set of formulas is countable over every language, however many symbols it has: each member is reached from a generator by a finite path of component steps, each indexed by a natural number. Closure under the formation of formulas is a separate condition, not imposed here.

Main definitions #

Main results #

References #

structure FirstOrder.Language.Fragment (L : Language) :
Type (max u v)

A fragment of L_{ω₁ω}: a set of formulas without free variables, tagged by their number of bound-variable slots, closed under taking constructor components. No atomic formula is required to belong.

Instances For
    @[simp]

    The underlying set of a fragment is its coercion.

    Membership in a fragment is membership in its underlying set.

    theorem FirstOrder.Language.Fragment.ext {L : Language} {A B : L.Fragment} (h : ∀ (p : (n : ℕ) × L.BoundedFormulaω Empty n), p ∈ A ↔ p ∈ B) :
    A = B

    Fragments with the same members are equal.

    theorem FirstOrder.Language.Fragment.ext_iff {L : Language} {A B : L.Fragment} :
    A = B ↔ ∀ (p : (n : ℕ) × L.BoundedFormulaω Empty n), p ∈ A ↔ p ∈ B

    Closure under components #

    The antecedent of a member implication is a member.

    The consequent of a member implication is a member.

    theorem FirstOrder.Language.Fragment.all_mem {L : Language} (A : L.Fragment) {n : ℕ} {φ : L.BoundedFormulaω Empty (n + 1)} (h : ⟨n, BoundedFormulaInf.all φ⟩ ∈ A) :
    ⟨n + 1, φ⟩ ∈ A

    The body of a member universal quantification is a member.

    theorem FirstOrder.Language.Fragment.iInf_mem {L : Language} (A : L.Fragment) {n : ℕ} {φs : ℕ → L.BoundedFormulaω Empty n} (h : ⟨n, BoundedFormulaInf.iInf φs⟩ ∈ A) (k : ℕ) :
    ⟨n, φs k⟩ ∈ A

    Every conjunct of a member countable conjunction is a member.

    theorem FirstOrder.Language.Fragment.iSup_mem {L : Language} (A : L.Fragment) {n : ℕ} {φs : ℕ → L.BoundedFormulaω Empty n} (h : ⟨n, BoundedFormulaInf.iSup φs⟩ ∈ A) (k : ℕ) :
    ⟨n, φs k⟩ ∈ A

    Every disjunct of a member countable disjunction is a member.

    The complete lattice of fragments #

    @[instance_reducible]

    Fragments are ordered by inclusion of their underlying sets.

    @[instance_reducible]

    The intersection of a family of fragments is a fragment.

    @[simp]
    theorem FirstOrder.Language.Fragment.coe_sInf {L : Language} (𝒜 : Set L.Fragment) :
    ↑(sInf 𝒜) = ⋂ A ∈ 𝒜, ↑A

    The underlying set of the meet of a family of fragments is the intersection.

    @[simp]
    theorem FirstOrder.Language.Fragment.mem_sInf {L : Language} {𝒜 : Set L.Fragment} {p : (n : ℕ) × L.BoundedFormulaω Empty n} :
    p ∈ sInf 𝒜 ↔ ∀ A ∈ 𝒜, p ∈ A

    A formula belongs to the meet of a family of fragments exactly when it belongs to each.

    @[instance_reducible]

    Fragments form a complete lattice, whose meets are intersections.

    @[simp]

    Every formula belongs to the top fragment.

    @[simp]

    The underlying set of the top fragment is the set of all formulas.

    @[simp]
    theorem FirstOrder.Language.Fragment.mem_inf {L : Language} {A B : L.Fragment} {p : (n : ℕ) × L.BoundedFormulaω Empty n} :
    p ∈ A ⊓ B ↔ p ∈ A ∧ p ∈ B

    A formula belongs to the meet of two fragments exactly when it belongs to both.

    @[simp]
    theorem FirstOrder.Language.Fragment.coe_inf {L : Language} (A B : L.Fragment) :
    ↑(A ⊓ B) = ↑A ∩ ↑B

    The underlying set of the meet of two fragments is the intersection.

    @[simp]
    theorem FirstOrder.Language.Fragment.coe_sSup {L : Language} (𝒜 : Set L.Fragment) :
    ↑(sSup 𝒜) = ⋃ A ∈ 𝒜, ↑A

    The underlying set of the join of a family of fragments is the union: a union of component-closed sets is component-closed.

    @[simp]
    theorem FirstOrder.Language.Fragment.mem_sSup {L : Language} {𝒜 : Set L.Fragment} {p : (n : ℕ) × L.BoundedFormulaω Empty n} :
    p ∈ sSup 𝒜 ↔ ∃ A ∈ 𝒜, p ∈ A

    A formula belongs to the join of a family of fragments exactly when it belongs to one of them.

    @[simp]
    theorem FirstOrder.Language.Fragment.mem_sup {L : Language} {A B : L.Fragment} {p : (n : ℕ) × L.BoundedFormulaω Empty n} :
    p ∈ A ⊔ B ↔ p ∈ A ∨ p ∈ B

    A formula belongs to the join of two fragments exactly when it belongs to one of them.

    @[simp]
    theorem FirstOrder.Language.Fragment.coe_sup {L : Language} (A B : L.Fragment) :
    ↑(A ⊔ B) = ↑A ∪ ↑B

    The underlying set of the join of two fragments is the union.

    @[simp]

    No formula belongs to the bottom fragment.

    @[simp]

    The underlying set of the bottom fragment is empty.

    Generated fragments #

    Reachability from a set S of formulas by finitely many component steps.

    Instances For

      The fragment generated by a set of formulas: the formulas reachable from it by component steps.

      Instances For
        @[simp]

        Membership in the generated fragment is reachability by component steps.

        The generators belong to the generated fragment.

        Leastness. The fragment generated by S lies below a fragment exactly when S does.

        Generation and the underlying set form a Galois connection.

        The generated fragment is monotone in its generators.

        @[simp]

        A fragment generates itself.

        Countability #

        Countability. A countable set of formulas generates a countable fragment, over any language: every member is reached from a generator along a finite list of component steps, each coded by a pair of natural numbers.

        The fragments of a sentence and of a theory #

        The fragment generated by a sentence.

        Instances For

          The fragment of a sentence is the fragment generated by the sentence.

          The fragment of a sentence lies below a fragment exactly when the sentence belongs to it.

          A sentence belongs to the fragment it generates.

          The fragment generated by a sentence is countable, over any language.

          The fragment generated by a set of sentences.

          Instances For

            The fragment of a set of sentences is the fragment generated by its sentences.

            theorem FirstOrder.Language.Fragment.ofTheory_le_iff {L : Language} {T : Set L.Sentenceω} {A : L.Fragment} :
            ofTheory T ≤ A ↔ ∀ φ ∈ T, ⟨0, φ⟩ ∈ A

            The fragment of a set of sentences lies below a fragment exactly when each of the sentences belongs to it.

            Every sentence of a set belongs to the fragment it generates.

            The fragment of a set of sentences is monotone in the set.

            @[simp]

            The fragment of a single sentence, as a set of sentences, is the fragment of the sentence.

            A countable set of sentences generates a countable fragment, over any language.

            Arity slices #

            The formulas of A with exactly n bound-variable slots.

            Instances For
              @[simp]

              Membership in an arity slice is membership of the tagged formula in the fragment.

              theorem FirstOrder.Language.Fragment.slice_mono {L : Language} {A B : L.Fragment} (hAB : A ≤ B) (n : ℕ) :
              A.slice n ⊆ B.slice n

              Inclusion of fragments induces inclusion of each arity slice. The corresponding map on slice subtypes is Set.inclusion (slice_mono hAB n).

              Every arity slice of a countable fragment is countable.