We prove the intermediate
claim HxX:
x ∈ X.
We prove the intermediate
claim HyX:
y ∈ X.
We prove the intermediate
claim HxyIn:
(x,y) ∈ setprod X X.
We prove the intermediate
claim HdxyR:
apply_fun d (x,y) ∈ R.
An exact proof term for the current goal is (Hfun (x,y) HxyIn).
We prove the intermediate
claim HdxyS:
SNo (apply_fun d (x,y)).
We prove the intermediate
claim HdxyNe0:
¬ (apply_fun d (x,y) = 0).
Apply Hneq to the current goal.
An
exact proof term for the current goal is
(metric_on_zero_eq X d x y Hd HxX HyX H0).
We prove the intermediate
claim HdxyPos:
Rlt 0 (apply_fun d (x,y)).
We prove the intermediate
claim H0eq:
apply_fun d (x,y) = 0.
rewrite the current goal using Heq (from right to left).
Use reflexivity.
An exact proof term for the current goal is (HdxyNe0 H0eq).
An
exact proof term for the current goal is
((metric_on_nonneg X d x y Hd HxX HyX) HltR).
Apply HexN to the current goal.
Let N be given.
Assume HNpair.
We prove the intermediate
claim HNomega:
N ∈ ω.
We prove the intermediate
claim HNnat:
nat_p N.
An
exact proof term for the current goal is
(omega_nat_p N HNomega).
We prove the intermediate
claim HsuccOmega:
ordsucc N ∈ ω.
An
exact proof term for the current goal is
(omega_ordsucc N HNomega).
An
exact proof term for the current goal is
(SNo_eps_ (ordsucc N) HsuccOmega).
Apply HexNx to the current goal.
Let Nx be given.
Assume HNxpair.
Apply HexNy to the current goal.
Let Ny be given.
Assume HNypair.
We prove the intermediate
claim HNxomega:
Nx ∈ ω.
We prove the intermediate
claim HNyomega:
Ny ∈ ω.
Set n0 to be the term
Nx ∪ Ny.
We prove the intermediate
claim Hn0omega:
n0 ∈ ω.
An
exact proof term for the current goal is
(omega_binunion Nx Ny HNxomega HNyomega).
We prove the intermediate
claim HNxsub:
Nx ⊆ n0.
We prove the intermediate
claim HNysub:
Ny ⊆ n0.
An exact proof term for the current goal is (HNxprop n0 Hn0omega HNxsub).
An exact proof term for the current goal is (HNyprop n0 Hn0omega HNysub).
We prove the intermediate
claim Hseqfun:
function_on seq ω X.
An exact proof term for the current goal is Hseq.
We prove the intermediate
claim Hseqn0X:
apply_fun seq n0 ∈ X.
An exact proof term for the current goal is (Hseqfun n0 Hn0omega).
rewrite the current goal using HsymX (from left to right).
An exact proof term for the current goal is Hdx0.
We prove the intermediate
claim HaR:
a ∈ R.
An
exact proof term for the current goal is
(Hfun (x,apply_fun seq n0) Hxn0In).
We prove the intermediate
claim HbR:
b ∈ R.
An
exact proof term for the current goal is
(Hfun (apply_fun seq n0,y) Hn0yIn).
We prove the intermediate
claim HaS:
SNo a.
An
exact proof term for the current goal is
(real_SNo a HaR).
We prove the intermediate
claim HbS:
SNo b.
An
exact proof term for the current goal is
(real_SNo b HbR).
We prove the intermediate
claim Haxlt:
a < eps_ (ordsucc N).
We prove the intermediate
claim Hbylt:
b < eps_ (ordsucc N).
rewrite the current goal using Hcom (from right to left) at position 1.
An exact proof term for the current goal is Hstep2raw.
We prove the intermediate
claim HsumS:
SNo (add_SNo a b).
An
exact proof term for the current goal is
(SNo_add_SNo a b HaS HbS).
We prove the intermediate
claim HepsNR:
eps_ N ∈ R.
We prove the intermediate
claim HepsNS:
SNo (eps_ N).
An
exact proof term for the current goal is
(real_SNo (eps_ N) HepsNR).
We prove the intermediate
claim Hsumlt_epsN:
add_SNo a b < eps_ N.
rewrite the current goal using HepsHalf (from right to left).
An exact proof term for the current goal is Hsumlt_eps2.
We prove the intermediate
claim HsumR:
add_SNo a b ∈ R.
An
exact proof term for the current goal is
(real_add_SNo a HaR b HbR).
An
exact proof term for the current goal is
(RltI (add_SNo a b) (apply_fun d (x,y)) HsumR HdxyR Hsumlt_dxy).
An exact proof term for the current goal is (Htri HsumltR).
∎