We prove the intermediate
claim HdenDef:
den = add_SNo num u2.
rewrite the current goal using HdenDef (from left to right) at position 1.
rewrite the current goal using
(add_SNo_0R 0 SNo_0) (from right to left) at position 1.
An exact proof term for the current goal is H00le.
We prove the intermediate
claim Hnum_le_den:
num ≤ den.
We prove the intermediate
claim Hu2_le_den:
u2 ≤ den.
We prove the intermediate
claim HdenDef:
den = add_SNo num u2.
rewrite the current goal using HdenDef (from left to right) at position 1.
rewrite the current goal using
(add_SNo_com num u2 HnumS Hu2S) (from left to right) at position 1.
We prove the intermediate
claim Hdenle0:
den ≤ 0.
rewrite the current goal using Hden0 (from left to right) at position 1.
An
exact proof term for the current goal is
(SNoLe_ref 0).
We prove the intermediate
claim Hnumle0:
num ≤ 0.
An
exact proof term for the current goal is
(SNoLe_tra num den 0 HnumS HdenS SNo_0 Hnum_le_den Hdenle0).
We prove the intermediate
claim Hu2le0:
u2 ≤ 0.
An
exact proof term for the current goal is
(SNoLe_tra u2 den 0 Hu2S HdenS SNo_0 Hu2_le_den Hdenle0).
We prove the intermediate
claim Hnum0:
num = 0.
An
exact proof term for the current goal is
(SNoLe_antisym num 0 HnumS SNo_0 Hnumle0 H0le_num).
We prove the intermediate
claim Hu20:
u2 = 0.
We prove the intermediate
claim Ht0:
t = 0.
We prove the intermediate
claim Hcases:
t = 0 ∨ 0 < mul_SNo t t.
Apply Hcases to the current goal.
An exact proof term for the current goal is H0.
We prove the intermediate
claim Hpos0:
0 < 0.
rewrite the current goal using Hnum0 (from right to left) at position 2.
An exact proof term for the current goal is Hpos.
We prove the intermediate
claim Hu0:
u = 0.
We prove the intermediate
claim Hcases:
u = 0 ∨ 0 < mul_SNo u u.
Apply Hcases to the current goal.
An exact proof term for the current goal is H0.
We prove the intermediate
claim Hpos0:
0 < 0.
rewrite the current goal using Hu20 (from right to left) at position 2.
An exact proof term for the current goal is Hpos.
We prove the intermediate
claim Ht1:
t = 1.
We prove the intermediate
claim HtEq:
add_SNo u 1 = t.
rewrite the current goal using HuDef (from left to right).
rewrite the current goal using HtEq (from right to left).
rewrite the current goal using Hu0 (from left to right).
We prove the intermediate
claim H01:
0 = 1.
rewrite the current goal using Ht0 (from right to left) at position 1.
An exact proof term for the current goal is Ht1.
An
exact proof term for the current goal is
(neq_0_1 H01).
We prove the intermediate
claim Hcases:
0 < den ∨ 0 = den.
An
exact proof term for the current goal is
(SNoLeE 0 den SNo_0 HdenS H0le_den).
Apply Hcases to the current goal.
An exact proof term for the current goal is Hpos.
Apply FalseE to the current goal.
We prove the intermediate
claim Hden0:
den = 0.
rewrite the current goal using Heq (from right to left).
Use reflexivity.
An exact proof term for the current goal is (Hden_ne0 Hden0).
We prove the intermediate
claim HfS:
SNo f.
An
exact proof term for the current goal is
(real_SNo f HfR).
We prove the intermediate
claim HfLt0:
f < 0.
An
exact proof term for the current goal is
(RltE_lt f 0 Hlt).
We prove the intermediate
claim HdenLt0:
0 < den.
An exact proof term for the current goal is Hden_pos.
We prove the intermediate
claim HmulLt0:
mul_SNo f den < 0.
An
exact proof term for the current goal is
(mul_SNo_neg_pos f den HfS HdenS HfLt0 HdenLt0).
We prove the intermediate
claim HmulEq:
mul_SNo f den = num.
rewrite the current goal using HfEq (from left to right).
An
exact proof term for the current goal is
(mul_div_SNo_invL num den HnumS HdenS Hden_ne0').
We prove the intermediate
claim HnumLt0:
num < 0.
rewrite the current goal using HmulEq (from right to left) at position 1.
An exact proof term for the current goal is HmulLt0.
We prove the intermediate
claim Hbad:
0 < 0.
We prove the intermediate
claim H1Lt:
1 < f.
An
exact proof term for the current goal is
(RltE_lt 1 f Hlt).
We prove the intermediate
claim HdenLt0:
0 < den.
An exact proof term for the current goal is Hden_pos.
We prove the intermediate
claim HfDiv:
f = div_SNo num den.
An exact proof term for the current goal is HfEq.
We prove the intermediate
claim H1LtDiv:
1 < div_SNo num den.
rewrite the current goal using HfDiv (from right to left).
An exact proof term for the current goal is H1Lt.
We prove the intermediate
claim HdenLtNum:
den < num.
We prove the intermediate
claim H1denLt:
mul_SNo 1 den < num.
rewrite the current goal using
(mul_SNo_oneL den HdenS) (from right to left) at position 1.
An exact proof term for the current goal is H1denLt.
We prove the intermediate
claim HnumLeDen:
num ≤ den.
We prove the intermediate
claim Hbad:
den < den.
An
exact proof term for the current goal is
(SNoLtLe_tra den num den HdenS HnumS HdenS HdenLtNum HnumLeDen).
∎