Let x be given.
Assume Hx.
Let y be given.
Assume Hy.
Assume Hxpos Hynneg.
Apply real_E x Hx to the current goal.
Assume Hx1 Hx2 Hx3 Hx4 Hx5.
Assume Hx7.
We prove the intermediate
claim L1:
∃n ∈ ω, eps_ n ≤ x.
Apply dneg to the current goal.
We prove the intermediate claim L1a: 0 = x.
Apply Hx6 0 (omega_SNoS_omega 0 (nat_p_omega 0 nat_0)) to the current goal.
Let k be given.
We will
prove abs_SNo (0 + - x) < eps_ k.
rewrite the current goal using
add_SNo_0L (- x) (SNo_minus_SNo x Hx1) (from left to right).
We will
prove abs_SNo (- x) < eps_ k.
rewrite the current goal using abs_SNo_minus x Hx1 (from left to right).
We will
prove abs_SNo x < eps_ k.
rewrite the current goal using pos_abs_SNo x Hxpos (from left to right).
We will
prove x < eps_ k.
Apply SNoLtLe_or x (eps_ k) Hx1 (SNo_eps_ k Hk) to the current goal.
Assume H1.
An exact proof term for the current goal is H1.
We will prove False.
Apply HC to the current goal.
We use k to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hk.
An exact proof term for the current goal is H1.
Apply SNoLt_irref x to the current goal.
rewrite the current goal using L1a (from right to left) at position 1.
An exact proof term for the current goal is Hxpos.
Apply L1 to the current goal.
Let n be given.
Assume Hn.
Apply Hn to the current goal.
We prove the intermediate
claim L2n:
nat_p (2 ^ n).
Apply nat_exp_SNo_nat to the current goal.
An exact proof term for the current goal is nat_2.
An exact proof term for the current goal is omega_nat_p n Hn1.
We prove the intermediate
claim L2nb:
SNo (2 ^ n).
An exact proof term for the current goal is SNo_exp_SNo_nat 2 SNo_2 n (omega_nat_p n Hn1).
We prove the intermediate
claim L2nc:
0 ≤ 2 ^ n.
Apply ordinal_SNoLev_max_2 to the current goal.
We will
prove ordinal (2 ^ n).
Apply nat_p_ordinal to the current goal.
An exact proof term for the current goal is L2n.
An exact proof term for the current goal is SNo_0.
We will
prove SNoLev 0 ∈ ordsucc (2 ^ n).
rewrite the current goal using SNoLev_0 (from left to right).
We will
prove 0 ∈ ordsucc (2 ^ n).
Apply nat_0_in_ordsucc to the current goal.
An exact proof term for the current goal is L2n.
We prove the intermediate
claim L2:
1 ≤ 2 ^ n * x.
rewrite the current goal using mul_SNo_eps_power_2' n (omega_nat_p n Hn1) (from right to left) at position 1.
We will
prove 2 ^ n * eps_ n ≤ 2 ^ n * x.
Apply nonneg_mul_SNo_Le (2 ^ n) (eps_ n) x L2nb L2nc (SNo_eps_ n Hn1) Hx1 to the current goal.
We will
prove eps_ n ≤ x.
An exact proof term for the current goal is Hn2.
Apply real_E y Hy to the current goal.
Assume Hy1 Hy2.
Assume Hy4.
Assume Hy6 Hy7.
Let N be given.
Assume HN.
Apply HN to the current goal.
We use
(N * 2 ^ n) to
witness the existential quantifier.
Apply andI to the current goal.
We will
prove N * 2 ^ n ∈ ω.
We will
prove N * 2 ^ n ∈ ω.
rewrite the current goal using
mul_nat_mul_SNo N HN1 (2 ^ n) (nat_p_omega (2 ^ n) L2n) (from right to left).
We will
prove mul_nat N (2 ^ n) ∈ ω.
Apply nat_p_omega to the current goal.
Apply mul_nat_p to the current goal.
An exact proof term for the current goal is omega_nat_p N HN1.
An exact proof term for the current goal is L2n.
We will
prove y ≤ (N * 2 ^ n) * x.
We prove the intermediate claim LN1: SNo N.
An exact proof term for the current goal is omega_SNo N HN1.
We prove the intermediate
claim LN2n:
SNo (N * 2 ^ n).
Apply SNo_mul_SNo to the current goal.
An exact proof term for the current goal is LN1.
An exact proof term for the current goal is L2nb.
Apply SNoLe_tra y N ((N * 2 ^ n) * x) Hy1 LN1 (SNo_mul_SNo (N * 2 ^ n) x LN2n Hx1) to the current goal.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is HN2.
We will
prove N ≤ (N * 2 ^ n) * x.
rewrite the current goal using mul_SNo_oneR N LN1 (from right to left) at position 1.
We will
prove N * 1 ≤ (N * 2 ^ n) * x.
rewrite the current goal using
mul_SNo_assoc N (2 ^ n) x LN1 L2nb Hx1 (from right to left).
We will
prove N * 1 ≤ N * (2 ^ n * x).
We prove the intermediate
claim LN2:
0 ≤ N.
Apply ordinal_SNoLev_max_2 to the current goal.
We will prove ordinal N.
Apply nat_p_ordinal to the current goal.
An exact proof term for the current goal is omega_nat_p N HN1.
An exact proof term for the current goal is SNo_0.
We will
prove SNoLev 0 ∈ ordsucc N.
rewrite the current goal using SNoLev_0 (from left to right).
We will
prove 0 ∈ ordsucc N.
Apply nat_0_in_ordsucc to the current goal.
An exact proof term for the current goal is omega_nat_p N HN1.
Apply nonneg_mul_SNo_Le N 1 (2 ^ n * x) LN1 LN2 SNo_1 to the current goal.
We will
prove SNo (2 ^ n * x).
An
exact proof term for the current goal is
SNo_mul_SNo (2 ^ n) x L2nb Hx1.
We will
prove 1 ≤ 2 ^ n * x.
An exact proof term for the current goal is L2.
∎