The countable local atom/deForm family ΓEMlocal #
The size bottleneck of the EM re-base, resolved. The EM term model's EMContext needs a
tail-indiscernible family Γ containing every de-substituted atom (atom_mem/rel_mem) and the
deForms of the truth-lemma family (DeFormClosedForGammaStar); the tail extraction
(MorleyHanfExtractionTail) delivers indiscernibility only over a countable Γ. Over
skolemColim L the atom diagram is uncountable and the context cannot be instantiated; this file
builds the countable replacement over localColim s₀.
The factoring insight: a de-substituted atom/deForm over a support S : Finset J depends on
its Λ[[J]]-terms only through their de-substitutions to Fin S.card-variable Λ-terms. So
the family of ALL such formulas — over EVERY linear order J, every support, every closed term —
factors through the canonical (J-free) seeds indexed by Σ m, Λ.Term (Fin m)-data, which are
countable whenever Λ is. Concretely, the local locDeEqAtom/locDeRelAtom/locDeForm are
defined as canonical seeds applied to locDeTermFin-images, so factoring is definitional and
membership in the canonical seeds is by construction.
Contents:
- Canonical seeds over any
Λ : Language.{0,0}:canonEqAtom(s),canonRelAtom(s),canonDeForm(s)+ countability (canonEqAtoms_countableetc.) from countable symbol types. - The
J-side de-substitution pipeline over anyΛ(mirroring theskolemColim-specific chain inEMTermModel.lean; the generic piecesdeepRank/Term.varFinset_relabellive in the sharedLocalEMSupport.lean):locJConstOf,locJSupport,locDeTermPos,locDeTermFin, and the local atoms/deFormlocDeEqAtom/locDeRelAtom/locDeFormwith membership in the canonical seeds. - The assembled family
ΓEMlocal s₀ = ΓlocalColim ∪ eq-atoms ∪ rel-atoms ∪ deForms(ΓlocalColim)overlocalColim s₀, withΓEMlocal_countable, the membership interface the future localEMContextinstantiation will discharge (locDeEqAtom_mem_ΓEMlocal=atom_mem,locDeRelAtom_mem_ΓEMlocal=rel_mem,locDeForm_mem_ΓEMlocal= the deForm closure), and the enumerationexists_ΓEMlocalEnumin the exact shape the tail extraction consumes.
The GENERIC semantic (realize) bridges live in LocalEMContext.lean; the old
skolemColim-specific ones remain in EMTermModel.lean. This file is deliberately purely
syntactic.
Canonical (J-free) seeds over a countable language #
The canonical equality atom of two Fin m-variable terms: the arity-m formula
t = u with the variables rebound. Every de-substituted equality atom (over any J, any
support) is definitionally of this shape.
Equations
Instances For
The canonical equality-atom seed: all canonical equality atoms, over all arities.
Equations
Instances For
The canonical equality-atom seed is countable when Λ's function symbols are: it is the
range of a map from Σ m, (Λ.Term (Fin m))², countable by Mathlib's term encoding.
The canonical relation atom: a relation symbol applied to rebound Fin m-variable
terms.
Equations
- Λ.canonRelAtom R ts = FirstOrder.Language.BoundedFormulaω.rel R fun (i : Fin l) => FirstOrder.Language.Term.relabel Sum.inr (ts i)
Instances For
The canonical relation-atom seed: all canonical relation atoms, over all arities and all relation symbols.
Equations
Instances For
The canonical deForm of a formula φ (arity n) along a tuple of Fin p-variable
terms: open the bound variables, substitute the terms, rebind the p positions — the
openBounds → subst → relabel template of EMTermModel.deForm, with the J-dependence already
factored out.
Equations
Instances For
The canonical deForm closure of a base family Γc: all canonical deForms of its members,
over all target arities and term tuples.
Equations
Instances For
The canonical deForm closure of a countable family is countable.
The J-side de-substitution pipeline #
Mirrors the skolemColim-specific chain of EMTermModel.lean over an arbitrary Λ (the generic
pieces deepRank, deepRank_lt_card, Term.varFinset_relabel live in the shared
LocalEMSupport.lean). The loc prefix disambiguates from the skolemColim versions.
The J-constant carried by a function symbol of Λ[[J]]: only an arity-0 symbol from the
constantsOn J summand is a skeleton constant.
Equations
- Λ.locJConstOf J (Sum.inr j) = {j}
- Λ.locJConstOf J x✝ = ∅
Instances For
The finite set of J-constants (skeleton constants) mentioned in a Λ[[J]]-term.
Equations
- Λ.locJSupport J (FirstOrder.Language.var a) = ∅
- Λ.locJSupport J (FirstOrder.Language.func f ts) = (Finset.univ.biUnion fun (i : Fin l) => Λ.locJSupport J (ts i)) ∪ Λ.locJConstOf J f
Instances For
The de-substituted term constantsToVars t uses only the variables Sum.inl j for j a
skeleton constant of t.
The de-substituted term at ordered support positions: each skeleton constant c_j
becomes the ℕ-variable deepRank S j.
Equations
- Λ.locDeTermPos J S t = FirstOrder.Language.Term.relabel (Sum.elim (fun (j : J) => FirstOrder.Language.deepRank J S j) Empty.elim) t.constantsToVars
Instances For
The ordered-position term uses only variables < S.card once S covers the term's skeleton
constants.
The de-substituted term at Fin S.card positions: locDeTermPos with its variables
packaged as genuine Fin S.card indices. The finite-variable term through which every
J-dependent atom/deForm factors.
Equations
- Λ.locDeTermFin J S t hsub = (Λ.locDeTermPos J S t).restrictVar fun (x : ↥(Λ.locDeTermPos J S t).varFinset) => ⟨↑x, ⋯⟩
Instances For
Local atoms and deForm — canonical seeds applied to de-substituted terms #
The local de-substituted equality atom: definitionally a canonical equality atom, so its
membership in canonEqAtoms is by construction.
Equations
- Λ.locDeEqAtom J S t u ht hu = Λ.canonEqAtom (Λ.locDeTermFin J S t ht) (Λ.locDeTermFin J S u hu)
Instances For
Factoring, equality case: every local equality atom lies in the canonical (J-free) seed.
The local de-substituted relation atom: definitionally a canonical relation atom.
Equations
- Λ.locDeRelAtom J S R ts ht = Λ.canonRelAtom R fun (i : Fin l) => Λ.locDeTermFin J S (ts i) ⋯
Instances For
Factoring, relation case: every local relation atom lies in the canonical seed.
The local general de-substituted formula: definitionally a canonical deForm of φ.
Equations
- Λ.locDeForm J S φ ts hsub = Λ.canonDeForm φ fun (i : Fin n) => Λ.locDeTermFin J S (ts i) ⋯
Instances For
Factoring, deForm case: the local deForm of any member of a base family lies in that family's canonical deForm closure.
The extracted-family candidate: the colimit family together with the full canonical atom
seeds and the canonical deForm closure of the colimit family — everything the local EMContext's
hind/atom_mem/rel_mem/deForm-closure obligations will quantify over.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The size bottleneck, resolved: ΓEMlocal is countable — the family the tail extraction
(MorleyHanfExtractionTail) can actually serve, in contrast to the uncountable skolemColim
atom diagram.
The colimit family sits inside ΓEMlocal.
atom_mem discharger: every local equality atom — over every J, support, and pair of
closed terms — lies in ΓEMlocal.
rel_mem discharger: every local relation atom lies in ΓEMlocal.
deForm-closure discharger: the local deForm of every colimit-family member lies in
ΓEMlocal — the content of the future local DeFormClosedForGammaStar.
ΓEMlocal is nonempty (the arity-1 atom x = x is a canonical equality atom).
An enumeration of ΓEMlocal as a sequence — the exact shape the tail extraction
(morleyHanfExtractionTail_holds, whose extraction yields tail-indiscernibility on Set.range)
consumes.