Veblen hierarchy #
We define the two-arguments Veblen function, which satisfies veblen 0 a = ω ^ a
and that for
o ≠ 0
, veblen o
enumerates the common fixed points of veblen o'
for o' < o
.
We use this to define two important functions on ordinals: the epsilon function ε_ o = veblen 1 o
,
and the gamma function Γ_ o
enumerating the fixed points of veblen · 0
.
Main definitions #
veblenWith
: The Veblen hierarchy with a specified initial function.veblen
: The Veblen hierarchy starting withω ^ ·
.
Notation #
The following notation is scoped to the Ordinal
namespace.
ε_ o
is notation forveblen 1 o
.ε₀
is notation forε_ 0
.Γ_ o
is notation forgamma o
.Γ₀
is notation forΓ_ 0
.
TODO #
- Prove that
ε₀
andΓ₀
are countable. - Prove that the exponential principal ordinals are the epsilon ordinals (and 0, 1, 2, ω).
- Prove that the ordinals principal under
veblen
are the gamma ordinals (and 0).
Veblen function with a given starting function #
veblenWith f o
is the o
-th function in the Veblen hierarchy starting with f
. This is
defined so that
veblenWith f 0 = f
.veblenWith f o
foro ≠ 0
enumerates the common fixed points ofveblenWith f o'
over allo' < o
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
veblenWith f o
is always normal for o ≠ 0
. See isNormal_veblenWith
for a version which
assumes IsNormal f
.
veblenWith f o
is always normal whenever f
is. See isNormal_veblenWith'
for a version
which does not assume IsNormal f
.
Alias of Ordinal.isNormal_veblenWith
.
veblenWith f o
is always normal whenever f
is. See isNormal_veblenWith'
for a version
which does not assume IsNormal f
.
veblenWith f o₁ a < veblenWith f o₂ b
iff one of the following holds:
o₁ = o₂
anda < b
o₁ < o₂
anda < veblenWith f o₂ b
o₁ > o₂
andveblenWith f o₁ a < b
veblenWith f o₁ a ≤ veblenWith f o₂ b
iff one of the following holds:
o₁ = o₂
anda ≤ b
o₁ < o₂
anda ≤ veblenWith f o₂ b
o₁ > o₂
andveblenWith f o₁ a ≤ b
veblenWith f o₁ a = veblenWith f o₂ b
iff one of the following holds:
o₁ = o₂
anda = b
o₁ < o₂
anda = veblenWith f o₂ b
o₁ > o₂
andveblenWith f o₁ a = b
Veblen function #
veblen o
is the o
-th function in the Veblen hierarchy starting with ω ^ ·
. That is:
Equations
- Ordinal.veblen = Ordinal.veblenWith fun (x : Ordinal.{?u.6}) => Ordinal.omega0 ^ x
Instances For
Epsilon function #
The epsilon function enumerates the fixed points of ω ^ ⬝
.
This is an abbreviation for veblen 1
.
Equations
Instances For
The epsilon function enumerates the fixed points of ω ^ ⬝
.
This is an abbreviation for veblen 1
.
Equations
- Ordinal.termε_ = Lean.ParserDescr.node `Ordinal.termε_ 1024 (Lean.ParserDescr.symbol "ε_ ")
Instances For
ε₀
is the first fixed point of ω ^ ⬝
, i.e. the supremum of ω
, ω ^ ω
, ω ^ ω ^ ω
, …
Equations
- Ordinal.termε₀ = Lean.ParserDescr.node `Ordinal.termε₀ 1024 (Lean.ParserDescr.symbol "ε₀")
Instances For
ε₀
is the limit of 0
, ω ^ 0
, ω ^ ω ^ 0
, …
ω ^ ω ^ … ^ 0 < ε₀
Gamma function #
The gamma function enumerates the fixed points of veblen · 0
.
Of particular importance is Γ₀ = gamma 0
, the Feferman-Schütte ordinal.
Equations
- o.gamma = Ordinal.deriv (fun (x : Ordinal.{?u.7}) => Ordinal.veblen x 0) o
Instances For
The gamma function enumerates the fixed points of veblen · 0
.
Of particular importance is Γ₀ = gamma 0
, the Feferman-Schütte ordinal.
Equations
- Ordinal.termΓ_ = Lean.ParserDescr.node `Ordinal.termΓ_ 1024 (Lean.ParserDescr.symbol "Γ_ ")
Instances For
The Feferman-Schütte ordinal Γ₀
is the smallest fixed point of veblen · 0
, i.e. the supremum
of veblen ε₀ 0
, veblen (veblen ε₀ 0) 0
, etc.
Equations
- Ordinal.termΓ₀ = Lean.ParserDescr.node `Ordinal.termΓ₀ 1024 (Lean.ParserDescr.symbol "Γ₀")
Instances For
veblen (veblen … (veblen 0 0) … 0) 0 < Γ₀