The function-generated sublanguage of an L_{ω₁ω} formula #
Countability plumbing for the Morley–Hanf chain: the local EM tower requires countably many
function symbols, but the honest residual statements assume only countably many relation
symbols. This file removes the gap: every L_{ω₁ω} formula mentions only countably many
function symbols (functionsIn + functionsIn_countable — formulas are countably-branching
well-founded trees), so the construction can run in the generated sublanguage funSublang F
(the mentioned functions as a subtype, ALL relations kept — their countability is ambient), and
the formula restricts to it (restrictFuns) with mapLanguage (funSublangIncl F) as a left
inverse. Downstream (LocalEMOmegaResidual.lean) the sublanguage EM model is expanded back to
the full language.
Pure syntax + set-countability; no EM, no local stack, no Conditional/.
Function symbols mentioned by a term / formula #
The function symbols occurring in a term.
Equations
- (FirstOrder.Language.var a).functionsIn = ∅
- (FirstOrder.Language.func f ts).functionsIn = insert ⟨l, f⟩ (⋃ (i : Fin l), (ts i).functionsIn)
Instances For
The function symbols occurring in a formula (through all countable connectives).
Equations
- FirstOrder.Language.BoundedFormulaω.functionsIn FirstOrder.Language.BoundedFormulaInf.falsum = ∅
- FirstOrder.Language.BoundedFormulaω.functionsIn (FirstOrder.Language.BoundedFormulaInf.equal t u) = t.functionsIn ∪ u.functionsIn
- FirstOrder.Language.BoundedFormulaω.functionsIn (FirstOrder.Language.BoundedFormulaInf.rel R ts) = ⋃ (i : Fin l), (ts i).functionsIn
- FirstOrder.Language.BoundedFormulaω.functionsIn (FirstOrder.Language.BoundedFormulaInf.imp φ ψ) = φ.functionsIn ∪ ψ.functionsIn
- FirstOrder.Language.BoundedFormulaω.functionsIn (FirstOrder.Language.BoundedFormulaInf.all φ) = φ.functionsIn
- FirstOrder.Language.BoundedFormulaω.functionsIn (FirstOrder.Language.BoundedFormulaInf.iSup φs) = ⋃ (i : ℕ), (φs i).functionsIn
- FirstOrder.Language.BoundedFormulaω.functionsIn (FirstOrder.Language.BoundedFormulaInf.iInf φs) = ⋃ (i : ℕ), (φs i).functionsIn
Instances For
The generated sublanguage #
Restriction of terms and formulas into the generated sublanguage #
The simultaneous symbol-generated sublanguage #
The schema route needs BOTH symbol sorts countable (its completion enumerates atoms over the
relation symbols too), while the definitive Morley–Hanf endpoint assumes neither. So alongside
the function-only sublanguage above, this section cuts BOTH sorts down to the (countable) symbols
a formula mentions: relationsIn + countability, the two-sorted symbSublang, its inclusion,
restriction restrictSymbols, and the left-inverse law.
The relation symbols occurring in a formula (through all countable connectives).
Equations
- FirstOrder.Language.BoundedFormulaω.relationsIn FirstOrder.Language.BoundedFormulaInf.falsum = ∅
- FirstOrder.Language.BoundedFormulaω.relationsIn (FirstOrder.Language.BoundedFormulaInf.equal t u) = ∅
- FirstOrder.Language.BoundedFormulaω.relationsIn (FirstOrder.Language.BoundedFormulaInf.rel R ts) = {⟨l, R⟩}
- FirstOrder.Language.BoundedFormulaω.relationsIn (FirstOrder.Language.BoundedFormulaInf.imp φ ψ) = φ.relationsIn ∪ ψ.relationsIn
- FirstOrder.Language.BoundedFormulaω.relationsIn (FirstOrder.Language.BoundedFormulaInf.all φ) = φ.relationsIn
- FirstOrder.Language.BoundedFormulaω.relationsIn (FirstOrder.Language.BoundedFormulaInf.iSup φs) = ⋃ (i : ℕ), (φs i).relationsIn
- FirstOrder.Language.BoundedFormulaω.relationsIn (FirstOrder.Language.BoundedFormulaInf.iInf φs) = ⋃ (i : ℕ), (φs i).relationsIn
Instances For
Restrict a term whose function symbols lie in F to the two-sorted sublanguage.
Equations
- FirstOrder.Language.Term.restrictSymbols R (FirstOrder.Language.var x_2) x_3 = FirstOrder.Language.var x_2
- FirstOrder.Language.Term.restrictSymbols R (FirstOrder.Language.func f ts) h = FirstOrder.Language.func ⟨f, ⋯⟩ fun (i : Fin l) => FirstOrder.Language.Term.restrictSymbols R (ts i) ⋯
Instances For
Restrict a formula whose function AND relation symbols lie in F/R to the two-sorted
generated sublanguage.
Equations
- One or more equations did not get rendered due to their size.
- FirstOrder.Language.BoundedFormulaω.restrictSymbols FirstOrder.Language.BoundedFormulaInf.falsum x_5 x_6 = FirstOrder.Language.BoundedFormulaω.falsum
- FirstOrder.Language.BoundedFormulaω.restrictSymbols (FirstOrder.Language.BoundedFormulaInf.imp φ ψ) hF hR = (φ.restrictSymbols ⋯ ⋯).imp (ψ.restrictSymbols ⋯ ⋯)
- FirstOrder.Language.BoundedFormulaω.restrictSymbols (FirstOrder.Language.BoundedFormulaInf.all φ) hF hR = (φ.restrictSymbols hF hR).all
- FirstOrder.Language.BoundedFormulaω.restrictSymbols (FirstOrder.Language.BoundedFormulaInf.iSup φs) hF hR = FirstOrder.Language.BoundedFormulaω.iSup fun (i : ℕ) => (φs i).restrictSymbols ⋯ ⋯
- FirstOrder.Language.BoundedFormulaω.restrictSymbols (FirstOrder.Language.BoundedFormulaInf.iInf φs) hF hR = FirstOrder.Language.BoundedFormulaω.iInf fun (i : ℕ) => (φs i).restrictSymbols ⋯ ⋯
Instances For
The inclusion is a left inverse of two-sorted formula restriction.
Restriction preserves the quantifier class. No new induction: restriction is inverted by the inclusion language map, and language maps transport the signed class exactly.