Let x, y and z be given.
Set s to be the term
add_SNo dxy dyz.
We prove the intermediate
claim HdxyR:
dxy ∈ R.
We prove the intermediate
claim HdyzR:
dyz ∈ R.
We prove the intermediate
claim HdxzR:
dxz ∈ R.
We prove the intermediate
claim HdxyS:
SNo dxy.
An
exact proof term for the current goal is
(real_SNo dxy HdxyR).
We prove the intermediate
claim HdyzS:
SNo dyz.
An
exact proof term for the current goal is
(real_SNo dyz HdyzR).
We prove the intermediate
claim HdxzS:
SNo dxz.
An
exact proof term for the current goal is
(real_SNo dxz HdxzR).
We prove the intermediate
claim H0ledxy:
0 ≤ dxy.
We prove the intermediate
claim H0ledyz:
0 ≤ dyz.
We prove the intermediate
claim H0ledxz:
0 ≤ dxz.
We prove the intermediate
claim Hdx_xyR:
dx_xy ∈ R.
We prove the intermediate
claim Hdy_xyR:
dy_xy ∈ R.
We prove the intermediate
claim Hdx_yzR:
dx_yz ∈ R.
We prove the intermediate
claim Hdy_yzR:
dy_yz ∈ R.
We prove the intermediate
claim Hdx_xzR:
dx_xz ∈ R.
We prove the intermediate
claim Hdy_xzR:
dy_xz ∈ R.
We prove the intermediate
claim Hdx_xyS:
SNo dx_xy.
An
exact proof term for the current goal is
(real_SNo dx_xy Hdx_xyR).
We prove the intermediate
claim Hdy_xyS:
SNo dy_xy.
An
exact proof term for the current goal is
(real_SNo dy_xy Hdy_xyR).
We prove the intermediate
claim Hdx_yzS:
SNo dx_yz.
An
exact proof term for the current goal is
(real_SNo dx_yz Hdx_yzR).
We prove the intermediate
claim Hdy_yzS:
SNo dy_yz.
An
exact proof term for the current goal is
(real_SNo dy_yz Hdy_yzR).
We prove the intermediate
claim Hdx_xzS:
SNo dx_xz.
An
exact proof term for the current goal is
(real_SNo dx_xz Hdx_xzR).
We prove the intermediate
claim Hdy_xzS:
SNo dy_xz.
An
exact proof term for the current goal is
(real_SNo dy_xz Hdy_xzR).
We prove the intermediate
claim Hdx_decomp:
dx_xz = add_SNo dx_xy dx_yz.
We will
prove dx_xz = add_SNo dx_xy dx_yz.
rewrite the current goal using Hdx_xz_def (from left to right).
rewrite the current goal using Hdx_xy_def (from left to right).
rewrite the current goal using Hdx_yz_def (from left to right).
Use reflexivity.
We prove the intermediate
claim Hdy_decomp:
dy_xz = add_SNo dy_xy dy_yz.
We will
prove dy_xz = add_SNo dy_xy dy_yz.
rewrite the current goal using Hdy_xz_def (from left to right).
rewrite the current goal using Hdy_xy_def (from left to right).
rewrite the current goal using Hdy_yz_def (from left to right).
Use reflexivity.
rewrite the current goal using
(distance_R2_sqr x z Hx Hz) (from left to right).
rewrite the current goal using Hdx_decomp (from left to right).
rewrite the current goal using Hdy_decomp (from left to right).
Set dx2_xy to be the term
mul_SNo dx_xy dx_xy.
Set dy2_xy to be the term
mul_SNo dy_xy dy_xy.
Set dx2_yz to be the term
mul_SNo dx_yz dx_yz.
Set dy2_yz to be the term
mul_SNo dy_yz dy_yz.
Set A to be the term
add_SNo dx2_xy dy2_xy.
Set B to be the term
add_SNo dx2_yz dy2_yz.
Set prod to be the term
mul_SNo dxy dyz.
We prove the intermediate
claim Hdx2xyS:
SNo dx2_xy.
An
exact proof term for the current goal is
(SNo_mul_SNo dx_xy dx_xy Hdx_xyS Hdx_xyS).
We prove the intermediate
claim Hdy2xyS:
SNo dy2_xy.
An
exact proof term for the current goal is
(SNo_mul_SNo dy_xy dy_xy Hdy_xyS Hdy_xyS).
We prove the intermediate
claim Hdx2yzS:
SNo dx2_yz.
An
exact proof term for the current goal is
(SNo_mul_SNo dx_yz dx_yz Hdx_yzS Hdx_yzS).
We prove the intermediate
claim Hdy2yzS:
SNo dy2_yz.
An
exact proof term for the current goal is
(SNo_mul_SNo dy_yz dy_yz Hdy_yzS Hdy_yzS).
We prove the intermediate
claim HAS:
SNo A.
An
exact proof term for the current goal is
(SNo_add_SNo dx2_xy dy2_xy Hdx2xyS Hdy2xyS).
We prove the intermediate
claim HBS:
SNo B.
An
exact proof term for the current goal is
(SNo_add_SNo dx2_yz dy2_yz Hdx2yzS Hdy2yzS).
We prove the intermediate
claim HdotS:
SNo dot.
We prove the intermediate
claim HprodS:
SNo prod.
An
exact proof term for the current goal is
(SNo_mul_SNo dxy dyz HdxyS HdyzS).
We prove the intermediate
claim Hdxy2:
mul_SNo dxy dxy = A.
We prove the intermediate
claim HdxyDef:
dxy = distance_R2 x y.
rewrite the current goal using HdxyDef (from left to right).
rewrite the current goal using
(distance_R2_sqr x y Hx Hy) (from left to right).
Use reflexivity.
We prove the intermediate
claim Hdyz2:
mul_SNo dyz dyz = B.
We prove the intermediate
claim HdyzDef:
dyz = distance_R2 y z.
rewrite the current goal using HdyzDef (from left to right).
rewrite the current goal using
(distance_R2_sqr y z Hy Hz) (from left to right).
Use reflexivity.
We prove the intermediate
claim HabsdotS:
SNo (abs_SNo dot).
An
exact proof term for the current goal is
(SNo_abs_SNo dot HdotS).
We prove the intermediate
claim HabsdotNN:
0 ≤ abs_SNo dot.
An
exact proof term for the current goal is
(abs_SNo_nonneg dot HdotS).
We prove the intermediate
claim HprodNN:
0 ≤ prod.
An
exact proof term for the current goal is
(CauchySchwarz2_sq dx_xy dy_xy dx_yz dy_yz Hdx_xyS Hdy_xyS Hdx_yzS Hdy_yzS).
We prove the intermediate
claim HprodDef:
prod = mul_SNo dxy dyz.
rewrite the current goal using HprodDef (from left to right) at position 1.
rewrite the current goal using HprodDef (from left to right) at position 2.
We prove the intermediate
claim Hdxy_dyzS:
SNo (mul_SNo dxy dyz).
An
exact proof term for the current goal is
(SNo_mul_SNo dxy dyz HdxyS HdyzS).
rewrite the current goal using
(mul_SNo_assoc dxy dyz (mul_SNo dxy dyz) HdxyS HdyzS Hdxy_dyzS) (from right to left).
rewrite the current goal using
(mul_SNo_assoc dyz dxy dyz HdyzS HdxyS HdyzS) (from left to right).
rewrite the current goal using
(mul_SNo_com dyz dxy HdyzS HdxyS) (from left to right).
rewrite the current goal using
(mul_SNo_assoc dxy (mul_SNo dxy dyz) dyz HdxyS Hdxy_dyzS HdyzS) (from left to right).
rewrite the current goal using
(mul_SNo_assoc dxy dxy dyz HdxyS HdxyS HdyzS) (from left to right).
rewrite the current goal using Hdxy2 (from left to right).
rewrite the current goal using Hdyz2 (from left to right).
Use reflexivity.
rewrite the current goal using
(abs_SNo_sqr_eq dot HdotS) (from left to right).
rewrite the current goal using Hprod2 (from left to right).
An exact proof term for the current goal is Hcs.
We prove the intermediate
claim HabsdotLe:
abs_SNo dot ≤ prod.
We prove the intermediate
claim HdotLeAbs:
dot ≤ abs_SNo dot.
Apply (xm (0 ≤ dot)) to the current goal.
rewrite the current goal using
(nonneg_abs_SNo dot H0le) (from left to right).
An
exact proof term for the current goal is
(SNoLe_ref dot).
We prove the intermediate
claim Hdotlt0:
dot < 0.
An exact proof term for the current goal is H.
We prove the intermediate
claim H0le0:
0 ≤ dot.
rewrite the current goal using Hdot0 (from left to right).
An
exact proof term for the current goal is
(SNoLe_ref 0).
An
exact proof term for the current goal is
(FalseE (Hn0le H0le0) (dot < 0)).
We prove the intermediate
claim H0ledot:
0 ≤ dot.
An
exact proof term for the current goal is
(SNoLtLe 0 dot H0ltdot).
An
exact proof term for the current goal is
(FalseE (Hn0le H0ledot) (dot < 0)).
We prove the intermediate
claim Hdotle0:
dot ≤ 0.
An
exact proof term for the current goal is
(SNoLtLe dot 0 Hdotlt0).
We prove the intermediate
claim H0lemdot:
0 ≤ minus_SNo dot.
rewrite the current goal using
minus_SNo_0 (from right to left) at position 1.
An exact proof term for the current goal is Hle.
We prove the intermediate
claim HdotLeProd:
dot ≤ prod.
An
exact proof term for the current goal is
(SNoLe_tra dot (abs_SNo dot) prod HdotS HabsdotS HprodS HdotLeAbs HabsdotLe).
We prove the intermediate
claim Hdot2Le:
add_SNo dot dot ≤ add_SNo prod prod.
An
exact proof term for the current goal is
(add_SNo_Le3 dot dot prod prod HdotS HdotS HprodS HprodS HdotLeProd HdotLeProd).
We prove the intermediate
claim HsDef:
s = add_SNo dxy dyz.
rewrite the current goal using HsDef (from left to right).
rewrite the current goal using
(SNo_foil dxy dyz dxy dyz HdxyS HdyzS HdxyS HdyzS) (from left to right).
rewrite the current goal using Hdxy2 (from left to right).
rewrite the current goal using Hdyz2 (from left to right).
rewrite the current goal using
(mul_SNo_com dyz dxy HdyzS HdxyS) (from left to right).
rewrite the current goal using
(add_SNo_assoc prod prod B HprodS HprodS HBS) (from left to right).
Use reflexivity.
We prove the intermediate
claim HdxzDef2:
dxz = distance_R2 x z.
rewrite the current goal using HdxzDef2 (from left to right).
rewrite the current goal using
(distance_R2_sqr x z Hx Hz) (from left to right).
rewrite the current goal using Hdx_decomp (from left to right).
rewrite the current goal using Hdy_decomp (from left to right).
rewrite the current goal using
(SNo_foil dx_xy dx_yz dx_xy dx_yz Hdx_xyS Hdx_yzS Hdx_xyS Hdx_yzS) (from left to right).
rewrite the current goal using
(SNo_foil dy_xy dy_yz dy_xy dy_yz Hdy_xyS Hdy_yzS Hdy_xyS Hdy_yzS) (from left to right).
rewrite the current goal using
(mul_SNo_com dx_yz dx_xy Hdx_yzS Hdx_xyS) (from left to right).
rewrite the current goal using
(mul_SNo_com dy_yz dy_xy Hdy_yzS Hdy_xyS) (from left to right).
We prove the intermediate
claim Hdx2xyDef:
dx2_xy = mul_SNo dx_xy dx_xy.
We prove the intermediate
claim Hdy2xyDef:
dy2_xy = mul_SNo dy_xy dy_xy.
We prove the intermediate
claim Hdx2yzDef:
dx2_yz = mul_SNo dx_yz dx_yz.
We prove the intermediate
claim Hdy2yzDef:
dy2_yz = mul_SNo dy_yz dy_yz.
We prove the intermediate
claim HAdef:
A = add_SNo dx2_xy dy2_xy.
We prove the intermediate
claim HBdef:
B = add_SNo dx2_yz dy2_yz.
rewrite the current goal using Hdx2xyDef (from right to left).
rewrite the current goal using Hdy2xyDef (from right to left).
rewrite the current goal using Hdx2yzDef (from right to left).
rewrite the current goal using Hdy2yzDef (from right to left).
rewrite the current goal using HdotDef (from right to left).
rewrite the current goal using HdotDef (from right to left).
rewrite the current goal using HAdef (from right to left).
rewrite the current goal using HAdef (from right to left).
rewrite the current goal using HBdef (from right to left).
rewrite the current goal using HBdef (from right to left).
We prove the intermediate
claim Hdot2S:
SNo (add_SNo dot dot).
An
exact proof term for the current goal is
(SNo_add_SNo dot dot HdotS HdotS).
rewrite the current goal using
(add_SNo_assoc A B (add_SNo dot dot) HAS HBS Hdot2S) (from right to left).
We prove the intermediate
claim HcrossxS:
SNo (mul_SNo dx_xy dx_yz).
An
exact proof term for the current goal is
(SNo_mul_SNo dx_xy dx_yz Hdx_xyS Hdx_yzS).
We prove the intermediate
claim HcrossyS:
SNo (mul_SNo dy_xy dy_yz).
An
exact proof term for the current goal is
(SNo_mul_SNo dy_xy dy_yz Hdy_xyS Hdy_yzS).
We prove the intermediate
claim Hcrossx_plus_dx2yzS:
SNo (add_SNo (mul_SNo dx_xy dx_yz) dx2_yz).
An
exact proof term for the current goal is
(SNo_add_SNo (mul_SNo dx_xy dx_yz) dx2_yz HcrossxS Hdx2yzS).
We prove the intermediate
claim Hcrossy_plus_dy2yzS:
SNo (add_SNo (mul_SNo dy_xy dy_yz) dy2_yz).
An
exact proof term for the current goal is
(SNo_add_SNo (mul_SNo dy_xy dy_yz) dy2_yz HcrossyS Hdy2yzS).
rewrite the current goal using HAdef (from right to left).
rewrite the current goal using HdotDef (from right to left).
rewrite the current goal using HdotDef (from right to left).
rewrite the current goal using HBdef (from right to left).
rewrite the current goal using
(add_SNo_assoc dot dot B HdotS HdotS HBS) (from left to right).
rewrite the current goal using
(add_SNo_com (add_SNo dot dot) B Hdot2S HBS) (from left to right).
Use reflexivity.
We prove the intermediate
claim HdxzDef:
dxz = distance_R2 x z.
We prove the intermediate
claim HdxyDef:
dxy = distance_R2 x y.
We prove the intermediate
claim HdyzDef:
dyz = distance_R2 y z.
We prove the intermediate
claim HsDef2:
s = add_SNo dxy dyz.
rewrite the current goal using Hdx_decomp (from right to left).
rewrite the current goal using Hdy_decomp (from right to left).
rewrite the current goal using
(distance_R2_sqr x z Hx Hz) (from right to left).
rewrite the current goal using HdxzDef (from right to left).
rewrite the current goal using HdxyDef (from right to left).
rewrite the current goal using HdyzDef (from right to left).
rewrite the current goal using HsDef2 (from right to left).
rewrite the current goal using HlhsExp (from left to right).
rewrite the current goal using HrhsExp (from left to right).
An exact proof term for the current goal is HmainLe.
∎