Documentation

InfinitaryLogic.Lomega1omega.Fragment

Fragments of L_{ω₁ω} #

The foundational fragment interface of issue #13, per the frozen audit (docs/fragments-audit.md): a fragment is an arity-indexed set of formulas over Empty free variables (parameters enter semantically, through tuples), closed under CONSTRUCTOR COMPONENTS only — the direction every induction (A-elementarity, Tarski–Vaught, Löwenheim–Skolem, chain unions) consumes. Deliberately absent, per the audit: atomic-formula membership (would force countable fragments to have countable languages), formation closure under countable connectives (destroys countability), syntactic substitution closure (subsumed by semantic parameters), and formal-negation closure (an NNF concern, #14).

This is therefore not a fragment in the sense of Gao, Invariant Descriptive Set Theory (CRC Press, 2009), Definition 11.2.3, which contains the first-order formulas and is closed under Boolean operations, quantification and changes of variables. Results stated for such fragments — the fragment logic topology of Gao's Theorem 11.4.1, for instance — do not apply to a component-closed Fragment unless those closure hypotheses are supplied separately.

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

A fragment: an arity-indexed set of L_{ω₁ω}-formulas closed under constructor components.

Instances For

    The full fragment: every formula.

    Equations
    Instances For

      Fragments are closed under intersection.

      Equations
      • A.inter B = { toSet := A.toSet ∩ B.toSet, imp_left_mem := ⋯, imp_right_mem := ⋯, all_mem := ⋯, iInf_mem := ⋯, iSup_mem := ⋯ }
      Instances For

        Generated fragments #

        The component-closure of a set of formulas, as an inductive reachability predicate.

        Instances For

          The generated fragment: the smallest fragment containing S.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            Set and order API #

            Minimal by design: SetLike, extensionality, and the order the generated/inter/top constructions already induce. Not a complete lattice — no consumer needs arbitrary suprema, and a speculative one would have to justify closure of unions, which fails.

            theorem FirstOrder.Language.Fragment.ext {L : Language} {A B : L.Fragment} (h : ∀ (p : (n : ℕ) × L.BoundedFormulaω Empty n), p ∈ A ↔ p ∈ B) :
            A = B
            theorem FirstOrder.Language.Fragment.ext_iff {L : Language} {A B : L.Fragment} :
            A = B ↔ ∀ (p : (n : ℕ) × L.BoundedFormulaω Empty n), p ∈ A ↔ p ∈ B
            @[instance_reducible]
            Equations
            theorem FirstOrder.Language.Fragment.le_def {L : Language} {A B : L.Fragment} :
            A ≤ B ↔ ∀ p ∈ A, p ∈ B
            @[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
            theorem FirstOrder.Language.Fragment.generated_le {L : Language} {S : Set ((n : ℕ) × L.BoundedFormulaω Empty n)} {A : L.Fragment} (hSA : S ⊆ A.toSet) :

            The generated fragment is the smallest one containing S.

            The Galois-style characterization: generated is left adjoint to the forgetful map to sets. This is the form consumers want — it replaces subset_generated/generated_le pairs at call sites.

            Countability of generated fragments: the component-path encoding #

            Iterated component steps along a list of codes.

            Equations
            Instances For
              theorem FirstOrder.Language.Fragment.componentPath_append {L : Language} (p : (n : ℕ) × L.BoundedFormulaω Empty n) (l₁ l₂ : List (ℕ × ℕ)) :
              componentPath p (l₁ ++ l₂) = (componentPath p l₁).bind fun (x : (n : ℕ) × L.BoundedFormulaω Empty n) => componentPath x l₂

              A single step lands inside the generated set.

              theorem FirstOrder.Language.Fragment.generatedFrom_iff_path {L : Language} {S : Set ((n : ℕ) × L.BoundedFormulaω Empty n)} {p : (n : ℕ) × L.BoundedFormulaω Empty n} :
              GeneratedFrom S p ↔ ∃ s ∈ S, ∃ (l : List (ℕ × ℕ)), componentPath s l = some p

              The path characterization: the generated fragment is exactly what is reachable from S by finitely many coded component steps.

              Countability: the fragment generated by a countable set is countable.

              The generated fragment of a single sentence — countable, no hypotheses.

              Equations
              Instances For

                The generated fragment of a COUNTABLE theory (the sentence case is automatic; theory countability is an assumption, per the audit).

                Equations
                Instances For