Let m and n be given.
Assume Hn.
We prove the intermediate claim Ln: SNo n.
Apply omega_SNo to the current goal.
An exact proof term for the current goal is Hn.
Apply nat_ind to the current goal.
We will
prove m ∈ n + 0 → m ∈ n ∨ m + - n ∈ 0.
rewrite the current goal using
add_SNo_0R n Ln (from left to right).
Assume H1.
Apply orIL to the current goal.
An exact proof term for the current goal is H1.
Let k be given.
Assume Hk.
rewrite the current goal using
add_SNo_1_ordsucc k (nat_p_omega k Hk) (from right to left) at position 1.
rewrite the current goal using
add_SNo_assoc n k 1 Ln (nat_p_SNo k Hk) SNo_1 (from left to right).
Apply ordsuccE (n + k) m H1 to the current goal.
Apply IHk H2 to the current goal.
Apply orIL to the current goal.
An exact proof term for the current goal is H3.
Apply orIR to the current goal.
Apply ordsuccI1 to the current goal.
An exact proof term for the current goal is H3.
Apply orIR to the current goal.
rewrite the current goal using H2 (from left to right).
We will
prove (n + k) + - n ∈ ordsucc k.
rewrite the current goal using
add_SNo_com (n + k) (- n) (SNo_add_SNo n k Ln (nat_p_SNo k Hk)) (SNo_minus_SNo n Ln) (from left to right).
rewrite the current goal using
add_SNo_minus_L2 n k Ln (nat_p_SNo k Hk) (from left to right).
Apply ordsuccI2 to the current goal.
∎