Choice-free well-foundedness of ordinal notations below ε₀ #
Mathlib proves that its normal ordinal notations are well founded (NONote.lt_wf), but its
order < and normal form ONote.NF on ONote are defined through ONote.repr : ONote → Ordinal,
so that proof depends on Classical.choice (through Ordinal.lt_wf).
This file defines a syntactic strict order slt (lexicographic comparison by ONote.cmp) and a
syntactic Cantor normal form SNF on Mathlib's ONote, neither of which mentions Ordinal or
repr, and proves directly that slt is well founded on syntactic normal forms, by a nested
induction (exponent, coefficient, tail) in the style of Gentzen and Schütte. The core results
depend only on propext.
A bridge section proves that slt and SNF agree with Mathlib's < and NF; the bridge does
use Classical.choice.
Main results #
slt,SNF: the syntactic order and normal form;eq_of_cmp_eq': a choice-free version ofONote.eq_of_cmp_eq;acc_slt: every syntactic normal form is accessible forsltrestricted toSNF;wf_slt:sltis well founded on{a // SNF a};ti_syntactic: transfinite induction belowε₀on syntactic normal forms;slt_iff_lt,SNF_iff_NF: the bridge to Mathlib's<andONote.NF.
References #
- B. Bryce, R. Goré, arXiv:2603.00487 (2026): Gentzen's consistency proof for PA in Coq.
Syntactic strict order on notations: lexicographic comparison by ONote.cmp.
Equations
- Gentzen.Acc.slt a b = (a.cmp b = Ordering.lt)
Instances For
Equations
topBelow a e: the leading exponent of a (if any) is slt-below e.
Equations
- Gentzen.Acc.topBelow ONote.zero x✝ = True
- Gentzen.Acc.topBelow (e'.oadd a a_1) x✝ = Gentzen.Acc.slt e' x✝
Instances For
Syntactic Cantor normal form: exponents strictly decreasing (w.r.t. slt), recursively.
Equations
- Gentzen.Acc.SNF ONote.zero = True
- Gentzen.Acc.SNF (e.oadd a a_1) = (Gentzen.Acc.SNF e ∧ Gentzen.Acc.SNF a_1 ∧ Gentzen.Acc.topBelow a_1 e)
Instances For
Equations
- Gentzen.Acc.decTopBelow ONote.zero x✝ = isTrue trivial
- Gentzen.Acc.decTopBelow (e'.oadd a a_1) x✝ = Gentzen.Acc.decTopBelow._aux_1 e' a a_1 x✝
Equations
Constructive facts about Ordering.then and cmp #
Constructive version of ONote.eq_of_cmp_eq.
Accessibility #
The relation whose accessibility we prove: slt restricted to syntactic normal forms.
Equations
- Gentzen.Acc.R x y = (Gentzen.Acc.SNF x ∧ Gentzen.Acc.slt x y)
Instances For
H e: every normal notation below ω ^ e is accessible.
Equations
- Gentzen.Acc.H e = ∀ (x : ONote), Gentzen.Acc.SNF x → Gentzen.Acc.topBelow x e → Acc Gentzen.Acc.R x
Instances For
Bridge to Mathlib's < and NF (uses choice) #
Checks on samples (by decide) #
Samples, in increasing order: 0, 1, 2, ω, ω+1, ω·2, ω^ω.
Equations
- Gentzen.Acc.samples = [0, 1, ↑2, ONote.oadd 1 1 0, ONote.oadd 1 1 1, ONote.oadd 1 2 0, (ONote.oadd 1 1 0).oadd 1 0]