The Kleene–Brouwer order on a tree #
Pure combinatorics on Descriptive.tree ℕ (prefix-closed sets of List ℕ), no codes: the raw
mathematics behind analytic boundedness for well-founded trees (issue #73).
HasInfiniteBranch Tis a descending chain in strict extension — a sequence of nodes each properly extending the previous — so "no infinite branch" is well-foundedness ofextBelow Ton the nose (wellFounded_extBelow_iff_not_hasInfiniteBranch), with no appeal to König.- The Kleene–Brouwer order is the lexicographic order on
List ℕ∞pulled back alongkbEncode x = x.map (↑) ++ [⊤]: appending⊤makes every proper extension of a node smaller than the node, and among incomparable nodes the leftmost first difference decides. Linearity is inherited (kbLinearOrder);kbLT_of_extBelowrecords that strict extension is a subrelation. wellFounded_kbLT: KB is well-founded on a well-founded tree. Along a strictly KB-descending sequence everyk-prefix stabilizes (exists_stable_prefix): once thek-prefix is fixed, thek-th KB head is antitone inℕ∞and hence eventually constant, and it cannot stabilize at⊤, since the sequence would then repeat a list. The stabilized prefixes form an infinite branch.treeHeight Tis the strict supremum of the ranks of the nodes under strict extension, andtreeHeight_le_typebounds it by the KB order type, through the monotonicity ofIsWellFounded.rankin the relation (InfinitaryLogic.rank_le_rank_of_imp).
The encoding lands in ℕ∞, which is defined as WithTop ℕ; the named type is what carries the
derived WellFoundedLT instance the chain condition uses.
Strict extension and branches #
The "descending" direction for well-foundedness: y sits below x when it properly
extends x.
Equations
Instances For
An infinite branch, as a descending chain in strict extension: a sequence of nodes of T
each properly extending the previous one.
Equations
Instances For
The strict-extension relation restricted to the nodes of T.
Equations
- KleeneBrouwer.extBelow T y x = KleeneBrouwer.ExtBelow ↑y ↑x
Instances For
The Kleene–Brouwer order: proper extensions come first, then leftmost-first differences.
Equations
Instances For
The KB order on the nodes of T.
Equations
- KleeneBrouwer.kbLT T x y = KleeneBrouwer.KBLT ↑x ↑y
Instances For
The nodes of T, linearly ordered by KB (pulled back from List ℕ∞).
Equations
- KleeneBrouwer.kbLinearOrder T = LinearOrder.lift' (fun (x : ↥T) => KleeneBrouwer.kbEncode ↑x) ⋯
Instances For
Proper extensions are KB-below #
KB is well-founded on a well-founded tree #
Kleene–Brouwer is well-founded on a well-founded tree.
KB is a well-order on a well-founded tree: the linear order from the encoding plus well-foundedness.
The height of the tree: the strict supremum of the ranks of its nodes under strict extension.
Equations
- KleeneBrouwer.treeHeight T = ⨆ (x : ↥T), Order.succ (IsWellFounded.rank (KleeneBrouwer.extBelow T) x)
Instances For
Given that KB is a well-order on T, the height is at most its order type.