Let x' be given.
Assume Hx' Hx'pos.
Let y and y' be given.
Assume Hy Hy'.
Apply SNoS_E2 (SNoLev x) (SNoLev_ordinal x Hx) x' Hx' to the current goal.
Assume _ _ Hx'1 _.
rewrite the current goal using Hy' (from left to right).
Apply SNo_mul_SNo to the current goal.
Apply SNo_add_SNo to the current goal.
An exact proof term for the current goal is SNo_1.
Apply SNo_mul_SNo to the current goal.
Apply SNo_add_SNo to the current goal.
An exact proof term for the current goal is Hx'1.
Apply SNo_minus_SNo to the current goal.
An exact proof term for the current goal is Hx.
An exact proof term for the current goal is Hy.
Apply Hg x' Hx' Hx'pos to the current goal.
Assume H _.
An exact proof term for the current goal is H.
Let x' be given.
Assume Hx' Hx'pos.
Let y and y' be given.
Assume Hy Hy'.
Apply SNoS_E2 (SNoLev x) (SNoLev_ordinal x Hx) x' Hx' to the current goal.
Assume _ _ Hx'1 _.
We will
prove 1 + - x * y' = (1 + - x * y) * (x' + - x) * g x'.
Apply Hg x' Hx' Hx'pos to the current goal.
Assume Hgx'1 Hgx'2.
rewrite the current goal using
mul_SNo_distrR x' (- x) (g x') Hx'1 (SNo_minus_SNo x Hx) Hgx'1 (from left to right).
We will
prove 1 + - x * y' = (1 + - x * y) * (x' * g x' + (- x) * g x').
rewrite the current goal using Hgx'2 (from left to right).
We will
prove 1 + - x * y' = (1 + - x * y) * (1 + (- x) * g x').
rewrite the current goal using
SNo_foil 1 (- x * y) 1 ((- x) * g x') SNo_1 (SNo_minus_SNo (x * y) (SNo_mul_SNo x y Hx Hy)) SNo_1 (SNo_mul_SNo (- x) (g x') (SNo_minus_SNo x Hx) Hgx'1) (from left to right).
We will
prove 1 + - x * y' = 1 * 1 + 1 * (- x) * g x' + (- x * y) * 1 + (- x * y) * (- x) * g x'.
rewrite the current goal using mul_SNo_oneL 1 SNo_1 (from left to right).
rewrite the current goal using
mul_SNo_oneL ((- x) * g x') (SNo_mul_SNo (- x) (g x') (SNo_minus_SNo x Hx) Hgx'1) (from left to right).
rewrite the current goal using
mul_SNo_oneR (- x * y) (SNo_minus_SNo (x * y) (SNo_mul_SNo x y Hx Hy)) (from left to right).
We will
prove 1 + - x * y' = 1 + (- x) * g x' + - x * y + (- x * y) * (- x) * g x'.
Use f_equal.
We will
prove - x * y' = (- x) * g x' + - x * y + (- x * y) * (- x) * g x'.
rewrite the current goal using Hy' (from left to right).
We will
prove - x * ((1 + (x' + - x) * y) * g x') = (- x) * g x' + - x * y + (- x * y) * (- x) * g x'.
rewrite the current goal using
mul_SNo_distrR 1 ((x' + - x) * y) (g x') SNo_1 (SNo_mul_SNo (x' + - x) y (SNo_add_SNo x' (- x) Hx'1 (SNo_minus_SNo x Hx)) Hy) Hgx'1 (from left to right).
We will
prove - x * (1 * g x' + ((x' + - x) * y) * g x') = (- x) * g x' + - x * y + (- x * y) * (- x) * g x'.
rewrite the current goal using mul_SNo_oneL (g x') Hgx'1 (from left to right).
We will
prove - x * (g x' + ((x' + - x) * y) * g x') = (- x) * g x' + - x * y + (- x * y) * (- x) * g x'.
rewrite the current goal using
mul_SNo_minus_distrL x (g x' + ((x' + - x) * y) * g x') Hx (SNo_add_SNo (g x') (((x' + - x) * y) * g x') Hgx'1 (SNo_mul_SNo ((x' + - x) * y) (g x') (SNo_mul_SNo (x' + - x) y (SNo_add_SNo x' (- x) Hx'1 (SNo_minus_SNo x Hx)) Hy) Hgx'1)) (from right to left).
We will
prove (- x) * (g x' + ((x' + - x) * y) * g x') = (- x) * g x' + - x * y + (- x * y) * (- x) * g x'.
rewrite the current goal using
mul_SNo_distrL (- x) (g x') (((x' + - x) * y) * g x') (SNo_minus_SNo x Hx) Hgx'1 (SNo_mul_SNo ((x' + - x) * y) (g x') (SNo_mul_SNo (x' + - x) y (SNo_add_SNo x' (- x) Hx'1 (SNo_minus_SNo x Hx)) Hy) Hgx'1) (from left to right).
We will
prove (- x) * g x' + (- x) * (((x' + - x) * y) * g x') = (- x) * g x' + - x * y + (- x * y) * (- x) * g x'.
Use f_equal.
We will
prove (- x) * (((x' + - x) * y) * g x') = - x * y + (- x * y) * (- x) * g x'.
rewrite the current goal using
mul_SNo_distrR x' (- x) y Hx'1 (SNo_minus_SNo x Hx) Hy (from left to right).
We will
prove (- x) * ((x' * y + (- x) * y) * g x') = - x * y + (- x * y) * (- x) * g x'.
rewrite the current goal using
mul_SNo_distrR (x' * y) ((- x) * y) (g x') (SNo_mul_SNo x' y Hx'1 Hy) (SNo_mul_SNo (- x) y (SNo_minus_SNo x Hx) Hy) Hgx'1 (from left to right).
We will
prove (- x) * ((x' * y) * g x' + ((- x) * y) * g x') = - x * y + (- x * y) * (- x) * g x'.
rewrite the current goal using mul_SNo_com x' y Hx'1 Hy (from left to right).
rewrite the current goal using mul_SNo_assoc y x' (g x') Hy Hx'1 Hgx'1 (from right to left).
rewrite the current goal using Hgx'2 (from left to right).
rewrite the current goal using mul_SNo_oneR y Hy (from left to right).
We will
prove (- x) * (y + ((- x) * y) * g x') = - x * y + (- x * y) * (- x) * g x'.
rewrite the current goal using
mul_SNo_distrL (- x) y (((- x) * y) * g x') (SNo_minus_SNo x Hx) Hy (SNo_mul_SNo ((- x) * y) (g x') (SNo_mul_SNo (- x) y (SNo_minus_SNo x Hx) Hy) Hgx'1) (from left to right).
We will
prove (- x) * y + (- x) * ((- x) * y) * g x' = - x * y + (- x * y) * (- x) * g x'.
rewrite the current goal using mul_SNo_minus_distrL x y Hx Hy (from left to right) at position 1.
We will
prove - x * y + (- x) * ((- x) * y) * g x' = - x * y + (- x * y) * (- x) * g x'.
Use f_equal.
We will
prove (- x) * ((- x) * y) * g x' = (- x * y) * (- x) * g x'.
rewrite the current goal using
mul_SNo_assoc (- x) ((- x) * y) (g x') (SNo_minus_SNo x Hx) (SNo_mul_SNo (- x) y (SNo_minus_SNo x Hx) Hy) Hgx'1 (from left to right).
rewrite the current goal using
mul_SNo_assoc (- x * y) (- x) (g x') (SNo_minus_SNo (x * y) (SNo_mul_SNo x y Hx Hy)) (SNo_minus_SNo x Hx) Hgx'1 (from left to right).
Use f_equal.
We will
prove (- x) * ((- x) * y) = (- x * y) * (- x).
rewrite the current goal using
mul_SNo_com (- x) y (SNo_minus_SNo x Hx) Hy (from left to right).
We will
prove (- x) * (y * (- x)) = (- x * y) * (- x).
rewrite the current goal using mul_SNo_minus_distrL x y Hx Hy (from right to left).
We will
prove (- x) * (y * (- x)) = ((- x) * y) * (- x).
An
exact proof term for the current goal is
mul_SNo_assoc (- x) y (- x) (SNo_minus_SNo x Hx) Hy (SNo_minus_SNo x Hx).
Apply andI to the current goal.
Let y be given.
We will
prove y ∈ r 0 0 → SNo y ∧ x * y < 1.
rewrite the current goal using tuple_2_0_eq (from left to right).
We will
prove y ∈ {0} → SNo y ∧ x * y < 1.
rewrite the current goal using SingE 0 y H1 (from left to right).
Apply andI to the current goal.
An exact proof term for the current goal is SNo_0.
rewrite the current goal using mul_SNo_zeroR x Hx (from left to right).
An exact proof term for the current goal is SNoLt_0_1.
Let y be given.
We will
prove y ∈ r 0 1 → SNo y ∧ 1 < x * y.
We will
prove y ∈ ({0},0) 1 → SNo y ∧ 1 < x * y.
rewrite the current goal using tuple_2_1_eq (from left to right).
We will
prove y ∈ 0 → SNo y ∧ 1 < x * y.
We will prove False.
An exact proof term for the current goal is EmptyE y H1.