The beth-ladder syntax (Marker, Exercise 5.3) #
The common sentence of the bounded-spectrum ladder: for an ordinal α, the language
ladderLang α has constants cₙ (n : ℕ), unary level predicates U_i indexed by
Index α := (α + 2).ToType (the canonical Type 0 well order of the levels β ≤ α + 1), and
one binary relation E. The sentence ladderSentence α asserts, per the audit
(docs/hanf-ladder-audit.md):
- base:
U_⊥ x ↔ ⋁ₙ x = cₙ; - top: every element is in
U_⊤; - nesting:
U_i ⊆ U_jfori < j; - limit covering: at an order-limit level
j,U_j x → ⋁_{i<j} U_i x; - predecessor descent: for adjacent levels
i ⋖ j,U_j x → E y x → U_i y; - extensionality: equal
E-predecessor sets imply equality.
All clause indexing is INTERNAL to the order on Index α (<, ⋖, Order.IsSuccLimit,
⊥/⊤ from the order instances); typein/enum translation is deferred to the semantic
files. Only formation of the countably-indexed sentence needs [Countable (Index α)]
(supplied by α < ω₁ downstream); the language itself is Language.{0,0} for every α.
The acceptance interface is the semantic packaging realize_ladderSentence_iff: realization is
equivalent to the six named clause predicates bundled in IsLadderModel — downstream files
(the α = 0 powerset model, the general upper-bound induction) work with those predicates and
never unfold binders, ciInf/ciSup, or valuation bookkeeping again.
The level-index order: the canonical Type 0 well order of type α + 2 — the levels
β ≤ α + 1. Carries LinearOrder, WellFoundedLT, and (noncomputably) SuccOrder
instances.
Equations
- FirstOrder.Language.HanfLadder.Index α = (α + 2).ToType
Instances For
Equations
- FirstOrder.Language.HanfLadder.instOrderTopIndex α = { top := Ordinal.ToType.mk ⟨α + 1, ⋯⟩, le_top := ⋯ }
The ladder language: ℕ constants, Index α-indexed unary level predicates, one binary
relation. Language.{0,0} for every α.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The n-th constant, as a term over any variable type.
Equations
- FirstOrder.Language.HanfLadder.const n = FirstOrder.Language.func (have this := n; this) Fin.elim0
Instances For
The level atom U_i t.
Equations
- FirstOrder.Language.HanfLadder.levelAtom i t = FirstOrder.Language.BoundedFormulaω.rel (have this := i; this) fun (x : Fin 1) => t
Instances For
The edge atom E t u.
Equations
- FirstOrder.Language.HanfLadder.eAtom t u = FirstOrder.Language.BoundedFormulaω.rel (have this := (); this) ![t, u]
Instances For
Variable i at arity n, over Empty free variables.
Equations
Instances For
Base, ⊇: every constant is in the bottom level.
Equations
Instances For
Base, ⊆: every bottom-level element is a constant.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Top: every element is in the top level.
Equations
Instances For
Nesting: U_i ⊆ U_j for i < j.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Limit covering: at an order-limit level j, U_j x → ⋁_{i<j} U_i x.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Predecessor descent: for adjacent i ⋖ j, U_j x → E y x → U_i y
(x = bound variable 0, y = bound variable 1).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Extensionality, curried: (∀x, E x y → E x z) → (∀x, E x z → E x y) → y = z
(y = bound variable 0, z = bound variable 1, x = bound variable 2).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The ladder sentence (Marker, Exercise 5.3).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The semantic packaging #
The value of the n-th constant.
Equations
- FirstOrder.Language.HanfLadder.constVal α n = FirstOrder.Language.Structure.funMap (have this := n; this) Fin.elim0
Instances For
The level predicate U_i.
Equations
- FirstOrder.Language.HanfLadder.Level α i x = FirstOrder.Language.Structure.RelMap (have this := i; this) fun (x_1 : Fin 1) => x
Instances For
The edge relation E.
Equations
- FirstOrder.Language.HanfLadder.Edge α x y = FirstOrder.Language.Structure.RelMap (have this := (); this) ![x, y]
Instances For
The six clauses of a ladder model — the interface every semantic file works with.
- limit_covered {j : Index α} : Order.IsSuccLimit j → ∀ (x : M), Level α j x → ∃ i < j, Level α i x
Instances For
Constant terms realize to their values, at any valuation.
The bound variable at arity 1 realizes to the snoc value.
The acceptance gate: realization of the ladder sentence is exactly the six clauses.