Apply nat_complete_ind to the current goal.
Let n be given.
Assume Hn.
Let x be given.
Assume Hx: SNo x.
Assume Hxn: SNoLev x = n.
Apply dneg to the current goal.
We will prove False.
We prove the intermediate
claim LxSo:
x ∈ SNoS_ ω.
Apply SNoS_I ω omega_ordinal x (SNoLev x) to the current goal.
We will
prove SNoLev x ∈ ω.
rewrite the current goal using Hxn (from left to right).
An exact proof term for the current goal is nat_p_omega n Hn.
We will prove SNo_ (SNoLev x) x.
Apply SNoLev_ to the current goal.
An exact proof term for the current goal is Hx.
We prove the intermediate
claim L1:
∃y, SNo_max_of (SNoL x) y.
Assume H1: SNoL x = 0.
We prove the intermediate
claim L1a:
ordinal (- x).
Apply SNo_max_ordinal (- x) (SNo_minus_SNo x Hx) to the current goal.
Let w be given.
rewrite the current goal using minus_SNo_Lev x Hx (from left to right).
Apply SNoS_E2 (SNoLev x) (SNoLev_ordinal x Hx) w Hw to the current goal.
Assume Hw1 Hw2 Hw3 Hw4.
Apply SNoLt_trichotomy_or_impred w (- x) ?? (SNo_minus_SNo x Hx) to the current goal.
An exact proof term for the current goal is H2.
We will prove False.
Apply In_irref (SNoLev w) to the current goal.
rewrite the current goal using H2 (from left to right) at position 2.
rewrite the current goal using minus_SNo_Lev x Hx (from left to right).
An exact proof term for the current goal is ??.
We will prove False.
Apply EmptyE (- w) to the current goal.
rewrite the current goal using H1 (from right to left).
We will
prove - w ∈ SNoL x.
Apply SNoL_I x Hx (- w) (SNo_minus_SNo w ??) to the current goal.
We will
prove SNoLev (- w) ∈ SNoLev x.
rewrite the current goal using minus_SNo_Lev w ?? (from left to right).
An exact proof term for the current goal is ??.
An exact proof term for the current goal is minus_SNo_Lt_contra1 x w Hx ?? ??.
We prove the intermediate
claim L1b:
- x = n.
rewrite the current goal using Hxn (from right to left).
We will
prove - x = SNoLev x.
Use symmetry.
rewrite the current goal using minus_SNo_Lev x ?? (from right to left).
An
exact proof term for the current goal is
ordinal_SNoLev (- x) L1a.
We will prove False.
Apply HC to the current goal.
rewrite the current goal using minus_SNo_invol x ?? (from right to left).
rewrite the current goal using L1b (from left to right).
An exact proof term for the current goal is nat_p_omega n Hn.
Assume H1.
An exact proof term for the current goal is H1.
We prove the intermediate
claim L2:
∃z, SNo_min_of (SNoR x) z.
Assume H1: SNoR x = 0.
We prove the intermediate claim L2a: ordinal x.
Apply SNo_max_ordinal x Hx to the current goal.
Let w be given.
Apply SNoS_E2 (SNoLev x) (SNoLev_ordinal x ??) w Hw to the current goal.
Assume Hw1 Hw2 Hw3 Hw4.
Apply SNoLt_trichotomy_or_impred w x ?? ?? to the current goal.
An exact proof term for the current goal is H2.
Assume H2: w = x.
We will prove False.
Apply In_irref (SNoLev x) to the current goal.
rewrite the current goal using H2 (from right to left) at position 1.
An exact proof term for the current goal is ??.
We will prove False.
Apply EmptyE w to the current goal.
rewrite the current goal using H1 (from right to left).
We will
prove w ∈ SNoR x.
Apply SNoR_I x ?? w ?? ?? ?? to the current goal.
We prove the intermediate claim L2b: x = n.
rewrite the current goal using Hxn (from right to left).
We will prove x = SNoLev x.
Use symmetry.
An exact proof term for the current goal is ordinal_SNoLev x L2a.
We will prove False.
Apply HC to the current goal.
rewrite the current goal using L2b (from left to right).
An exact proof term for the current goal is nat_p_omega n Hn.
Assume H1.
An exact proof term for the current goal is H1.
Apply L1 to the current goal.
Let y be given.
Apply Hy to the current goal.
Assume H.
Apply H to the current goal.
Assume Hy2: SNo y.
Apply SNoL_E x Hx y Hy1 to the current goal.
Assume _ Hy1b Hy1c.
Apply L2 to the current goal.
Let z be given.
Apply Hz to the current goal.
Assume H.
Apply H to the current goal.
Assume Hz2: SNo z.
Apply SNoR_E x Hx z Hz1 to the current goal.
Assume _ Hz1b Hz1c.
We prove the intermediate
claim Lxx:
SNo (x + x).
An exact proof term for the current goal is SNo_add_SNo x x Hx Hx.
We prove the intermediate
claim Lyz:
SNo (y + z).
An exact proof term for the current goal is SNo_add_SNo y z Hy2 Hz2.
Apply IH (SNoLev y) to the current goal.
We will
prove SNoLev y ∈ n.
rewrite the current goal using Hxn (from right to left).
We will
prove SNoLev y ∈ SNoLev x.
An exact proof term for the current goal is Hy1b.
We will prove SNo y.
An exact proof term for the current goal is Hy2.
We will prove SNoLev y = SNoLev y.
Use reflexivity.
Apply IH (SNoLev z) to the current goal.
We will
prove SNoLev z ∈ n.
rewrite the current goal using Hxn (from right to left).
We will
prove SNoLev z ∈ SNoLev x.
An exact proof term for the current goal is Hz1b.
We will prove SNo z.
An exact proof term for the current goal is Hz2.
We will prove SNoLev z = SNoLev z.
Use reflexivity.
Apply SNoLt_trichotomy_or_impred (x + x) (y + z) Lxx Lyz to the current goal.
rewrite the current goal using add_SNo_com y z Hy2 Hz2 (from left to right).
Let w be given.
Assume H.
Apply H to the current goal.
Apply SNoL_E y Hy2 w Hw to the current goal.
Assume Hw1 Hw2 Hw3.
Apply IH (SNoLev w) to the current goal.
We will
prove SNoLev w ∈ n.
Apply ordinal_TransSet n (nat_p_ordinal n Hn) (SNoLev y) to the current goal.
We will
prove SNoLev y ∈ n.
rewrite the current goal using Hxn (from right to left).
An exact proof term for the current goal is Hy1b.
We will
prove SNoLev w ∈ SNoLev y.
An exact proof term for the current goal is Hw2.
We will prove SNo w.
An exact proof term for the current goal is Hw1.
We will prove SNoLev w = SNoLev w.
Use reflexivity.
We prove the intermediate
claim Lxe:
x = eps_ 1 * (z + w).
Apply double_eps_1 x z w Hx Hz2 Hw1 to the current goal.
Use symmetry.
An exact proof term for the current goal is H2.
Apply HC to the current goal.
rewrite the current goal using Lxe (from left to right).
An exact proof term for the current goal is Ldrz.
An exact proof term for the current goal is Ldrw.
We prove the intermediate
claim Lxe:
x = eps_ 1 * (y + z).
An exact proof term for the current goal is double_eps_1 x y z Hx Hy2 Hz2 H1.
Apply HC to the current goal.
rewrite the current goal using Lxe (from left to right).
An exact proof term for the current goal is Ldry.
An exact proof term for the current goal is Ldrz.
Let w be given.
Assume H.
Apply H to the current goal.
Apply SNoR_E z Hz2 w Hw to the current goal.
Assume Hw1 Hw2 Hw3.
Apply IH (SNoLev w) to the current goal.
We will
prove SNoLev w ∈ n.
Apply ordinal_TransSet n (nat_p_ordinal n Hn) (SNoLev z) to the current goal.
We will
prove SNoLev z ∈ n.
rewrite the current goal using Hxn (from right to left).
An exact proof term for the current goal is Hz1b.
We will
prove SNoLev w ∈ SNoLev z.
An exact proof term for the current goal is Hw2.
We will prove SNo w.
An exact proof term for the current goal is Hw1.
We will prove SNoLev w = SNoLev w.
Use reflexivity.
We prove the intermediate
claim Lxe:
x = eps_ 1 * (y + w).
Apply double_eps_1 x y w Hx Hy2 Hw1 to the current goal.
Use symmetry.
An exact proof term for the current goal is H2.
Apply HC to the current goal.
rewrite the current goal using Lxe (from left to right).
An exact proof term for the current goal is Ldry.
An exact proof term for the current goal is Ldrw.
∎