The countable local colimit language L_Γ (localColim) and its cocone #
The hinge of the L_Γ pivot. LocalTower.lean builds the mutually recursive tower
Llocal s₀ k / Γlocal s₀ k and proves every stage countable; this file assembles the tower
into an actual colimit language and shows countability survives to the colimit — the object
the EM term model must be re-based over (the full skolemColim is uncountable, so its atom
diagram cannot fit inside the countable family the tail extraction delivers).
Mirrors the skolemColim layer of SkolemColimit.lean exactly (same DirectedColim quotient,
same Quot.lift colimit structure, same definitional stage coherence), plus what skolemColim
cannot have: countability of the colimit symbol types and of the colimit image ΓlocalColim of
the staged families.
localColim s₀— the colimit languageL_Γ = colim_k (Llocal s₀ k).LlocalInclusion s₀ k— the coconeLlocal s₀ k →ᴸ localColim s₀, with symbol-level cocone-compatibility (LlocalInclusion_onFunction_step/_onRelation_step).localColim_fun_countable/localColim_rel_countable— the payoff: the colimit language is countable (viaDirectedColim.countable, a sequential colimit of countable types).localStageStructure/localColimStructure/LlocalInclusion_isExpansionOn/realize_map_LlocalInclusion— the semantic-transport API on a fixeds₀.Lang-modelM.toLocalColimFormula/ΓlocalColim/ΓlocalColim_countable— the (countable) colimit image of the staged families, the family the truth lemma will consume.- Formula-level cocone coherence for the EM rebase:
LlocalInclusion_comp_LlocalHom,toLocalColimFormula_step,toLocalColimFormula_lift_mem_ΓlocalColim, andlocalSkolemWitnessFormula_mem_ΓlocalColim(theskolemNeedwitness body of every family universal lands inΓlocalColim).
Next chunks (not here): the local atom/deForm seed and its countability, then the EMContext
re-base over localColim.
A sequential colimit of countable types is countable: the colimit is a quotient of the
countable total space Σ k, F k. (Generic companion to DirectedColim; the reason the local
colimit stays countable while skolemColim does not.)
mapLanguage composes: transporting along g then h is transporting along h.comp g.
(A Mathlib-gap-style generic lemma; belongs in Lomega1omega/Operations.lean eventually —
localized here, where the cocone coherence needs it, to keep the default build path untouched.)
Per-arity function-symbol countability at each stage (the fibre of the stagewise all-arity
certificate Llocal_fun_countable).
Per-arity relation-symbol countability at each stage.
The colimit language L_Γ and the stage cocone #
The local colimit language L_Γ = colim_k (Llocal s₀ k): function/relation symbols at
each arity are the sequential colimits of the staged symbol types along LlocalHom. Every
L_Γ-symbol lives at a finite stage; in particular every family formula's existential acquires
its local Skolem function at the next stage, so L_Γ is Skolem-complete for the family.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cocone: the inclusion of stage k into the local colimit language L_Γ. On symbols it
is the colimit inclusion DirectedColim.incl k.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Cocone compatibility on function symbols: pushing a stage-k symbol one stage up and then
into the colimit is the same as including it directly.
Cocone compatibility on relation symbols.
Cocone compatibility as an LHom equation: including stage k via stage k+1 is the
direct inclusion. The formula-level coherence (toLocalColimFormula_step) is this plus
mapLanguage composition.
Countability of the colimit language — the payoff of the pivot #
Per-arity: the colimit function symbols are countable.
Per-arity: the colimit relation symbols are countable.
The local colimit language has countably many function symbols — in contrast to
skolemColim, whose function-symbol type has the cardinality of the continuum.
The local colimit language has countably many relation symbols.
Stage structures on a fixed model and the colimit structure #
The stage-k structure on a fixed s₀.Lang-model M: stage 0 is M's own structure,
and each successor stage adds the Hilbert-choice interpretation of the new local Skolem symbols
(localSkolemStructure) on top of the previous stage, via the sum structure.
Equations
- One or more equations did not get rendered due to their size.
- FirstOrder.Language.localStageStructure s₀ 0 = inst✝¹
Instances For
Stage coherence (functions): a stage-k symbol pushed to stage k+1 interprets the same
way. This is the cocone-compatibility witnessing the colimit interpretation is well-defined.
Stage coherence (relations).
The colimit structure: an L_Γ-symbol is interpreted through any stage representative,
well-defined by the (definitional) stage coherence above.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The stage inclusion is an expansion: the colimit structure restricts to the stage
structure along LlocalInclusion (the colimit funMap/RelMap on an included symbol computes —
by rfl — to the stage interpretation).
Semantic preservation by stage inclusion: transporting a stage-k formula into L_Γ
along LlocalInclusion preserves its realization in M. Immediate from realize_mapLanguage
and the expansion property above.
The colimit image of the staged families #
Transport an arity-tagged stage-k formula into the local colimit language along the
cocone inclusion.
Equations
Instances For
The colimit family Γ_Γ ⊆ L_Γ-formulas: the union over all stages of the colimit images
of the staged families Γlocal s₀ k. This is the family over which the re-based EM term model's
truth lemma will run.
Equations
- FirstOrder.Language.ΓlocalColim s₀ = ⋃ (k : ℕ), FirstOrder.Language.toLocalColimFormula s₀ k '' FirstOrder.Language.Γlocal s₀ k
Instances For
Stage membership transports into the colimit family.
The colimit family is countable: a countable union of images of the (stagewise countable)
families. Together with localColim_fun_countable/_rel_countable, this says the local Skolem
construction really does produce a countable language and family in the colimit — the exact
size interface the tail extraction (MorleyHanfExtractionTail) can serve.
Formula-level cocone coherence #
The wrappers the EM rebase will consume, so its proofs never touch raw mapLanguage equalities.
Formula-level cocone coherence: a stage-k formula lifted one stage (along LlocalHom)
and then included into the colimit is the same colimit formula as including it directly.
Lifted membership: the stage-(k+1) lift of a stage-k family member has its colimit
image in ΓlocalColim — and by toLocalColimFormula_step that image coincides with the direct
stage-k image, so the two membership routes agree.
Witness-body membership in the colimit family: for every universal member ∀ψ of a stage
family, the local Skolem witness body of ¬ψ (available at the next stage thanks to skolemNeed)
has its colimit image in ΓlocalColim — the closure fact the rebased truth lemma's all-case
readiness will cite.