@@ -19,6 +19,8 @@ We define principal or indecomposable ordinals, and we prove the standard proper
19
19
20
20
universe u
21
21
22
+ noncomputable theory
23
+
22
24
namespace ordinal
23
25
24
26
/-! ### Principal ordinals -/
@@ -67,4 +69,38 @@ theorem nfp_le_of_principal {op : ordinal → ordinal → ordinal}
67
69
{a o : ordinal} (hao : a < o) (ho : principal op o) : nfp (op a) a ≤ o :=
68
70
nfp_le.2 $ λ n, le_of_lt (ho.iterate_lt hao n)
69
71
72
+ /-! ### Principal ordinals are unbounded -/
73
+
74
+ /-- The least strict upper bound of `op` applied to all pairs of ordinals less than `o`. This is
75
+ essentially a two-argument version of `ordinal.blsub`. -/
76
+ def blsub₂ (op : ordinal → ordinal → ordinal) (o : ordinal) : ordinal :=
77
+ lsub (λ x : o.out.α × o.out.α, op (typein o.out.r x.1 ) (typein o.out.r x.2 ))
78
+
79
+ theorem lt_blsub₂ (op : ordinal → ordinal → ordinal) {o : ordinal} {a b : ordinal} (ha : a < o)
80
+ (hb : b < o) : op a b < blsub₂ op o :=
81
+ begin
82
+ convert lt_lsub _ (prod.mk (enum o.out.r a (by rwa type_out)) (enum o.out.r b (by rwa type_out))),
83
+ simp only [typein_enum]
84
+ end
85
+
86
+ theorem principal_nfp_blsub₂ (op : ordinal → ordinal → ordinal) (o : ordinal) :
87
+ principal op (nfp (blsub₂.{u u} op) o) :=
88
+ begin
89
+ intros a b ha hb,
90
+ rw lt_nfp at *,
91
+ cases ha with m hm,
92
+ cases hb with n hn,
93
+ cases le_total ((blsub₂.{u u} op)^[m] o) ((blsub₂.{u u} op)^[n] o) with h h,
94
+ { use n + 1 ,
95
+ rw function.iterate_succ',
96
+ exact lt_blsub₂ op (hm.trans_le h) hn },
97
+ { use m + 1 ,
98
+ rw function.iterate_succ',
99
+ exact lt_blsub₂ op hm (hn.trans_le h) },
100
+ end
101
+
102
+ theorem unbounded_principal (op : ordinal → ordinal → ordinal) :
103
+ set.unbounded (<) {o | principal op o} :=
104
+ λ o, ⟨_, principal_nfp_blsub₂ op o, (le_nfp_self _ o).not_lt⟩
105
+
70
106
end ordinal
0 commit comments