Iterated Skolemization: the staged language tower and its colimit L^Sk #
The bespoke Ehrenfeucht–Mostowski term model needs a language in which every formula's
existential has a Skolem function (so the term-model truth lemma can witness nested ∃'s). One
layer (skolem₁ω) is not closed under its own witness formulas, so we iterate:
L₀ = L,L_{k+1} = L_k.sum (skolem₁ω L_k)(skolemStage);- the colimit
L^Sk = colim_k L_k(next) is Skolem-complete: anL^Sk-formula lives at some finite stagek, and its existential's Skolem function appears at stagek+1.
This is ambient infrastructure: the family Γ* consumed by the truth lemma is a countable
staged closure inside L^Sk. Caveat: the EM term model's EMContext also needs the full atom
diagram over L^Sk, which does enumerate its continuum-many symbols — the reason for the
countable family-restricted re-base (localSkolem and the Llocal/Γlocal tower in
LocalSkolem.lean/LocalTower.lean); skolemColim is retained as exploratory infrastructure.
For L : Language.{0,0} every stage stays in Type 0 (BoundedFormulaω Empty n over a {0,0}
language is Type 0), so the tower has no universe blowup.
The staged Skolem language tower: skolemStage L 0 = L and
skolemStage L (k+1) = (skolemStage L k).sum (skolem₁ω (skolemStage L k)). Each step adjoins a
Skolem function symbol for every formula of the previous stage.
Equations
- L.skolemStage 0 = L
- L.skolemStage k.succ = (L.skolemStage k).sum (L.skolemStage k).skolem₁ω
Instances For
The stage-k → stage-(k+1) language embedding: the left injection of the sum. Its
onFunction/onRelation carry stage-k symbols into stage-(k+1).
Equations
Instances For
Sequential colimit of types #
The sequential colimit of a tower of types F 0 → F 1 → … along maps φ, as the quotient of
Σ k, F k identifying ⟨k, x⟩ with ⟨k+1, φ k x⟩.
Equations
Instances For
The canonical inclusion of stage k into the colimit.
Equations
Instances For
The colimit language L^Sk and the stage cocone #
The iterated-Skolemization colimit language L^Sk = colim_k (skolemStage L k). Its
function/relation symbols at each arity are the sequential colimits of the staged symbol types. An
L^Sk-symbol lives at a finite stage; in particular every L^Sk-formula's existential acquires a
Skolem function at the next stage, so L^Sk is Skolem-complete.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cocone: the inclusion of stage k into the colimit language L^Sk. 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
Stage structures on a fixed model #
The stage-k structure on a fixed L-model M: stage 0 is M's own L-structure, and
each successor stage adds the Hilbert-choice interpretation of the new Skolem symbols
(skolem₁ωStructure) on top of the previous stage, via the sum structure.
Equations
- One or more equations did not get rendered due to their size.
- L.skolemStageStructure 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 L^Sk-structure on M: a colimit 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 skolemStageInclusion (the colimit funMap/RelMap on an included symbol
computes — by rfl — to the stage interpretation).
Semantic preservation by stage inclusion (deliverable 4): transporting a stage-k formula
into L^Sk along skolemStageInclusion preserves its realization in M. Immediate from
realize_mapLanguage and the expansion property above.