Apply famunionE_impred Y (λy ⇒ {(x + y * z) :/: (y + z)|z ∈ Z, 0 < y + z}) w Hw to the current goal.
Let y be given.
Apply ReplSepE_impred Z (λz ⇒ 0 < y + z) (λz ⇒ (x + y * z) :/: (y + z)) w Hw2 to the current goal.
Let z be given.
Apply SepE real (λw ⇒ 0 ≤ w) y (HY y Hy) to the current goal.
We prove the intermediate claim LyS: SNo y.
An
exact proof term for the current goal is
real_SNo y HyR.
Apply SepE real (λz ⇒ 0 ≤ z) z (HZ z Hz) to the current goal.
We prove the intermediate claim LzS: SNo z.
An
exact proof term for the current goal is
real_SNo z HzR.
rewrite the current goal using Hw3 (from left to right).
We will
prove 0 ≤ (x + y * z) :/: (y + z).
We prove the intermediate
claim L1:
0 ≤ x + y * z.
rewrite the current goal using add_SNo_0R 0 SNo_0 (from right to left).
Apply add_SNo_Le3 0 0 x (y * z) SNo_0 SNo_0 (real_SNo x Hx) (SNo_mul_SNo y z LyS LzS) to the current goal.
An exact proof term for the current goal is Hxnneg.
Apply SNoLeE 0 y SNo_0 LyS Hynneg to the current goal.
Apply SNoLeE 0 z SNo_0 LzS Hznneg to the current goal.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is mul_SNo_pos_pos y z LyS LzS H1 H2.
Assume H2: 0 = z.
rewrite the current goal using H2 (from right to left).
rewrite the current goal using mul_SNo_zeroR y LyS (from left to right).
Apply SNoLe_ref to the current goal.
Assume H1: 0 = y.
rewrite the current goal using H1 (from right to left).
rewrite the current goal using mul_SNo_zeroL z LzS (from left to right).
Apply SNoLe_ref to the current goal.
Apply SNoLeE 0 (x + y * z) SNo_0 (SNo_add_SNo x (y * z) LxS (SNo_mul_SNo y z LyS LzS)) L1 to the current goal.
We will
prove 0 ≤ (x + y * z) :/: (y + z).
Apply SNoLtLe to the current goal.
We will
prove 0 < (x + y * z) :/: (y + z).
An
exact proof term for the current goal is
div_SNo_pos_pos (x + y * z) (y + z) (SNo_add_SNo x (y * z) LxS (SNo_mul_SNo y z LyS LzS)) (SNo_add_SNo y z LyS LzS) H1 Hyz.
rewrite the current goal using H1 (from right to left).
rewrite the current goal using
div_SNo_0_num (y + z) (SNo_add_SNo y z LyS LzS) (from left to right).
Apply SNoLe_ref to the current goal.
∎