Tree codes, the continuous Kleene–Brouwer code, and analytic boundedness for well-founded trees #
Classical background: Gao, Invariant Descriptive Set Theory (CRC Press, 2009), Theorem 1.6.11 (boundedness for well-founded trees) and Exercise 1.5.7 (the Kleene–Brouwer equivalence).
The code-level form of the Kleene–Brouwer material (issue #73), on top of the raw combinatorics in
Descriptive/KleeneBrouwer.lean and the analytic boundedness for coded well-orders (#64).
Codes #
A code c : StructureSpace L with a distinguished unary mem : L.Relations 1 names the set of
finite sequences x whose node code Equiv.listNatEquivNat x satisfies mem (nodeSet).
treeClass mem is the set of codes naming a prefix-closed set; it is closed
(isClosed_treeClass, a countable intersection of clopen coordinate conditions) hence Borel.
wellFoundedTreeClass mem adds "no infinite branch", as a descending chain in strict extension;
no analyticity is claimed for it.
The Kleene–Brouwer code #
kbCode mem c is a code in the dedicated one-binary-relation language kbLanguage, whose symbol
kbRelSym.lt is a strict order: the nodes of the named set come first, in Kleene–Brouwer order,
and every other natural afterwards, in the usual order (kbRel). A dedicated language, rather
than Mathlib's Language.order, so that no ≤-named symbol is published with strict semantics.
Each coordinate of kbCode mem c is a function of two membership bits of c and the
two naturals, so kbCode is continuous (continuous_kbCode), not merely Borel.
For a well-founded tree code kbRel is the lexicographic sum of KB on the nodes and < on the
rest (kbSumEmbedding), hence a well-order: kbCode_mem_wellOrderClass. The tree's rank,
treeRank mem hwf, is the height of strict extension on its tree and takes the well-foundedness
proof rather than defaulting on ill-founded codes; treeRank_le_type_kbCode bounds it by the order
type of the KB code, for any well-ordering proof, through the embedding of the nodes.
Boundedness #
analytic_wellFoundedTree_rank_boundedness: an analytic family of well-founded tree codes has
ranks bounded by one ordinal below ω₁. The image under the continuous kbCode is an analytic
family of well-orders, so #64's analytic_wellOrder_type_boundedness bounds the KB order types,
hence the ranks. exists_rank_bound_of_dominated is the domination adapter: parameters each
dominated by some tree of such a family have uniformly bounded assigned ranks, with no topology on
the parameter space.
The Kleene–Brouwer target language #
The dedicated one-binary-relation language the Kleene–Brouwer code lands in. Its only symbol
is the strict order kbRelSym.lt.
Equations
- FirstOrder.Language.kbLanguage = { Functions := fun (x : ℕ) => Empty, Relations := FirstOrder.Language.kbRelSym }
Instances For
Trees named by codes #
The node code of a finite sequence.
Equations
Instances For
The tree class: codes whose named set is prefix-closed.
Equations
- FirstOrder.Language.treeClass mem = {c : L.StructureSpace | ∀ ⦃x : List ℕ⦄ ⦃a : ℕ⦄, x ++ [a] ∈ FirstOrder.Language.nodeSet mem c → x ∈ FirstOrder.Language.nodeSet mem c}
Instances For
The tree a code in the tree class names.
Equations
- FirstOrder.Language.treeOf mem c hc = ⟨FirstOrder.Language.nodeSet mem c, hc⟩
Instances For
The well-founded tree class: tree codes with no infinite branch.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Kleene–Brouwer relation on ℕ induced by a code #
The KB relation on node codes: nodes of the named set first, in KB order; the remaining naturals afterwards, in their own order. Depends only on the two membership bits and the two naturals.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
The Kleene–Brouwer code: the kbLanguage-code of kbRel.
Equations
- FirstOrder.Language.kbCode mem c ⟨⟨2, FirstOrder.Language.kbRelSym.lt⟩, v⟩ = decide (FirstOrder.Language.kbRel mem c (v 0) (v 1))
- FirstOrder.Language.kbCode mem c q = false
Instances For
Continuity: each coordinate depends on two bits #
Equations
The decoded relation of the KB code is kbRel.
A well-founded tree code has a well-ordered KB code.
The rank of a well-founded tree code #
The rank of a well-founded tree code: the height of strict extension on its tree. Takes the well-foundedness proof; no default value on ill-founded codes.
Equations
- FirstOrder.Language.treeRank mem hwf = KleeneBrouwer.treeHeight (FirstOrder.Language.treeOf mem c ⋯)
Instances For
The tree class is closed (hence Borel) #
Boundedness #
The decoded relation of the KB code, as a relation on ℕ.
Equations
Instances For
The rank is at most the order type of the KB code, for any well-ordering proof.
Analytic boundedness for well-founded trees on a countable alphabet. An analytic family
of well-founded tree codes has ranks bounded below ω₁.
The domination adapter: parameters each dominated by some tree of an analytic family of well-founded trees have uniformly bounded ranks. No topology on the parameter space.