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 C0–C4/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 C0–C4 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 #
The closed constant constTerm a, relabeled into the sentence-term context, is
constTermS a.
The constant equality c_a = c_b.
Equations
Instances For
The atomic relation instance R(c_{g 0}, …).
Equations
- FirstOrder.Language.relInst R g = FirstOrder.Language.BoundedFormulaω.rel (Sum.inl R) fun (i : Fin l) => FirstOrder.Language.constTermS (g i)
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 C0–C4/quantifier decomposition targets.
- base {L : Language} {S : Set (L.withConstants ℕ).Sentenceω} {p : (L.withConstants ℕ).Sentenceω} : p ∈ S → ReachFrom S p
- imp_negleft {L : Language} {S : Set (L.withConstants ℕ).Sentenceω} {φ ψ : (L.withConstants ℕ).Sentenceω} : ReachFrom S (BoundedFormulaω.imp φ ψ) → ReachFrom S (BoundedFormulaω.not φ)
- imp_right {L : Language} {S : Set (L.withConstants ℕ).Sentenceω} {φ ψ : (L.withConstants ℕ).Sentenceω} : ReachFrom S (BoundedFormulaω.imp φ ψ) → ReachFrom S ψ
- negimp_left {L : Language} {S : Set (L.withConstants ℕ).Sentenceω} {φ ψ : (L.withConstants ℕ).Sentenceω} : ReachFrom S (BoundedFormulaω.imp φ ψ).not → ReachFrom S φ
- negimp_right {L : Language} {S : Set (L.withConstants ℕ).Sentenceω} {φ ψ : (L.withConstants ℕ).Sentenceω} : ReachFrom S (BoundedFormulaω.imp φ ψ).not → ReachFrom S (BoundedFormulaω.not ψ)
- iInf_comp {L : Language} {S : Set (L.withConstants ℕ).Sentenceω} {φs : ℕ → (L.withConstants ℕ).Sentenceω} (k : ℕ) : ReachFrom S (BoundedFormulaω.iInf φs) → ReachFrom S (φs k)
- negiInf_comp {L : Language} {S : Set (L.withConstants ℕ).Sentenceω} {φs : ℕ → (L.withConstants ℕ).Sentenceω} (k : ℕ) : ReachFrom S (BoundedFormulaω.iInf φs).not → ReachFrom S (BoundedFormulaω.not (φs k))
- iSup_comp {L : Language} {S : Set (L.withConstants ℕ).Sentenceω} {φs : ℕ → (L.withConstants ℕ).Sentenceω} (k : ℕ) : ReachFrom S (BoundedFormulaω.iSup φs) → ReachFrom S (φs k)
- negiSup_comp {L : Language} {S : Set (L.withConstants ℕ).Sentenceω} {φs : ℕ → (L.withConstants ℕ).Sentenceω} (k : ℕ) : ReachFrom S (BoundedFormulaω.iSup φs).not → ReachFrom S (BoundedFormulaω.not (φs k))
- all_inst {L : Language} {S : Set (L.withConstants ℕ).Sentenceω} {φ : (L.withConstants ℕ).BoundedFormulaω Empty 1} (c : ℕ) : ReachFrom S φ.all → ReachFrom S (instConst c φ)
- negall_inst {L : Language} {S : Set (L.withConstants ℕ).Sentenceω} {φ : (L.withConstants ℕ).BoundedFormulaω Empty 1} (c : ℕ) : ReachFrom S φ.all.not → ReachFrom S (BoundedFormulaω.not (instConst c φ))
Instances For
The generated universe.
Equations
- FirstOrder.Language.GenU r₁ r₂ = {p : (L.withConstants ℕ).Sentenceω | FirstOrder.Language.ReachFrom (FirstOrder.Language.seed r₁ r₂) p}
Instances For
Closure under the decomposition targets #
Countability of the seed #
Countability of the generated universe (component-path encoding) #
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.)