Let p and c be given.
Set s to be the term
add_SNo ax ay.
We prove the intermediate
claim HdxR:
dx ∈ R.
We prove the intermediate
claim HdyR:
dy ∈ R.
We prove the intermediate
claim HdxS:
SNo dx.
An
exact proof term for the current goal is
(real_SNo dx HdxR).
We prove the intermediate
claim HdyS:
SNo dy.
An
exact proof term for the current goal is
(real_SNo dy HdyR).
We prove the intermediate
claim HaxS:
SNo ax.
An
exact proof term for the current goal is
(SNo_abs_SNo dx HdxS).
We prove the intermediate
claim HayS:
SNo ay.
An
exact proof term for the current goal is
(SNo_abs_SNo dy HdyS).
We prove the intermediate
claim HdR:
d ∈ R.
We prove the intermediate
claim HdS:
SNo d.
An
exact proof term for the current goal is
(real_SNo d HdR).
We prove the intermediate
claim HsS:
SNo s.
An
exact proof term for the current goal is
(SNo_add_SNo ax ay HaxS HayS).
We prove the intermediate
claim HaxNN:
0 ≤ ax.
We prove the intermediate
claim HayNN:
0 ≤ ay.
We prove the intermediate
claim HdNN:
0 ≤ d.
We prove the intermediate
claim HsNN:
0 ≤ s.
rewrite the current goal using
(add_SNo_0L 0 SNo_0) (from right to left) at position 1.
Set ax2 to be the term
mul_SNo ax ax.
Set ay2 to be the term
mul_SNo ay ay.
We prove the intermediate
claim Hax2S:
SNo ax2.
An
exact proof term for the current goal is
(SNo_mul_SNo ax ax HaxS HaxS).
We prove the intermediate
claim Hay2S:
SNo ay2.
An
exact proof term for the current goal is
(SNo_mul_SNo ay ay HayS HayS).
We prove the intermediate
claim Hd2S:
SNo d2.
An
exact proof term for the current goal is
(SNo_mul_SNo d d HdS HdS).
We prove the intermediate
claim Hs2S:
SNo s2.
An
exact proof term for the current goal is
(SNo_mul_SNo s s HsS HsS).
We prove the intermediate
claim Hd2Eq:
d2 = add_SNo ax2 ay2.
rewrite the current goal using Hd2Def (from left to right) at position 1.
rewrite the current goal using Hdsqr (from left to right).
rewrite the current goal using
(abs_SNo_sqr_eq dx HdxS) (from right to left) at position 1.
rewrite the current goal using
(abs_SNo_sqr_eq dy HdyS) (from right to left) at position 1.
Use reflexivity.
rewrite the current goal using
(SNo_foil ax ay ax ay HaxS HayS HaxS HayS) (from right to left).
Use reflexivity.
We prove the intermediate
claim Hm1S:
SNo (mul_SNo ax ay).
An
exact proof term for the current goal is
(SNo_mul_SNo ax ay HaxS HayS).
We prove the intermediate
claim Hm2S:
SNo (mul_SNo ay ax).
An
exact proof term for the current goal is
(SNo_mul_SNo ay ax HayS HaxS).
We prove the intermediate
claim Hm1NN:
0 ≤ mul_SNo ax ay.
We prove the intermediate
claim Hm2NN:
0 ≤ mul_SNo ay ax.
We prove the intermediate
claim Hay2_le_m2ay2:
ay2 ≤ add_SNo (mul_SNo ay ax) ay2.
We prove the intermediate
claim H0le_m2:
0 ≤ mul_SNo ay ax.
An exact proof term for the current goal is Hm2NN.
rewrite the current goal using
(add_SNo_0L ay2 Hay2S) (from right to left) at position 1.
An exact proof term for the current goal is Htmp.
We prove the intermediate
claim H0le_m1:
0 ≤ mul_SNo ax ay.
An exact proof term for the current goal is Hm1NN.
An exact proof term for the current goal is Htmp.
We prove the intermediate
claim Hd2Le_s2:
d2 ≤ s2.
rewrite the current goal using Hd2Eq (from left to right).
rewrite the current goal using Hs2Eq (from left to right).
We prove the intermediate
claim Hd2Def:
d2 = mul_SNo d d.
We prove the intermediate
claim Hs2Def:
s2 = mul_SNo s s.
rewrite the current goal using Hd2Def (from right to left).
rewrite the current goal using Hs2Def (from right to left).
An exact proof term for the current goal is Hd2Le_s2.
∎