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.
ε_ ois notation forveblen 1 o.ε₀is notation forε_ 0.Γ_ ois 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
veblenare the gamma ordinals (and 0).
References #
- [Larry W. Miller, Normal functions and constructive ordinal notations][Miller_1976]
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 oforo ≠ 0enumerates the common fixed points ofveblenWith f o'over allo' < o.
Equations
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.
Alias of Ordinal.isNormal_veblenWith_zero.
veblenWith f o₁ a < veblenWith f o₂ b iff one of the following holds:
o₁ = o₂anda < bo₁ < o₂anda < veblenWith f o₂ bo₁ > o₂andveblenWith f o₁ a < b
veblenWith f o₁ a ≤ veblenWith f o₂ b iff one of the following holds:
o₁ = o₂anda ≤ bo₁ < o₂anda ≤ veblenWith f o₂ bo₁ > o₂andveblenWith f o₁ a ≤ b
veblenWith f o₁ a = veblenWith f o₂ b iff one of the following holds:
o₁ = o₂anda = bo₁ < o₂anda = veblenWith f o₂ bo₁ > o₂andveblenWith f o₁ a = b
Veblen function #
veblen o is the o-th function in the Veblen hierarchy starting with ω ^ ·. That is:
Equations
Instances For
Inverse Veblen function #
For any given x, there exists a unique pair (o, a) such that ω ^ x = veblen o a and
a < ω ^ x. invVeblen₁ x and invVeblen₂ x return the first and second entries of this pair,
respectively. See veblen_eq_opow_iff for a proof.
Composing this function with Ordinal.CNF yields a predicative ordinal notation up to Γ₀.
Equations
Instances For
For any given x, there exists a unique pair (o, a) such that ω ^ x = veblen o a and
a < ω ^ x. invVeblen₁ x and invVeblen₂ x return the first and second entries of this pair,
respectively. See veblen_eq_opow_iff for a proof.
Composing this function with Ordinal.CNF yields a predicative ordinal notation up to Γ₀.
Equations
Instances For
Epsilon function #
ε₀ is the first fixed point of ω ^ ⬝, i.e. the supremum of ω, ω ^ ω, ω ^ ω ^ ω, …
Conventions for notations in identifiers:
- The recommended spelling of
ε₀in identifiers isepsilon_zero.
Equations
Instances For
Alias of Ordinal.epsilon_zero_eq_nfp.
ε₀ is the limit of 0, ω ^ 0, ω ^ ω ^ 0, …
Alias of Ordinal.lt_epsilon_zero.
ε₀ is the limit of 0, ω ^ 0, ω ^ ω ^ 0, …
ω ^ ω ^ … ^ 0 < ε₀
Alias of Ordinal.iterate_omega0_opow_lt_epsilon_zero.
ω ^ ω ^ … ^ 0 < ε₀
Gamma function #
Alias of Ordinal.gamma_zero_eq_nfp.
Alias of Ordinal.gamma_zero_le_of_veblen_le.
Alias of Ordinal.lt_gamma_zero.
veblen (veblen … (veblen 0 0) … 0) 0 < Γ₀
Alias of Ordinal.iterate_veblen_lt_gamma_zero.
veblen (veblen … (veblen 0 0) … 0) 0 < Γ₀
Alias of Ordinal.epsilon_zero_lt_gamma.