Let X, d, x, y and A be given.
We prove the intermediate
claim HdistxR:
distx ∈ R.
We prove the intermediate
claim HdistyR:
disty ∈ R.
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 HqR:
q ∈ R.
Apply (RleI disty q HdistyR HqR) to the current goal.
We prove the intermediate
claim HdiffR:
diff ∈ R.
We prove the intermediate
claim HdiffPos:
Rlt 0 diff.
We prove the intermediate
claim HexN0:
∃N0 ∈ ω, eps_ N0 < diff.
An
exact proof term for the current goal is
(exists_eps_lt_pos diff HdiffR HdiffPos).
Apply HexN0 to the current goal.
Let N0 be given.
Assume HN0pair.
We prove the intermediate
claim HN0omega:
N0 ∈ ω.
An
exact proof term for the current goal is
(andEL (N0 ∈ ω) (eps_ N0 < diff) HN0pair).
We prove the intermediate
claim Hepslt:
eps_ N0 < diff.
An
exact proof term for the current goal is
(andER (N0 ∈ ω) (eps_ N0 < diff) HN0pair).
Set eps0 to be the term
eps_ N0.
We prove the intermediate
claim Heps0R:
eps0 ∈ R.
We prove the intermediate
claim Heps0posS:
0 < eps0.
An
exact proof term for the current goal is
(SNo_eps_pos N0 HN0omega).
We prove the intermediate
claim Heps0pos:
Rlt 0 eps0.
An
exact proof term for the current goal is
(RltI 0 eps0 real_0 Heps0R Heps0posS).
We prove the intermediate
claim Heps0ltDiffR:
Rlt eps0 diff.
An
exact proof term for the current goal is
(RltI eps0 diff Heps0R HdiffR Hepslt).
We prove the intermediate
claim Heps0ltDiffS:
eps0 < diff.
An
exact proof term for the current goal is
(RltE_lt eps0 diff Heps0ltDiffR).
We prove the intermediate
claim HqS:
SNo q.
An
exact proof term for the current goal is
(real_SNo q HqR).
We prove the intermediate
claim Heps0S:
SNo eps0.
An
exact proof term for the current goal is
(real_SNo eps0 Heps0R).
We prove the intermediate
claim HdiffS:
SNo diff.
An
exact proof term for the current goal is
(real_SNo diff HdiffR).
An
exact proof term for the current goal is
(add_SNo_Lt2 q eps0 diff HqS Heps0S HdiffS Heps0ltDiffS).
We prove the intermediate
claim HqdiffEq:
add_SNo q diff = disty.
We prove the intermediate
claim HdistyS:
SNo disty.
An
exact proof term for the current goal is
(real_SNo disty HdistyR).
We prove the intermediate
claim HqSNo:
SNo distx.
An
exact proof term for the current goal is
(real_SNo distx HdistxR).
We prove the intermediate
claim HdxyS:
SNo (apply_fun d (x,y)).
rewrite the current goal using HdiffDef (from left to right).
rewrite the current goal using
(add_SNo_com q disty HqS HdistyS) (from left to right).
rewrite the current goal using
(add_SNo_0R disty HdistyS) (from left to right).
Use reflexivity.
We prove the intermediate
claim HqepsRlt:
Rlt (add_SNo q eps0) disty.
rewrite the current goal using HqdiffEq (from right to left).
Apply Hexa to the current goal.
Let a be given.
Assume Hapack.
We prove the intermediate
claim HaCore:
a ∈ A ∧ a ∈ X.
We prove the intermediate
claim HaA:
a ∈ A.
An
exact proof term for the current goal is
(andEL (a ∈ A) (a ∈ X) HaCore).
We prove the intermediate
claim HaX:
a ∈ X.
An
exact proof term for the current goal is
(andER (a ∈ A) (a ∈ X) HaCore).
We prove the intermediate
claim HdxaIn:
(x,a) ∈ setprod X X.
We prove the intermediate
claim HdyaIn:
(y,a) ∈ setprod X X.
We prove the intermediate
claim HdxaR:
apply_fun d (x,a) ∈ R.
An exact proof term for the current goal is (Hfun (x,a) HdxaIn).
We prove the intermediate
claim HdyaR:
apply_fun d (y,a) ∈ R.
An exact proof term for the current goal is (Hfun (y,a) HdyaIn).
We prove the intermediate
claim HdxyR2:
apply_fun d (y,x) ∈ R.
An
exact proof term for the current goal is
((metric_on_triangle X d y x a Hm HyX HxX HaX) Hbad).
rewrite the current goal using HdxySym (from right to left).
An exact proof term for the current goal is HtriLe.
We prove the intermediate
claim HdxyS:
SNo (apply_fun d (x,y)).
We prove the intermediate
claim HdxaS:
SNo (apply_fun d (x,a)).
We prove the intermediate
claim HdistxS:
SNo distx.
An
exact proof term for the current goal is
(real_SNo distx HdistxR).
We prove the intermediate
claim Heps0S2:
SNo eps0.
An
exact proof term for the current goal is
(real_SNo eps0 Heps0R).
We prove the intermediate
claim Hm1S:
SNo (add_SNo distx eps0).
rewrite the current goal using HqDef (from left to right).
rewrite the current goal using
(add_SNo_assoc (apply_fun d (x,y)) distx eps0 HdxyS HdistxS Heps0S2) (from left to right).
rewrite the current goal using
(add_SNo_com (apply_fun d (x,y)) distx HdxyS HdistxS) (from left to right).
Use reflexivity.
rewrite the current goal using HrhsEq (from right to left).
We prove the intermediate
claim HdistyLe:
Rle disty (apply_fun d (y,a)).
We prove the intermediate
claim HdistyLt:
Rlt disty (add_SNo q eps0).
An
exact proof term for the current goal is
((not_Rlt_sym (add_SNo q eps0) disty HqepsRlt) HdistyLt).
∎