Let x and y be given.
Assume Hx: SNo x.
Assume Hy: SNo y.
We prove the intermediate claim Lxy: SNo (x + y).
An exact proof term for the current goal is SNo_add_SNo x y Hx Hy.
We prove the intermediate claim LI: ∀u, SNo uSNoLev u SNoLev (x + y)x + y < u(∃v ∈ SNoR x, v + yu)(∃v ∈ SNoR y, x + vu).
Apply SNoLev_ind to the current goal.
Let u be given.
Assume Hu1: SNo u.
Assume IH: ∀zSNoS_ (SNoLev u), SNoLev z SNoLev (x + y)x + y < z(∃v ∈ SNoR x, v + yz)(∃v ∈ SNoR y, x + vz).
Assume Hu2: SNoLev u SNoLev (x + y).
Assume Hu3: x + y < u.
Apply dneg to the current goal.
Assume HNC: ¬ ((∃v ∈ SNoR x, v + yu)(∃v ∈ SNoR y, x + vu)).
Apply SNoLt_irref u to the current goal.
We will prove u < u.
Apply (λH : ux + ySNoLeLt_tra u (x + y) u Hu1 Lxy Hu1 H Hu3) to the current goal.
We will prove ux + y.
Set Lxy1 to be the term {w + y|w ∈ SNoL x}.
Set Lxy2 to be the term {x + w|w ∈ SNoL y}.
Set Rxy1 to be the term {z + y|z ∈ SNoR x}.
Set Rxy2 to be the term {x + z|z ∈ SNoR y}.
rewrite the current goal using add_SNo_eq x Hx y Hy (from left to right).
We will prove uSNoCut (Lxy1Lxy2) (Rxy1Rxy2).
rewrite the current goal using SNo_eta u Hu1 (from left to right).
We will prove SNoCut (SNoL u) (SNoR u)SNoCut (Lxy1Lxy2) (Rxy1Rxy2).
Apply SNoCut_Le (SNoL u) (SNoR u) (Lxy1Lxy2) (Rxy1Rxy2) to the current goal.
An exact proof term for the current goal is SNoCutP_SNoL_SNoR u Hu1.
An exact proof term for the current goal is add_SNo_SNoCutP x y Hx Hy.
rewrite the current goal using add_SNo_eq x Hx y Hy (from right to left).
We will prove ∀zSNoL u, z < x + y.
Let z be given.
Assume Hz: z SNoL u.
Apply SNoL_E u Hu1 z Hz to the current goal.
Assume Hz1: SNo z.
Assume Hz2: SNoLev z SNoLev u.
Assume Hz3: z < u.
Apply SNoLt_trichotomy_or z (x + y) Hz1 Lxy to the current goal.
Assume H1.
Apply H1 to the current goal.
Assume H1: z < x + y.
An exact proof term for the current goal is H1.
Assume H1: z = x + y.
We will prove False.
Apply In_no2cycle (SNoLev z) (SNoLev u) Hz2 to the current goal.
We will prove SNoLev u SNoLev z.
rewrite the current goal using H1 (from left to right).
An exact proof term for the current goal is Hu2.
Assume H1: x + y < z.
We will prove False.
We prove the intermediate claim Lz1: z SNoS_ (SNoLev u).
An exact proof term for the current goal is SNoL_SNoS_ u z Hz.
We prove the intermediate claim Lz2: SNoLev z SNoLev (x + y).
Apply SNoLev_ordinal (x + y) Lxy to the current goal.
Assume Hxy1 _.
An exact proof term for the current goal is Hxy1 (SNoLev u) Hu2 (SNoLev z) Hz2.
Apply IH z Lz1 Lz2 H1 to the current goal.
Assume H2: ∃v ∈ SNoR x, v + yz.
Apply H2 to the current goal.
Let v be given.
Assume H3.
Apply H3 to the current goal.
Assume Hv: v SNoR x.
Assume H3: v + yz.
Apply SNoR_E x Hx v Hv to the current goal.
Assume Hv1: SNo v.
Assume Hv2: SNoLev v SNoLev x.
Assume Hv3: x < v.
Apply HNC to the current goal.
Apply orIL to the current goal.
We use v to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hv.
We will prove v + yu.
Apply SNoLe_tra (v + y) z u (SNo_add_SNo v y Hv1 Hy) Hz1 Hu1 to the current goal.
We will prove v + yz.
An exact proof term for the current goal is H3.
We will prove zu.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is Hz3.
Assume H2: ∃v ∈ SNoR y, x + vz.
Apply H2 to the current goal.
Let v be given.
Assume H3.
Apply H3 to the current goal.
Assume Hv: v SNoR y.
Assume H3: x + vz.
Apply SNoR_E y Hy v Hv to the current goal.
Assume Hv1: SNo v.
Assume Hv2: SNoLev v SNoLev y.
Assume Hv3: y < v.
Apply HNC to the current goal.
Apply orIR to the current goal.
We use v to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hv.
We will prove x + vu.
Apply SNoLe_tra (x + v) z u (SNo_add_SNo x v Hx Hv1) Hz1 Hu1 to the current goal.
We will prove x + vz.
An exact proof term for the current goal is H3.
We will prove zu.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is Hz3.
rewrite the current goal using SNo_eta u Hu1 (from right to left).
We will prove ∀wRxy1Rxy2, u < w.
Let w be given.
Assume Hw: w Rxy1Rxy2.
Apply binunionE Rxy1 Rxy2 w Hw to the current goal.
Assume Hw2: w Rxy1.
We will prove u < w.
Apply ReplE_impred (SNoR x) (λw ⇒ w + y) w Hw2 to the current goal.
Let v be given.
Assume Hv: v SNoR x.
Assume Hwv: w = v + y.
Apply SNoR_E x Hx v Hv to the current goal.
Assume Hv1: SNo v.
Assume Hv2: SNoLev v SNoLev x.
Assume Hv3: x < v.
rewrite the current goal using Hwv (from left to right).
We will prove u < v + y.
We prove the intermediate claim Lvy: SNo (v + y).
An exact proof term for the current goal is SNo_add_SNo v y Hv1 Hy.
Apply SNoLtLe_or u (v + y) Hu1 Lvy to the current goal.
Assume H1: u < v + y.
An exact proof term for the current goal is H1.
Assume H1: v + yu.
We will prove False.
Apply HNC to the current goal.
Apply orIL to the current goal.
We use v to witness the existential quantifier.
Apply andI to the current goal.
We will prove v SNoR x.
An exact proof term for the current goal is Hv.
We will prove v + yu.
An exact proof term for the current goal is H1.
Assume Hw2: w Rxy2.
We will prove u < w.
Apply ReplE_impred (SNoR y) (λw ⇒ x + w) w Hw2 to the current goal.
Let v be given.
Assume Hv: v SNoR y.
Assume Hwv: w = x + v.
Apply SNoR_E y Hy v Hv to the current goal.
Assume Hv1: SNo v.
Assume Hv2: SNoLev v SNoLev y.
Assume Hv3: y < v.
rewrite the current goal using Hwv (from left to right).
We will prove u < x + v.
We prove the intermediate claim Lxv: SNo (x + v).
An exact proof term for the current goal is SNo_add_SNo x v Hx Hv1.
Apply SNoLtLe_or u (x + v) Hu1 Lxv to the current goal.
Assume H1: u < x + v.
An exact proof term for the current goal is H1.
Assume H1: x + vu.
We will prove False.
Apply HNC to the current goal.
Apply orIR to the current goal.
We use v to witness the existential quantifier.
Apply andI to the current goal.
We will prove v SNoR y.
An exact proof term for the current goal is Hv.
We will prove x + vu.
An exact proof term for the current goal is H1.
Let u be given.
Assume Hu: u SNoR (x + y).
Apply SNoR_E (x + y) Lxy u Hu to the current goal.
Assume Hu1: SNo u.
Assume Hu2: SNoLev u SNoLev (x + y).
Assume Hu3: x + y < u.
An exact proof term for the current goal is LI u Hu1 Hu2 Hu3.