Documentation

LeanPool.InfinitaryLogic.Methods.Henkin.CountableCompletion.GeneratedUniverse

The generated enumeration universe U (issue #8 tranche 2, commit 1) #

GenU r₁ r₂ is the countable domain the fair Henkin enumeration runs through: the two roots r₁, r₂, all constant equalities, and all atomic relation instances over constants, closed under the unary C0C4/quantifier decomposition targets. Per the audit (§6b, §8) it is NOT closed under forming new infinitary conjunctions/disjunctions — only components of existing ones.

Design. The binary atomic closures (equality symmetry/transitivity, relation one-coordinate replacement) are handled by seeding: all constant equalities and all constant atomic relation instances are put in the seed (countably many, using [Countable (Σ l, L.Relations l)]), so those closure targets already lie in U. Only the unary connective / quantifier rules need reachability closure, which admits the component-path countability argument of Fragment.generated_countable.

Acceptance gate (this commit): both roots ∈ U; closure under every C0C4 decomposition target and under instConst; all constant reflexivity/symmetry/transitivity equalities and atomic relation replacements present; Countable ↥U; every member has finite constant support. The relational-core collapse lemma exists_eq_constTerm (every closed term is a constant) is included — it drives the later term-model plumbing.

The relational-core collapse lemma #

Collapse (relational core): over a relational base, every closed L[[ℕ]]-term is a constant.

Seeds #

A constant as a term inside a sentence (EmptyFin 0 variable context).

Equations
Instances For

    The closed constant constTerm a, relabeled into the sentence-term context, is constTermS a.

    The atomic relation instance R(c_{g 0}, …).

    Equations
    Instances For

      The seed: the two roots, all constant equalities, all constant atomic relation instances.

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

        Reachability under the unary decomposition rules #

        One-step reachability under the unary C0C4/quantifier decomposition targets.

        Instances For
          theorem FirstOrder.Language.root₁_mem {L : Language} {r₁ r₂ : (L.withConstants ).Sentenceω} :
          r₁ GenU r₁ r₂
          theorem FirstOrder.Language.root₂_mem {L : Language} {r₁ r₂ : (L.withConstants ).Sentenceω} :
          r₂ GenU r₁ r₂
          theorem FirstOrder.Language.constEq_mem {L : Language} {r₁ r₂ : (L.withConstants ).Sentenceω} (a b : ) :
          constEq a b GenU r₁ r₂
          theorem FirstOrder.Language.eqRefl_mem {L : Language} {r₁ r₂ : (L.withConstants ).Sentenceω} (c : ) :
          constEq c c GenU r₁ r₂
          theorem FirstOrder.Language.relInst_mem {L : Language} {r₁ r₂ : (L.withConstants ).Sentenceω} {l : } (R : L.Relations l) (g : Fin l) :
          relInst R g GenU r₁ r₂

          Closure under the decomposition targets #

          theorem FirstOrder.Language.imp_right_mem {L : Language} {r₁ r₂ φ ψ : (L.withConstants ).Sentenceω} (h : BoundedFormulaω.imp φ ψ GenU r₁ r₂) :
          ψ GenU r₁ r₂
          theorem FirstOrder.Language.negimp_left_mem {L : Language} {r₁ r₂ φ ψ : (L.withConstants ).Sentenceω} (h : (BoundedFormulaω.imp φ ψ).not GenU r₁ r₂) :
          φ GenU r₁ r₂
          theorem FirstOrder.Language.iInf_comp_mem {L : Language} {r₁ r₂ : (L.withConstants ).Sentenceω} {φs : (L.withConstants ).Sentenceω} (k : ) (h : BoundedFormulaω.iInf φs GenU r₁ r₂) :
          φs k GenU r₁ r₂
          theorem FirstOrder.Language.negiInf_comp_mem {L : Language} {r₁ r₂ : (L.withConstants ).Sentenceω} {φs : (L.withConstants ).Sentenceω} (k : ) (h : (BoundedFormulaω.iInf φs).not GenU r₁ r₂) :
          BoundedFormulaω.not (φs k) GenU r₁ r₂
          theorem FirstOrder.Language.iSup_comp_mem {L : Language} {r₁ r₂ : (L.withConstants ).Sentenceω} {φs : (L.withConstants ).Sentenceω} (k : ) (h : BoundedFormulaω.iSup φs GenU r₁ r₂) :
          φs k GenU r₁ r₂
          theorem FirstOrder.Language.negiSup_comp_mem {L : Language} {r₁ r₂ : (L.withConstants ).Sentenceω} {φs : (L.withConstants ).Sentenceω} (k : ) (h : (BoundedFormulaω.iSup φs).not GenU r₁ r₂) :
          BoundedFormulaω.not (φs k) GenU r₁ r₂
          theorem FirstOrder.Language.all_inst_mem {L : Language} {r₁ r₂ : (L.withConstants ).Sentenceω} {φ : (L.withConstants ).BoundedFormulaω Empty 1} (c : ) (h : φ.all GenU r₁ r₂) :
          instConst c φ GenU r₁ r₂

          Countability of the seed #

          Countability of the generated universe (component-path encoding) #

          theorem FirstOrder.Language.genU_countable {L : Language} {r₁ r₂ : (L.withConstants ).Sentenceω} [Countable ((l : ) × L.Relations l)] :
          (GenU r₁ r₂).Countable

          Countability of U.

          Finite constant support #

          Finite constant support: assuming the roots have finite constant support, every member of U does.

          Minimality #

          GenU is the smallest set containing the seed and closed under the unary rules: the generic induction principle for the generated universe. (The current paired construction carries its side-membership bound as an explicit invariant instead of instantiating this principle, so genU_le presently has no in-tree consumer; it is the library-level minimality statement.)