s v/\
(!i j.
s i j) /\
(!i. (
[REPEAT RESA_TAC
THEN ABBREV_TAC`V=
IMAGE (v:num->real^3) (:num)`
THEN ABBREV_TAC`E =
IMAGE (\i. {(v:num->real^3) i, v (SUC i)}) (:num)`
THEN ABBREV_TAC`
FF =
IMAGE (\i. ((v:num->real^3) i, v (SUC i))) (:num)`
THEN ASM_TAC
THEN REPEAT RESA_TAC
THEN ASSUME_TAC(ARITH_RULE`3<4/\ 1<4/\ ~(4=0)/\ 4-1=3/\ SUC (p + 3)= 1*4+p/\ SUC p= p+1`)
THEN ASM_SIMP_TAC[]
THEN MRESAL_TAC
GSXRFWM[`s`;`v`][
IN;
scs_generic]
THEN MRESA_TAC
MMS_IMP_BBS[`s`;`v`]
THEN MRESA_TAC Imjxphr.BBS_IMP_CONVEX_LOCAL_FAN[`4`;`s`;`v`]
THEN MP_TAC Local_lemmas.CVLF_LF_F
THEN RESA_TAC
THEN MP_TAC Tfitskc.SCS_DIAG_A_LE_DIST
THEN RESA_TAC
THEN MP_TAC(SET_RULE`(~scs_is_str s v p /\ ~scs_is_str s v (p+1))\/
scs_is_str s v p \/
scs_is_str s v (p+1)`)
THEN RESA_TAC;
MP_TAC
YEBWJNG
THEN RESA_TAC
THEN MATCH_DICH_TAC 0
THEN EXISTS_TAC`s:scs_v39`
THEN ASM_REWRITE_TAC[
IN];
MRESAL_TAC
NOT_STR_IN_CASES_4[`p`;`s`;`v`][
IN]
THEN DICH_TAC 3
THEN ASM_REWRITE_TAC[
scs_is_str;]
THEN STRIP_TAC
THEN DICH_TAC(21-13)
THEN ASM_REWRITE_TAC[
BBs_v39;
LET_DEF;
LET_END_DEF;]
THEN STRIP_TAC
THEN MRESA_TAC
MMS_IMP_BBS[`s`;`v`]
THEN THAYTHE_TAC 1[`p+3`;`p`]
;
MRESAL_TAC
MMS_IMP_BBPRIME[`s`;`v`][
LET_DEF;
LET_END_DEF;
BBprime_v39]
THEN MRESAL_TAC
JKQEWGV2[`s`;`v`][
LET_DEF;
LET_END_DEF;
scs_generic]
THEN MP_TAC Wrgcvdr_cizmrrh.CIZMRRH
THEN RESA_TAC
THEN POP_ASSUM MP_TAC
THEN REWRITE_TAC[
NOT_EXISTS_THM]
THEN STRIP_TAC
THEN SUBGOAL_THEN`(!V' E' v1. V' = V /\ E' = E ==> ~lunar (v1,(v:num->real^3) (p)) V' E')` ASSUME_TAC;
REPEAT RESA_TAC
;
MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHES_TAC 0[`(p+3)+1`;`p`][ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN DICH_TAC 0
THEN REWRITE_TAC[ARITH_RULE`1 * 4 + p=(p+3)+1`]
THEN STRIP_TAC
THEN MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHES_TAC 0[`(p+3)+2`;`p+1`][ARITH_RULE`(p+3)+2=1*4+p+1`;
MOD_MULT_ADD]
THEN DICH_TAC 0
THEN REWRITE_TAC[ARITH_RULE`1 * 4 + p+1=(p+3)+2`]
THEN STRIP_TAC
THEN MRESA_TAC Local_lemmas1.AZIM_COND_FOR_COPLANAR[`
vec 0:real^3`;`v p`;`v (p+1)`;`(v:num->real^3) (p+3)`]
THEN POP_ASSUM MP_TAC
THEN ONCE_REWRITE_TAC[SET_RULE`{A,B,C,D}={A,D,B,C}`]
THEN STRIP_TAC
THEN MRESA_TAC
WL_IN_V[`p`;`v:num->real^3`]
THEN MRESA_TAC
WL_IN_V[`p+1`;`v:num->real^3`]
THEN MRESA_TAC
WL_IN_V[`p+2`;`v:num->real^3`]
THEN MRESA_TAC
WL_IN_V[`p+3`;`v:num->real^3`]
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v (p+1)`;`v (p+3)`;`V`]
THEN SUBGOAL_THEN`(!j. ~(v j = v (p + 3)) ==> ~collinear {
vec 0, (v:num->real^3) (p + 3), v j})`ASSUME_TAC
;
REPEAT RESA_TAC
THEN DICH_TAC 0
THEN REWRITE_TAC[]
THEN MATCH_DICH_TAC 1
THEN ASM_SIMP_TAC[]
THEN MRESA_TAC
WL_IN_V[`j`;`v:num->real^3`]
THEN SET_TAC[];
MRESAL_TAC Iunbuig.coplanar_aff_gt_simple[`s`;`4`;`v`;`p+3`][ARITH_RULE`0+2=2`]
THEN DICH_TAC 0
THEN ONCE_REWRITE_TAC[SET_RULE`{B,C}={C,B}`]
THEN STRIP_TAC
THEN MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHES_TAC 3[`v (p+1)`;`v(p+3)`][SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(1 MOD 4 = 3 MOD 4)`]
THEN MP_TAC
CONDTION_A_LT_B
THEN RESA_TAC
THEN MP_TAC(REAL_ARITH`
scs_a_v39 s (p + 3) p <=
dist (v (p + 3),v p)
==>
scs_a_v39 s (p + 3) p =
dist (v (p + 3),v p)\/
scs_a_v39 s (p + 3) p <
dist (v (p + 3),(v:num->real^3) p)`)
THEN RESA_TAC
;
SUBGOAL_THEN`
dist (v (p + 3),(v:num->real^3) p) <
scs_b_v39 s (p + 3) p`
ASSUME_TAC
;
THAYTHE_TAC 1[`p+3`]
THEN DICH_TAC 0
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+3)`;`((p + 3) +1)`;`s`;`p+3`;`((p + 3)+1) MOD 4`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+3)`;`p MOD 4`;`s`;`p+3`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+3)`;`(1 * 4 + p)`;`s`;`p+3`;`(1 * 4 + p) MOD 4`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+3)`;`p MOD 4`;`s`;`p+3`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
;
MRESAS_TAC
NUXCOEAv2[`s`;`4`;`v`;`p`;`p+3`][
MOD_MULT_ADD;
BASIC_IMP_NOT_J]
;
MP_TAC(SET_RULE`~(&2=
norm ((v:num->real^3) p))\/
norm (v p)= &2`)
THEN RESA_TAC
;
MRESAS_TAC
IMJXPHRv2[`s`;`4`;`v`;`p`;][
MOD_MULT_ADD;
BASIC_IMP_NOT_J]
;
MP_TAC(SET_RULE`(
scs_a_v39 s (p+1) (p+2) = &2 )\/ ~((
scs_a_v39 s (p+1) (p+2) = &2 ))`)
THEN RESA_TAC;
SUBGOAL_THEN`
scs_a_v39 s (p + 3) p <
scs_b_v39 s (p + 3) p`
ASSUME_TAC
;
THAYTHE_TAC (45-42)[`p+3`]
THEN DICH_TAC 0
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+3)`;`((p + 3) +1)`;`s`;`p+3`;`((p + 3)+1) MOD 4`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+3)`;`p MOD 4`;`s`;`p+3`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+3)`;`(1 * 4 + p)`;`s`;`p+3`;`(1 * 4 + p) MOD 4`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+3)`;`p MOD 4`;`s`;`p+3`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
;
MP_TAC
YEBWJNG
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p+1`][
IN;ARITH_RULE`(p+1)+1=p+2`]
THEN ASSUME_TAC(ARITH_RULE`(p+1)+1=p+2/\ (p+2)+1=p+3`)
THEN MRESA_TAC
A_EQ2_IMP_B[`s`;`p+1`]
THEN THAYTHE_TAC (49-42)[`p+2`]
THEN MP_TAC Cqaoqlr.CQAOQLR
THEN RESA_TAC
THEN THAYTHES_TAC 0[`s`;`v`;`p`][
scs_generic;
IN;
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN MATCH_DICH_TAC 0
THEN REWRITE_TAC[h0]
THEN REAL_ARITH_TAC;
ASSUME_TAC(ARITH_RULE`(p+1)+1=p+2/\ (p+2)+1=p+3/\ (p+2)+3=1*4+p+1/\ (p+1)+3=1*4+p/\ (p+3)+1=1*4+p/\ (p+3)+3=1*4+p+2/\ (p+3)+2=1*4+p+1`)
THEN MRESA_TAC
A_NOT_EQ2_IMP_B[`s`;`p+1`]
THEN MRESAS_TAC
STR_MOD_EQ[`4`;`s`;`v`;`1*4+p+1`][
IN;
MOD_MULT_ADD]
THEN MRESAS_TAC
STR_MOD_EQ[`4`;`s`;`v`;`p+1`][
IN;
MOD_MULT_ADD;
MOD_REFL]
THEN THAYTHES_TAC (50-40)[`1 * 4 + p + 1`;`p+1`][
MOD_MULT_ADD]
THEN MP_TAC
WKZZEEH
THEN RESA_TAC
THEN THAYTHE_TAC 0[`s`;`v`;`p+2`]
THEN MRESA_TAC
PRO_ADD_NOT_IN_SCS_M[`p+1`;`4`;`s`]
THEN MP_TAC(SET_RULE`
scs_a_v39 s (p + 3) p = &2 \/ ~(
scs_a_v39 s (p + 3) p = &2 )`)
THEN RESA_TAC;
(**********CASES a 3 0 =2********************)
MP_TAC
TUAPYYU
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p+1`][
IN];
MP_TAC Jotswix.LEMMA_PWE1
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p`][
scs_generic;
IN;REAL_ARITH`a<=a`;
scs_is_str]
THEN MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHES_TAC 0[`1*4+p`;`p`][
MOD_MULT_ADD]
THEN MP_TAC Cuxvzoz.CJBDXXN
THEN RESA_TAC
THEN THAYTHE_TAC 0[`s`;`
FF`;`4`;`p+1`;`v`]
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN MATCH_DICH_TAC 0
THEN ASM_SIMP_TAC[]
THEN REWRITE_TAC[GSYM
ADD1]
THEN ASM_REWRITE_TAC[
scs_generic]
THEN ASM_SIMP_TAC[
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN ASM_REWRITE_TAC[
interior_angle1;GSYM
ivs_rho_node1;]
THEN MRESA_TAC
BB_RHO_NODE_IVS[`V`;`E`;`s`;`
FF`;`v (p+1)`;`v`;`(p+1)`;`4`]
THEN DICH_TAC(58-17)
THEN ASM_REWRITE_TAC[
scs_is_str]
THEN RESA_TAC
THEN MRESAL_TAC Local_lemmas.IN_V_IMP_AZIM_LESS_PI[`E`;`V`;`
FF`;`v (p+1)`][]
THEN THAYTHE_TAC 0[`v (p)`]
THEN MP_TAC(REAL_ARITH`
azim (
vec 0) (v (p + 1)) (v (p + 2)) (v p) <=
pi
/\ ~(
azim (
vec 0) (v (p + 1)) (v (p + 2)) (v p) =
pi)
==>
azim (
vec 0) (v (p + 1)) (v (p + 2)) ((v:num->real^3) p) <
pi`)
THEN RESA_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN ASM_REWRITE_TAC[h0;cstab;REAL_ARITH`&2 <= &2 * #1.26 /\
&2 * #1.26 <= #3.01`]
THEN REPEAT STRIP_TAC;
THAYTHES_TAC(60-5)[`p`;`p+2`][
SCS_DIAG_4_ADD0]
THEN DICH_TAC 1
THEN REWRITE_TAC[cstab]
THEN REAL_ARITH_TAC;
MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v (p+1)`;`v (p+2)`;`V`]
THEN THAYTHES_TAC 0[`v (p+1)`;`v (p+2)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(1 MOD 4 = 2 MOD 4)`]
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v (p+1)`;`v (p+2)`;`V`]
THEN THAYTHES_TAC 0[`v (p+1)`;`v (p+0)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(1 MOD 4 = 0 MOD 4)`]
THEN DICH_TAC 0
THEN ASM_REWRITE_TAC[ARITH_RULE`a+0=a`]
THEN RESA_TAC
THEN MRESA_TAC
AZIM_DIHV_SAME_STRONG[`
vec 0:real^3`;`v (p+1)`;`v(p+2)`;`v p`]
;
MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+1)`;`(1 * 4 + p)`;`s`;`p+1`;`(1 * 4 + p) MOD 4`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+1)`;`p MOD 4`;`s`;`p+1`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN ASM_TAC
THEN REWRITE_TAC[
BBs_v39;
LET_DEF;
LET_END_DEF;
is_scs_v39]
THEN REPEAT RESA_TAC
;
MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+1)`;`(1 * 4 + p)`;`s`;`p+1`;`(1 * 4 + p) MOD 4`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+1)`;`p MOD 4`;`s`;`p+1`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN ASM_TAC
THEN REWRITE_TAC[
BBs_v39;
LET_DEF;
LET_END_DEF;
is_scs_v39]
THEN REPEAT RESA_TAC
THEN ASM_SIMP_TAC[
A_EQ2_IMP_B;h0]
THEN REAL_ARITH_TAC;
POP_ASSUM MP_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN STRIP_TAC
THEN DICH_TAC 3
THEN RESA_TAC
THEN MP_TAC
TUAPYYU_IMP_CASES
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p+2`][
IN];
(************CASES 2 3= 2**********)
MP_TAC Jotswix.LEMMA_PWE2
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p`][
scs_generic;
IN;REAL_ARITH`a<=a/\ &2 <= &2 * #1.26`;
scs_is_str;h0]
THEN MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHES_TAC 0[`1*4+p`;`p`][
MOD_MULT_ADD]
THEN MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHES_TAC 0[`1*4+p+2`;`p+2`][
MOD_MULT_ADD]
THEN MP_TAC Cuxvzoz.CUXVZOZ
THEN RESA_TAC
THEN THAYTHE_TAC 0[`s`;`
FF`;`4`;`p+3`;`v`]
THEN DICH_TAC 0
THEN ASM_SIMP_TAC[]
THEN REWRITE_TAC[GSYM
ADD1]
THEN ASM_REWRITE_TAC[
scs_generic]
THEN ASM_SIMP_TAC[
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN ASM_REWRITE_TAC[
interior_angle1;GSYM
ivs_rho_node1;]
THEN MRESA_TAC
BB_RHO_NODE_IVS[`V`;`E`;`s`;`
FF`;`v (p+3)`;`v`;`(p+3)`;`4`]
THEN DICH_TAC(60-19)
THEN ASM_REWRITE_TAC[
scs_is_str]
THEN RESA_TAC
THEN MRESAL_TAC Local_lemmas.IN_V_IMP_AZIM_LESS_PI[`E`;`V`;`
FF`;`v (p+3)`][]
THEN THAYTHE_TAC 0[`v (p+2)`]
THEN MP_TAC(REAL_ARITH`
azim (
vec 0) (v (p + 3)) (v p) (v (p + 2)) <=
pi
/\ ~(
azim (
vec 0) (v (p + 3)) (v p) (v (p + 2)) =
pi)
==>
azim (
vec 0) (v (p + 3)) ((v:num->real^3) p) (v (p + 2)) <
pi`)
THEN RESA_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN SUBGOAL_THEN`&3 <=
dist ((v:num->real^3) p,v (p + 2))`ASSUME_TAC
;
THAYTHES_TAC(62-5)[`p`;`p+2`][
SCS_DIAG_4_ADD0]
THEN DICH_TAC 1
THEN REWRITE_TAC[cstab]
THEN REAL_ARITH_TAC;
SUBGOAL_THEN`(
pi / &2 <
azim (
vec 0) (v (p + 3)) (v p) (v (p + 2)) \/
azim (
vec 0) (v p) (
rho_node1 FF (v p)) (
ivs_rho_node1 FF ((v:num->real^3) p)) <
pi)`ASSUME_TAC
;
MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHEL_ASM_TAC(64-37)[`p+0`][]
THEN THAYTHES_TAC(0)[`p+2`][Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(3 MOD 4 = 2 MOD 4)`]
THEN DICH_TAC 1
THEN ASM_SIMP_TAC[Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(3 MOD 4 = 0 MOD 4)`]
THEN ASM_REWRITE_TAC[ARITH_RULE`a+0=a`]
THEN RESA_TAC
THEN MRESA_TAC
AZIM_DIHV_SAME_STRONG[`
vec 0:real^3`;`v (p+3)`;`v(p)`;`v (p+2)`]
;
SUBGOAL_THEN`
scs_a_v39 s (p + 3) (1 * 4 + p) = &2`ASSUME_TAC
;
MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+3)`;`(1 * 4 + p)`;`s`;`p+3`;`(1 * 4 + p) MOD 4`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+3)`;`p MOD 4`;`s`;`p+3`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN ASM_TAC
THEN REWRITE_TAC[
BBs_v39;
LET_DEF;
LET_END_DEF;
is_scs_v39]
THEN REPEAT RESA_TAC
;
SUBGOAL_THEN`
scs_b_v39 s (p + 3) (1 * 4 + p) <= &2 * h0`ASSUME_TAC
;
MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+3)`;`(1 * 4 + p)`;`s`;`p+3`;`(1 * 4 + p) MOD 4`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+3)`;`p MOD 4`;`s`;`p+3`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN ASM_TAC
THEN REWRITE_TAC[
BBs_v39;
LET_DEF;
LET_END_DEF;
is_scs_v39]
THEN REPEAT RESA_TAC
THEN ASM_SIMP_TAC[
A_EQ2_IMP_B;]
THEN MRESA_TAC
A_EQ2_IMP_B[`s`;`p+3`]
THEN REAL_ARITH_TAC
;
ASM_REWRITE_TAC[cstab;REAL_ARITH`&2 <= #3.01`]
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN STRIP_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN MP_TAC Cqaoqlr.CQAOQLR
THEN RESA_TAC
THEN THAYTHES_TAC 0[`s`;`v`;`p+3`][
scs_generic;
IN;
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN DICH_TAC 0
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(1 * 4 + p)`;`(1 * 4 + p+1)`;`s`;`p`;`p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(1 * 4 + p)`;`(1 * 4 + p+1)`;`s`;`p`;`p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD;
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(1 * 4 + p+2)`;`(p+3)`;`s`;`p+2`;`p+3`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(1 * 4 + p+2)`;`(p+3)`;`s`;`p+2`;`p+3`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(1 * 4 + p+1)`;`(1 * 4 + p+2)`;`s`;`p+1`;`p+2`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(1 * 4 + p+1)`;`(1 * 4 + p+2)`;`s`;`p+1`;`p+2`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD;
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN THAYTHEL_ASM_TAC(73-40)[`p+2`][]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`( p+3)`;`(1 * 4 + p)`;`s`;`p+3`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD;
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN THAYTHEL_ASM_TAC(1)[`p+3`][h0;cstab]
THEN REAL_ARITH_TAC;
(************CASES 2 3= 2* H0**********)
MP_TAC Jotswix.LEMMA_PWE2
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p`][
scs_generic;
IN;REAL_ARITH`a<=a/\ &2 <= &2 * #1.26`;
scs_is_str;h0]
THEN MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHES_TAC 0[`1*4+p`;`p`][
MOD_MULT_ADD]
THEN MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHES_TAC 0[`1*4+p+2`;`p+2`][
MOD_MULT_ADD]
THEN MP_TAC Cuxvzoz.CUXVZOZ
THEN RESA_TAC
THEN THAYTHE_TAC 0[`s`;`
FF`;`4`;`p+3`;`v`]
THEN DICH_TAC 0
THEN ASM_SIMP_TAC[]
THEN REWRITE_TAC[GSYM
ADD1]
THEN ASM_REWRITE_TAC[
scs_generic]
THEN ASM_SIMP_TAC[
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN ASM_REWRITE_TAC[
interior_angle1;GSYM
ivs_rho_node1;]
THEN MRESA_TAC
BB_RHO_NODE_IVS[`V`;`E`;`s`;`
FF`;`v (p+3)`;`v`;`(p+3)`;`4`]
THEN DICH_TAC(60-19)
THEN ASM_REWRITE_TAC[
scs_is_str]
THEN RESA_TAC
THEN MRESAL_TAC Local_lemmas.IN_V_IMP_AZIM_LESS_PI[`E`;`V`;`
FF`;`v (p+3)`][]
THEN THAYTHE_TAC 0[`v (p+2)`]
THEN MP_TAC(REAL_ARITH`
azim (
vec 0) (v (p + 3)) (v p) (v (p + 2)) <=
pi
/\ ~(
azim (
vec 0) (v (p + 3)) (v p) (v (p + 2)) =
pi)
==>
azim (
vec 0) (v (p + 3)) ((v:num->real^3) p) (v (p + 2)) <
pi`)
THEN RESA_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN SUBGOAL_THEN`&3 <=
dist ((v:num->real^3) p,v (p + 2))`ASSUME_TAC
;
THAYTHES_TAC(62-5)[`p`;`p+2`][
SCS_DIAG_4_ADD0]
THEN DICH_TAC 1
THEN REWRITE_TAC[cstab]
THEN REAL_ARITH_TAC;
SUBGOAL_THEN`(
pi / &2 <
azim (
vec 0) (v (p + 3)) (v p) (v (p + 2)) \/
azim (
vec 0) (v p) (
rho_node1 FF (v p)) (
ivs_rho_node1 FF ((v:num->real^3) p)) <
pi)`ASSUME_TAC
;
MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHEL_ASM_TAC(64-37)[`p+0`][]
THEN THAYTHES_TAC(0)[`p+2`][Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(3 MOD 4 = 2 MOD 4)`]
THEN DICH_TAC 1
THEN ASM_SIMP_TAC[Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(3 MOD 4 = 0 MOD 4)`]
THEN ASM_REWRITE_TAC[ARITH_RULE`a+0=a`]
THEN RESA_TAC
THEN MRESA_TAC
AZIM_DIHV_SAME_STRONG[`
vec 0:real^3`;`v (p+3)`;`v(p)`;`v (p+2)`]
;
SUBGOAL_THEN`
scs_a_v39 s (p + 3) (1 * 4 + p) = &2`ASSUME_TAC
;
MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+3)`;`(1 * 4 + p)`;`s`;`p+3`;`(1 * 4 + p) MOD 4`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+3)`;`p MOD 4`;`s`;`p+3`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN ASM_TAC
THEN REWRITE_TAC[
BBs_v39;
LET_DEF;
LET_END_DEF;
is_scs_v39]
THEN REPEAT RESA_TAC
;
SUBGOAL_THEN`
scs_b_v39 s (p + 3) (1 * 4 + p) <= &2 * h0`ASSUME_TAC
;
MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+3)`;`(1 * 4 + p)`;`s`;`p+3`;`(1 * 4 + p) MOD 4`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+3)`;`p MOD 4`;`s`;`p+3`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN ASM_TAC
THEN REWRITE_TAC[
BBs_v39;
LET_DEF;
LET_END_DEF;
is_scs_v39]
THEN REPEAT RESA_TAC
THEN ASM_SIMP_TAC[
A_EQ2_IMP_B;]
THEN MRESA_TAC
A_EQ2_IMP_B[`s`;`p+3`]
THEN REAL_ARITH_TAC
;
ASM_REWRITE_TAC[cstab;REAL_ARITH`&2 <= &2 * #1.26 /\ &2 * #1.26 <= #3.01`;h0]
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN STRIP_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN MP_TAC Cqaoqlr.CQAOQLR
THEN RESA_TAC
THEN THAYTHES_TAC 0[`s`;`v`;`p+3`][
scs_generic;
IN;
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN DICH_TAC 0
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(1 * 4 + p)`;`(1 * 4 + p+1)`;`s`;`p`;`p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(1 * 4 + p)`;`(1 * 4 + p+1)`;`s`;`p`;`p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD;
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(1 * 4 + p+2)`;`(p+3)`;`s`;`p+2`;`p+3`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(1 * 4 + p+2)`;`(p+3)`;`s`;`p+2`;`p+3`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(1 * 4 + p+1)`;`(1 * 4 + p+2)`;`s`;`p+1`;`p+2`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(1 * 4 + p+1)`;`(1 * 4 + p+2)`;`s`;`p+1`;`p+2`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD;
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN THAYTHEL_ASM_TAC(73-40)[`p+2`][]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`( p+3)`;`(1 * 4 + p)`;`s`;`p+3`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD;
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN THAYTHEL_ASM_TAC(1)[`p+3`][h0;cstab]
THEN REAL_ARITH_TAC;
(*************CASES a 3 0 NOT = 2************)
MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+3)`;`(1 * 4 + p)`;`s`;`p+3`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+3)`;`(1 * 4 + p)`;`s`;`p+3`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESA_TAC
A_NOT_EQ2_IMP_B [`s`;`p+3`]
THEN MRESA_TAC
PRO_ADD_NOT_IN_SCS_M[`p+3`;`4`;`s`]
THEN MRESAL_TAC
B_LE_2h0_2_SCS_M_4_1[`s`;`p`][SET_RULE`{a,b}
SUBSET A<=> a
IN A/\ b
IN A`]
THEN MRESA_TAC
B_LE_2h0_IMP_B[`s`;`p+2`]
THEN MP_TAC
YEBWJNG
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p+2`][
IN];
MP_TAC
TUAPYYU
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p+1`][
IN];
MP_TAC Jotswix.LEMMA_PWE3
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p`][
scs_generic;
IN;REAL_ARITH`a<=a`;
scs_is_str]
THEN MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHES_TAC 0[`1*4+p`;`p`][
MOD_MULT_ADD]
THEN MP_TAC Cuxvzoz.CJBDXXN
THEN RESA_TAC
THEN THAYTHE_TAC 0[`s`;`
FF`;`4`;`p+1`;`v`]
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN MATCH_DICH_TAC 0
THEN ASM_SIMP_TAC[]
THEN REWRITE_TAC[GSYM
ADD1]
THEN ASM_REWRITE_TAC[
scs_generic]
THEN ASM_SIMP_TAC[
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN ASM_REWRITE_TAC[
interior_angle1;GSYM
ivs_rho_node1;]
THEN MRESA_TAC
BB_RHO_NODE_IVS[`V`;`E`;`s`;`
FF`;`v (p+1)`;`v`;`(p+1)`;`4`]
;
DICH_TAC(67-17)
THEN ASM_REWRITE_TAC[
scs_is_str]
THEN RESA_TAC
THEN MRESAL_TAC Local_lemmas.IN_V_IMP_AZIM_LESS_PI[`E`;`V`;`
FF`;`v (p+1)`][]
THEN THAYTHE_TAC 0[`v (p)`]
THEN MP_TAC(REAL_ARITH`
azim (
vec 0) (v (p + 1)) (v (p + 2)) (v p) <=
pi
/\ ~(
azim (
vec 0) (v (p + 1)) (v (p + 2)) (v p) =
pi)
==>
azim (
vec 0) (v (p + 1)) (v (p + 2)) ((v:num->real^3) p) <
pi`)
THEN RESA_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN ASM_REWRITE_TAC[h0;cstab;REAL_ARITH`&2 <= &2 * #1.26 /\
&2 * #1.26 <= #3.01`]
THEN REPEAT STRIP_TAC;
THAYTHES_TAC(69-5)[`p`;`p+2`][
SCS_DIAG_4_ADD0]
THEN DICH_TAC 1
THEN REWRITE_TAC[cstab]
THEN REAL_ARITH_TAC;
MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v (p+1)`;`v (p+2)`;`V`]
THEN THAYTHES_TAC 0[`v (p+1)`;`v (p+2)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(1 MOD 4 = 2 MOD 4)`]
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v (p+1)`;`v (p+2)`;`V`]
THEN THAYTHES_TAC 0[`v (p+1)`;`v (p+0)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(1 MOD 4 = 0 MOD 4)`]
THEN DICH_TAC 0
THEN ASM_REWRITE_TAC[ARITH_RULE`a+0=a`]
THEN RESA_TAC
THEN MRESA_TAC
AZIM_DIHV_SAME_STRONG[`
vec 0:real^3`;`v (p+1)`;`v(p+2)`;`v p`]
THEN ASM_REWRITE_TAC[
DIHV_SYM];
MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+1)`;`(1 * 4 + p)`;`s`;`p+1`;`(1 * 4 + p) MOD 4`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+1)`;`p MOD 4`;`s`;`p+1`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN ASM_TAC
THEN REWRITE_TAC[
BBs_v39;
LET_DEF;
LET_END_DEF;
is_scs_v39]
THEN REPEAT RESA_TAC
;
MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+1)`;`(1 * 4 + p)`;`s`;`p+1`;`(1 * 4 + p) MOD 4`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+1)`;`p MOD 4`;`s`;`p+1`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN ASM_TAC
THEN REWRITE_TAC[
BBs_v39;
LET_DEF;
LET_END_DEF;
is_scs_v39]
THEN REPEAT RESA_TAC
THEN ASM_SIMP_TAC[
A_EQ2_IMP_B;h0]
THEN REAL_ARITH_TAC;
(*************CASES 1 2= cstab **************)
MP_TAC Jotswix.LEMMA_PWE3
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p`][
scs_generic;
IN;REAL_ARITH`a<=a/\ &2 * #1.26 <= #3.01`;
scs_is_str;h0;cstab]
THEN MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHES_TAC 0[`1*4+p`;`p`][
MOD_MULT_ADD]
THEN MP_TAC Cuxvzoz.CJBDXXN
THEN RESA_TAC
THEN THAYTHE_TAC 0[`s`;`
FF`;`4`;`p+1`;`v`]
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN MATCH_DICH_TAC 0
THEN ASM_SIMP_TAC[]
THEN REWRITE_TAC[GSYM
ADD1]
THEN ASM_REWRITE_TAC[
scs_generic]
THEN ASM_SIMP_TAC[
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN ASM_REWRITE_TAC[
interior_angle1;GSYM
ivs_rho_node1;]
THEN MRESA_TAC
BB_RHO_NODE_IVS[`V`;`E`;`s`;`
FF`;`v (p+1)`;`v`;`(p+1)`;`4`]
;
DICH_TAC(67-17)
THEN ASM_REWRITE_TAC[
scs_is_str]
THEN RESA_TAC
THEN MRESAL_TAC Local_lemmas.IN_V_IMP_AZIM_LESS_PI[`E`;`V`;`
FF`;`v (p+1)`][]
THEN THAYTHE_TAC 0[`v (p)`]
THEN MP_TAC(REAL_ARITH`
azim (
vec 0) (v (p + 1)) (v (p + 2)) (v p) <=
pi
/\ ~(
azim (
vec 0) (v (p + 1)) (v (p + 2)) (v p) =
pi)
==>
azim (
vec 0) (v (p + 1)) (v (p + 2)) ((v:num->real^3) p) <
pi`)
THEN RESA_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN ASM_REWRITE_TAC[h0;cstab;REAL_ARITH`&2 <= &2 * #1.26 /\
&2 * #1.26 <= #3.01`]
THEN REPEAT STRIP_TAC;
THAYTHES_TAC(69-5)[`p`;`p+2`][
SCS_DIAG_4_ADD0]
THEN DICH_TAC 1
THEN REWRITE_TAC[cstab]
THEN REAL_ARITH_TAC;
MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v (p+1)`;`v (p+2)`;`V`]
THEN THAYTHES_TAC 0[`v (p+1)`;`v (p+2)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(1 MOD 4 = 2 MOD 4)`]
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v (p+1)`;`v (p+2)`;`V`]
THEN THAYTHES_TAC 0[`v (p+1)`;`v (p+0)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(1 MOD 4 = 0 MOD 4)`]
THEN DICH_TAC 0
THEN ASM_REWRITE_TAC[ARITH_RULE`a+0=a`]
THEN RESA_TAC
THEN MRESA_TAC
AZIM_DIHV_SAME_STRONG[`
vec 0:real^3`;`v (p+1)`;`v(p+2)`;`v p`]
THEN ASM_REWRITE_TAC[
DIHV_SYM];
MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+1)`;`(1 * 4 + p)`;`s`;`p+1`;`(1 * 4 + p) MOD 4`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+1)`;`p MOD 4`;`s`;`p+1`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN ASM_TAC
THEN REWRITE_TAC[
BBs_v39;
LET_DEF;
LET_END_DEF;
is_scs_v39]
THEN REPEAT RESA_TAC
;
MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+1)`;`(1 * 4 + p)`;`s`;`p+1`;`(1 * 4 + p) MOD 4`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+1)`;`p MOD 4`;`s`;`p+1`;`p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN ASM_TAC
THEN REWRITE_TAC[
BBs_v39;
LET_DEF;
LET_END_DEF;
is_scs_v39]
THEN REPEAT RESA_TAC
THEN ASM_SIMP_TAC[
A_EQ2_IMP_B;h0]
THEN REAL_ARITH_TAC;
REAL_ARITH_TAC;
REAL_ARITH_TAC;
(*********scs_is_str p+1***********)
MRESAL_TAC
NOT_STR_IN_CASES_4_1[`p`;`s`;`v`][
IN]
THEN DICH_TAC 3
THEN ASM_REWRITE_TAC[
scs_is_str;]
THEN STRIP_TAC
THEN DICH_TAC(21-13)
THEN ASM_REWRITE_TAC[
BBs_v39;
LET_DEF;
LET_END_DEF;]
THEN STRIP_TAC
THEN MRESA_TAC
MMS_IMP_BBS[`s`;`v`]
THEN THAYTHE_TAC 1[`p+1`;`(p+2)`]
;
MRESAL_TAC
MMS_IMP_BBPRIME[`s`;`v`][
LET_DEF;
LET_END_DEF;
BBprime_v39]
THEN MRESAL_TAC
JKQEWGV2[`s`;`v`][
LET_DEF;
LET_END_DEF;
scs_generic]
THEN MP_TAC Wrgcvdr_cizmrrh.CIZMRRH
THEN RESA_TAC
THEN POP_ASSUM MP_TAC
THEN REWRITE_TAC[
NOT_EXISTS_THM]
THEN STRIP_TAC
THEN SUBGOAL_THEN`(!V' E' v1. V' = V /\ E' = E ==> ~lunar (v1,(v:num->real^3) (p)) V' E')` ASSUME_TAC;
REPEAT RESA_TAC
;
ASSUME_TAC(ARITH_RULE`(p+1)+1=p+2/\ (p+1)+3= 1*4+p/\ (p+3)+1= 1*4+p/\ (p+3)+2= 1*4+p+1/\ (p+3)+3= 1*4+p+2`)
THEN MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHES_TAC 0[`1*4+p`;`p`][ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN DICH_TAC(32-20)
THEN RESA_TAC
THEN MRESA_TAC Local_lemmas1.AZIM_COND_FOR_COPLANAR[`
vec 0:real^3`;`v (p+1)`;`v (p+2)`;`(v:num->real^3) (p)`]
THEN POP_ASSUM MP_TAC
THEN ONCE_REWRITE_TAC[SET_RULE`{A,B,C,D}={A,D,B,C}`]
THEN STRIP_TAC
THEN MRESA_TAC
WL_IN_V[`p`;`v:num->real^3`]
THEN MRESA_TAC
WL_IN_V[`p+1`;`v:num->real^3`]
THEN MRESA_TAC
WL_IN_V[`p+2`;`v:num->real^3`]
THEN MRESA_TAC
WL_IN_V[`p+3`;`v:num->real^3`]
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v p`;`v (p+2)`;`V`]
THEN SUBGOAL_THEN`(!j. ~(v j = v (p)) ==> ~collinear {
vec 0, (v:num->real^3) (p ), v j})`ASSUME_TAC
;
REPEAT RESA_TAC
THEN DICH_TAC 0
THEN REWRITE_TAC[]
THEN MATCH_DICH_TAC 1
THEN ASM_SIMP_TAC[]
THEN MRESA_TAC
WL_IN_V[`j`;`v:num->real^3`]
THEN SET_TAC[];
MRESAL_TAC Iunbuig.coplanar_aff_gt_simple[`s`;`4`;`v`;`p`][ARITH_RULE`0+2=2`]
THEN DICH_TAC 0
THEN ONCE_REWRITE_TAC[SET_RULE`{B,C}={C,B}`]
THEN STRIP_TAC
THEN MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHES_TAC 3[`v (p+0)`;`v(p+2)`][SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(0 MOD 4 = 2 MOD 4)`]
THEN DICH_TAC 0
THEN REWRITE_TAC[ARITH_RULE`a+0=a`;SET_RULE`a
IN {a,b}`]
THEN ONCE_REWRITE_TAC[SET_RULE`{A,B,C}={A,C,B}`]
THEN STRIP_TAC
THEN MP_TAC
CONDTION_A_LT_B
THEN RESA_TAC
THEN MP_TAC(REAL_ARITH`
scs_a_v39 s (p+1) (p+2) <=
dist (v (p+1),v (p+2))
==>
scs_a_v39 s (p+1) (p+2) =
dist (v (p+1),v (p+2))\/
scs_a_v39 s (p+1) (p+2) <
dist (v (p+1),(v:num->real^3) (p+2))`)
THEN RESA_TAC
;
SUBGOAL_THEN`
dist (v (p + 1),(v:num->real^3) (p+2)) <
scs_b_v39 s (p + 1) (p+2)`
ASSUME_TAC
;
THAYTHE_TAC 1[`p+1`]
THEN DICH_TAC 0
;
MRESAS_TAC
NUXCOEAv2[`s`;`4`;`v`;`p+1`;`p+2`][
MOD_MULT_ADD;
BASIC_IMP_NOT_J]
THEN DICH_TAC 0
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN MRESA_TAC
SCS_A_SYM[`s`;`1*4+p`;`p+1`]
THEN MRESA_TAC
SCS_A_SYM[`s`;`p+1`;`p+2`]
THEN MRESA_TAC
SCS_B_SYM[`s`;`p+1`;`p+2`]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(1*4+p)`;`(p+1)`;`s`;`p`;`(p+1)`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN ASM_SIMP_TAC[
DIST_SYM];
MP_TAC(SET_RULE`~(&2=
norm ((v:num->real^3) (p+1)))\/
norm (v (p+1))= &2`)
THEN RESA_TAC
;
MRESAS_TAC
IMJXPHRv2[`s`;`4`;`v`;`p+1`;][
MOD_MULT_ADD;
BASIC_IMP_NOT_J]
THEN DICH_TAC 0
THEN MRESA_TAC
SCS_A_SYM[`s`;`1*4+p`;`p+1`]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(1*4+p)`;`(p+1)`;`s`;`p`;`(p+1)`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN ASM_SIMP_TAC[
DIST_SYM];
MP_TAC(SET_RULE`(
scs_a_v39 s (p+3) (p) = &2 )\/ ~((
scs_a_v39 s (p+3) (p) = &2 ))`)
THEN RESA_TAC;
MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+3)`;`(1 * 4 + p)`;`s`;`p+3`;` p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(1*4+p+1)`;`(1 * 4 + p+2)`;`s`;`p+1`;` p+2`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(1*4+p+2)`;`(p+3)`;`s`;`p+2`;` p+3`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(1*4+p+1)`;`(1 * 4 + p+2)`;`s`;`p+1`;` p+2`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(1*4+p+2)`;`(p+3)`;`s`;`p+2`;` p+3`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+3)`;`(1 * 4 + p)`;`s`;`p+3`;` p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(1*4+p)`;`(1 * 4 + p+1)`;`s`;`p`;` p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAL_TAC
STR_MOD_EQ[`4`;`s`;`v`;`1*4+p`][
IN;
MOD_MULT_ADD]
THEN MRESAL_TAC
STR_MOD_EQ[`4`;`s`;`v`;`p`][
IN;
MOD_MULT_ADD]
THEN MP_TAC
YEBWJNG
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p+3`][
IN;ARITH_RULE`(p+1)+1=p+2`]
THEN THAYTHEL_ASM_TAC (55-42)[`p+1`][]
THEN THAYTHEL_TAC 0[`p+2`][ARITH_RULE`(i+2)+1=i+3`]
THEN MRESA_TAC
A_EQ2_IMP_B[`s`;`p+3`]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(1*4+p)`;`(1 * 4 + p+1)`;`s`;`p`;` p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN THAYTHES_TAC (58-40)[`(1 * 4 + p+1)`;`p+1`][
MOD_MULT_ADD]
THEN MP_TAC Cqaoqlr.CQAOQLR
THEN RESA_TAC
THEN THAYTHES_TAC 0[`s`;`v`;`p+3`][
scs_generic;
IN;
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN MATCH_DICH_TAC 0
THEN REWRITE_TAC[h0]
THEN REAL_ARITH_TAC;
ASSUME_TAC(ARITH_RULE`(p+1)+1=p+2/\ (p+2)+1=p+3/\ (p+2)+3=1*4+p+1/\ (p+1)+3=1*4+p/\ (p+3)+1=1*4+p/\ (p+3)+3=1*4+p+2/\ (p+3)+2=1*4+p+1/\ (p+1)+2=p+3`)
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+3)`;`(1 * 4 + p)`;`s`;`p+3`;` p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(1*4+p+1)`;`(1 * 4 + p+2)`;`s`;`p+1`;` p+2`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(1*4+p+2)`;`(p+3)`;`s`;`p+2`;` p+3`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(1*4+p+1)`;`(1 * 4 + p+2)`;`s`;`p+1`;` p+2`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(1*4+p+2)`;`(p+3)`;`s`;`p+2`;` p+3`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+3)`;`(1 * 4 + p)`;`s`;`p+3`;` p`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(1*4+p)`;`(1 * 4 + p+1)`;`s`;`p`;` p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESA_TAC
A_NOT_EQ2_IMP_B[`s`;`p+3`]
THEN MRESAS_TAC
STR_MOD_EQ[`4`;`s`;`v`;`1*4+p+2`][
IN;
MOD_MULT_ADD]
THEN MRESAS_TAC
STR_MOD_EQ[`4`;`s`;`v`;`p+2`][
IN;
MOD_MULT_ADD;
MOD_REFL]
THEN MRESAS_TAC
STR_MOD_EQ[`4`;`s`;`v`;`1*4+p`][
IN;
MOD_MULT_ADD]
THEN MRESAS_TAC
STR_MOD_EQ[`4`;`s`;`v`;`p`][
IN;
MOD_MULT_ADD;
MOD_REFL]
;
THAYTHES_TAC (59-40)[`1 * 4 + p + 2`;`p+2`][
MOD_MULT_ADD]
THEN MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHES_TAC 0[`1*4+p+1`;`p+1`][ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN THAYTHES_TAC 0[`1*4+p+3`;`p+3`][ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MP_TAC
WKZZEEH
THEN RESA_TAC
THEN THAYTHE_TAC 0[`s`;`v`;`p+3`]
THEN MRESA_TAC
PRO_ADD_NOT_IN_SCS_M[`p+3`;`4`;`s`]
THEN MP_TAC(SET_RULE`
scs_a_v39 s (p + 1) (p+2) = &2 \/ ~(
scs_a_v39 s (p + 1) (p+2) = &2 )`)
THEN RESA_TAC;
(**********CASES a 1 2 =2********************)
MP_TAC
TUAPYYU
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p+3`][
IN];
MRESAS_TAC
CHANGE_A_SCS_MOD[`(1*4+p)`;`(p+1)`;`s`;`p`;` p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MP_TAC Jotswix.LEMMA_PWE2
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p+1`][
scs_generic;
IN;REAL_ARITH`a<=a`;]
THEN DICH_TAC 0
THEN ASM_REWRITE_TAC[
scs_is_str]
THEN STRIP_TAC
THEN MP_TAC Cuxvzoz.CUXVZOZ
THEN RESA_TAC
THEN THAYTHE_TAC 0[`s`;`
FF`;`4`;`p`;`v`]
THEN MATCH_DICH_TAC 0
THEN ASM_SIMP_TAC[]
THEN REWRITE_TAC[GSYM
ADD1]
THEN ASM_REWRITE_TAC[
scs_generic]
THEN ASM_SIMP_TAC[
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN ASM_REWRITE_TAC[
interior_angle1;GSYM
ivs_rho_node1;]
THEN MRESA_TAC
BB_RHO_NODE_IVS[`V`;`E`;`s`;`
FF`;`v p`;`v`;`p`;`4`]
;
DICH_TAC(69-17)
THEN ASM_REWRITE_TAC[
scs_is_str]
THEN RESA_TAC
THEN MRESAL_TAC Local_lemmas.IN_V_IMP_AZIM_LESS_PI[`E`;`V`;`
FF`;`v p`][]
THEN THAYTHE_TAC 0[`v (p+3)`]
THEN MP_TAC(REAL_ARITH`
azim (
vec 0) (v p) (v (p + 1)) (v (p + 3)) <=
pi
/\ ~(
azim (
vec 0) (v p) (v (p + 1)) (v (p + 3)) =
pi)
==>
azim (
vec 0) (v p) (v (p + 1)) ((v:num->real^3) (p + 3)) <
pi`)
THEN RESA_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN ASM_REWRITE_TAC[h0;cstab;REAL_ARITH`&2 <= &2 * #1.26 /\
&2 * #1.26 <= #3.01`]
THEN REPEAT STRIP_TAC;
THAYTHES_TAC(71-5)[`p+1`;`p+3`][
SCS_DIAG_4_ADD2]
THEN DICH_TAC 1
THEN REWRITE_TAC[cstab]
THEN REAL_ARITH_TAC;
MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v p`;`v (p+1)`;`V`]
THEN THAYTHES_TAC 0[`v (p+0)`;`v (p+1)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(1 MOD 4 = 0 MOD 4)`]
THEN DICH_TAC 0
THEN ASM_REWRITE_TAC[ARITH_RULE`a+0=a`;SET_RULE`a
IN {a,b}`]
THEN RESA_TAC
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v p`;`v (p+3)`;`V`]
THEN THAYTHES_TAC 0[`v (p+0)`;`v (p+3)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(3 MOD 4 = 0 MOD 4)`]
THEN DICH_TAC 0
THEN ASM_REWRITE_TAC[ARITH_RULE`a+0=a`;SET_RULE`a
IN {a,b}`]
THEN RESA_TAC
THEN MRESA_TAC
AZIM_DIHV_SAME_STRONG[`
vec 0:real^3`;`v p`;`v(p+1)`;`v (p+3)`]
;
DICH_TAC 3
THEN RESA_TAC
THEN POP_ASSUM MP_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN STRIP_TAC
THEN MP_TAC
TUAPYYU_IMP_CASES
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p+2`][
IN];
(************CASES 2 3= 2**********)
MRESAS_TAC
CHANGE_A_SCS_MOD[`(1*4+p)`;`(p+1)`;`s`;`p`;` p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MP_TAC Jotswix.LEMMA_PWE1
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p+1`][
scs_generic;
IN;REAL_ARITH`a<=a/\ &2 <= &2 * #1.26`;h0]
THEN DICH_TAC 0
THEN ASM_REWRITE_TAC[
scs_is_str]
THEN STRIP_TAC
THEN MP_TAC Cuxvzoz.CJBDXXN
THEN RESA_TAC
THEN THAYTHE_TAC 0[`s`;`
FF`;`4`;`p+2`;`v`]
THEN DICH_TAC 0
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN ASM_SIMP_TAC[]
THEN REWRITE_TAC[GSYM
ADD1]
THEN ASM_REWRITE_TAC[
scs_generic]
THEN ASM_REWRITE_TAC[
interior_angle1;GSYM
ivs_rho_node1;]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+2)`;`(1 * 4 + p+1)`;`s`;`p+2`;` p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+2)`;`(1 * 4 + p+1)`;`s`;`p+2`;` p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESA_TAC
SCS_A_SYM[`s`;`p+1`;`p+2`]
THEN MRESA_TAC
SCS_B_SYM[`s`;`p+1`;`p+2`]
THEN MRESA_TAC
A_EQ2_IMP_B[`s`;`p+1`]
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN ASM_SIMP_TAC[REAL_ARITH`a<=a`]
THEN MRESA_TAC
BB_RHO_NODE_IVS[`V`;`E`;`s`;`
FF`;`v (p+2)`;`v`;`(p+2)`;`4`]
;
DICH_TAC(75-18)
THEN ASM_REWRITE_TAC[
scs_is_str]
THEN RESA_TAC
THEN MRESAL_TAC Local_lemmas.IN_V_IMP_AZIM_LESS_PI[`E`;`V`;`
FF`;`v (p+2)`][]
THEN THAYTHE_TAC 0[`v (p+1)`]
THEN MP_TAC(REAL_ARITH`
azim (
vec 0) (v (p + 2)) (v (p + 3)) (v (p + 1)) <=
pi
/\ ~(
azim (
vec 0) (v (p + 2)) (v (p + 3)) (v (p + 1)) =
pi)
==>
azim (
vec 0) (v (p + 2)) (v (p + 3)) ((v:num->real^3) (p + 1)) <
pi`)
THEN RESA_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN SUBGOAL_THEN`&3 <=
dist ((v:num->real^3) (p+1),v (p + 3))`ASSUME_TAC
;
THAYTHES_TAC(77-5)[`p+1`;`p+3`][
SCS_DIAG_4_ADD2]
THEN DICH_TAC 1
THEN REWRITE_TAC[cstab]
THEN REAL_ARITH_TAC;
SUBGOAL_THEN`(
pi / &2 <
azim (
vec 0) (v (p + 2)) (v (p + 3)) (v (p + 1)) \/
azim (
vec 0) ((v:num->real^3) (p + 1)) (
rho_node1 FF (v (p + 1)))
(
ivs_rho_node1 FF (v (p + 1))) <
pi)`ASSUME_TAC
;
MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v (p+2)`;`v (p+1)`;`V`]
THEN THAYTHES_TAC 0[`v (p+2)`;`v (p+1)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(1 MOD 4 = 2 MOD 4)`]
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v (p+2)`;`v (p+3)`;`V`]
THEN THAYTHES_TAC 0[`v (p+2)`;`v (p+3)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(3 MOD 4 = 2 MOD 4)`]
THEN MRESA_TAC
AZIM_DIHV_SAME_STRONG[`
vec 0:real^3`;`v (p+2)`;`v(p+3)`;`v (p+1)`]
;
ASM_REWRITE_TAC[cstab;REAL_ARITH`&2 <= #3.01`]
THEN STRIP_TAC
THEN MP_TAC Cqaoqlr.CQAOQLR
THEN RESA_TAC
THEN THAYTHES_TAC 0[`s`;`v`;`p`][
scs_generic;
IN;
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN MATCH_DICH_TAC 0
THEN THAYTHEL_ASM_TAC(80-40)[`p+2`][h0;cstab]
THEN REAL_ARITH_TAC;
(************CASES 2 3= 2* H0**********)
MRESAS_TAC
CHANGE_A_SCS_MOD[`(1*4+p)`;`(p+1)`;`s`;`p`;` p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MP_TAC Jotswix.LEMMA_PWE1
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p+1`][
scs_generic;
IN;REAL_ARITH`a<=a/\ &2 <= &2 * #1.26`;h0]
THEN DICH_TAC 0
THEN ASM_REWRITE_TAC[
scs_is_str]
THEN STRIP_TAC
THEN MP_TAC Cuxvzoz.CJBDXXN
THEN RESA_TAC
THEN THAYTHE_TAC 0[`s`;`
FF`;`4`;`p+2`;`v`]
THEN DICH_TAC 0
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN ASM_SIMP_TAC[]
THEN REWRITE_TAC[GSYM
ADD1]
THEN ASM_REWRITE_TAC[
scs_generic]
THEN ASM_REWRITE_TAC[
interior_angle1;GSYM
ivs_rho_node1;]
THEN MRESAS_TAC
CHANGE_A_SCS_MOD[`(p+2)`;`(1 * 4 + p+1)`;`s`;`p+2`;` p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESAS_TAC
CHANGE_B_SCS_MOD[`(p+2)`;`(1 * 4 + p+1)`;`s`;`p+2`;` p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MRESA_TAC
SCS_A_SYM[`s`;`p+1`;`p+2`]
THEN MRESA_TAC
SCS_B_SYM[`s`;`p+1`;`p+2`]
THEN MRESA_TAC
A_EQ2_IMP_B[`s`;`p+1`]
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN ASM_SIMP_TAC[REAL_ARITH`a<=a`]
THEN MRESA_TAC
BB_RHO_NODE_IVS[`V`;`E`;`s`;`
FF`;`v (p+2)`;`v`;`(p+2)`;`4`]
;
DICH_TAC(75-18)
THEN ASM_REWRITE_TAC[
scs_is_str]
THEN RESA_TAC
THEN MRESAL_TAC Local_lemmas.IN_V_IMP_AZIM_LESS_PI[`E`;`V`;`
FF`;`v (p+2)`][]
THEN THAYTHE_TAC 0[`v (p+1)`]
THEN MP_TAC(REAL_ARITH`
azim (
vec 0) (v (p + 2)) (v (p + 3)) (v (p + 1)) <=
pi
/\ ~(
azim (
vec 0) (v (p + 2)) (v (p + 3)) (v (p + 1)) =
pi)
==>
azim (
vec 0) (v (p + 2)) (v (p + 3)) ((v:num->real^3) (p + 1)) <
pi`)
THEN RESA_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN SUBGOAL_THEN`&3 <=
dist ((v:num->real^3) (p+1),v (p + 3))`ASSUME_TAC
;
THAYTHES_TAC(77-5)[`p+1`;`p+3`][
SCS_DIAG_4_ADD2]
THEN DICH_TAC 1
THEN REWRITE_TAC[cstab]
THEN REAL_ARITH_TAC;
SUBGOAL_THEN`(
pi / &2 <
azim (
vec 0) (v (p + 2)) (v (p + 3)) (v (p + 1)) \/
azim (
vec 0) ((v:num->real^3) (p + 1)) (
rho_node1 FF (v (p + 1)))
(
ivs_rho_node1 FF (v (p + 1))) <
pi)`ASSUME_TAC
;
MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v (p+2)`;`v (p+1)`;`V`]
THEN THAYTHES_TAC 0[`v (p+2)`;`v (p+1)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(1 MOD 4 = 2 MOD 4)`]
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v (p+2)`;`v (p+3)`;`V`]
THEN THAYTHES_TAC 0[`v (p+2)`;`v (p+3)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(3 MOD 4 = 2 MOD 4)`]
THEN MRESA_TAC
AZIM_DIHV_SAME_STRONG[`
vec 0:real^3`;`v (p+2)`;`v(p+3)`;`v (p+1)`]
;
ASM_REWRITE_TAC[cstab;REAL_ARITH`&2 <= &2 * #1.26 /\ &2 * #1.26 <= #3.01`;h0]
THEN STRIP_TAC
THEN MP_TAC Cqaoqlr.CQAOQLR
THEN RESA_TAC
THEN THAYTHES_TAC 0[`s`;`v`;`p`][
scs_generic;
IN;
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN MATCH_DICH_TAC 0
THEN THAYTHEL_ASM_TAC(80-40)[`p+2`][h0;cstab]
THEN REAL_ARITH_TAC;
(*************CASES a 1 2 NOT = 2************)
MRESA_TAC
A_NOT_EQ2_IMP_B [`s`;`p+1`]
THEN MRESA_TAC
PRO_ADD_NOT_IN_SCS_M[`p+1`;`4`;`s`]
THEN MRESAL_TAC
B_LE_2h0_2_SCS_M_4_1[`s`;`p`][SET_RULE`{a,b}
SUBSET A<=> a
IN A/\ b
IN A`]
THEN MRESA_TAC
B_LE_2h0_IMP_B[`s`;`p+2`]
THEN MP_TAC
YEBWJNG
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p+2`][
IN];
MP_TAC
TUAPYYU
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p+3`][
IN];
MRESAS_TAC
CHANGE_A_SCS_MOD[`(1*4+p)`;`(p+1)`;`s`;`p`;` p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MP_TAC Jotswix.LEMMA_PWE4
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p+1`][
scs_generic;
IN;REAL_ARITH`a<=a`;]
THEN DICH_TAC 0
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN ASM_REWRITE_TAC[
scs_is_str;REAL_ARITH`a<=a`]
THEN STRIP_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
;
MP_TAC Cuxvzoz.CUXVZOZ
THEN RESA_TAC
THEN THAYTHE_TAC 0[`s`;`
FF`;`4`;`p`;`v`]
THEN MATCH_DICH_TAC 0
THEN ASM_SIMP_TAC[]
THEN REWRITE_TAC[GSYM
ADD1]
THEN ASM_REWRITE_TAC[
scs_generic]
THEN ASM_SIMP_TAC[
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN ASM_REWRITE_TAC[
interior_angle1;GSYM
ivs_rho_node1;]
THEN MRESA_TAC
BB_RHO_NODE_IVS[`V`;`E`;`s`;`
FF`;`v p`;`v`;`p`;`4`]
;
DICH_TAC(76-17)
THEN ASM_REWRITE_TAC[
scs_is_str]
THEN RESA_TAC
THEN MRESAL_TAC Local_lemmas.IN_V_IMP_AZIM_LESS_PI[`E`;`V`;`
FF`;`v p`][]
THEN THAYTHE_TAC 0[`v (p+3)`]
THEN MP_TAC(REAL_ARITH`
azim (
vec 0) (v p) (v (p + 1)) (v (p + 3)) <=
pi
/\ ~(
azim (
vec 0) (v p) (v (p + 1)) (v (p + 3)) =
pi)
==>
azim (
vec 0) (v p) (v (p + 1)) ((v:num->real^3) (p + 3)) <
pi`)
THEN RESA_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN ASM_REWRITE_TAC[h0;cstab;REAL_ARITH`&2 <= &2 * #1.26 /\
&2 * #1.26 <= #3.01`]
THEN REPEAT STRIP_TAC;
THAYTHES_TAC(78-5)[`p+1`;`p+3`][
SCS_DIAG_4_ADD2]
THEN DICH_TAC 1
THEN REWRITE_TAC[cstab]
THEN REAL_ARITH_TAC;
MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v p`;`v (p+1)`;`V`]
THEN THAYTHES_TAC 0[`v (p+0)`;`v (p+1)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(1 MOD 4 = 0 MOD 4)`]
THEN DICH_TAC 0
THEN ASM_REWRITE_TAC[ARITH_RULE`a+0=a`;SET_RULE`a
IN {a,b}`]
THEN RESA_TAC
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v p`;`v (p+3)`;`V`]
THEN THAYTHES_TAC 0[`v (p+0)`;`v (p+3)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(3 MOD 4 = 0 MOD 4)`]
THEN DICH_TAC 0
THEN ASM_REWRITE_TAC[ARITH_RULE`a+0=a`;SET_RULE`a
IN {a,b}`]
THEN RESA_TAC
THEN MRESA_TAC
AZIM_DIHV_SAME_STRONG[`
vec 0:real^3`;`v p`;`v(p+1)`;`v (p+3)`]
;
(*************CASES 0 3= cstab **************)
MRESAS_TAC
CHANGE_A_SCS_MOD[`(1*4+p)`;`(p+1)`;`s`;`p`;` p+1`][
MOD_REFL;Yxionxl2.MOD_SUC_MOD;ARITH_RULE`(p+3)+1=1*4+p`;
MOD_MULT_ADD]
THEN MP_TAC Jotswix.LEMMA_PWE4
THEN RESA_TAC
THEN THAYTHEL_TAC 0[`s`;`v`;`p+1`][
scs_generic;
IN;REAL_ARITH`a<=a`;]
THEN DICH_TAC 0
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN ASM_REWRITE_TAC[
scs_is_str;REAL_ARITH`&2 * #1.26 <= #3.01`;h0;cstab]
THEN STRIP_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
;
MP_TAC Cuxvzoz.CUXVZOZ
THEN RESA_TAC
THEN THAYTHE_TAC 0[`s`;`
FF`;`4`;`p`;`v`]
THEN MATCH_DICH_TAC 0
THEN ASM_SIMP_TAC[]
THEN REWRITE_TAC[GSYM
ADD1]
THEN ASM_REWRITE_TAC[
scs_generic]
THEN ASM_SIMP_TAC[
A_EQ2_IMP_B;REAL_ARITH`a<=a`]
THEN ASM_REWRITE_TAC[
interior_angle1;GSYM
ivs_rho_node1;]
THEN MRESA_TAC
BB_RHO_NODE_IVS[`V`;`E`;`s`;`
FF`;`v p`;`v`;`p`;`4`]
;
DICH_TAC(76-17)
THEN ASM_REWRITE_TAC[
scs_is_str]
THEN RESA_TAC
THEN MRESAL_TAC Local_lemmas.IN_V_IMP_AZIM_LESS_PI[`E`;`V`;`
FF`;`v p`][]
THEN THAYTHE_TAC 0[`v (p+3)`]
THEN MP_TAC(REAL_ARITH`
azim (
vec 0) (v p) (v (p + 1)) (v (p + 3)) <=
pi
/\ ~(
azim (
vec 0) (v p) (v (p + 1)) (v (p + 3)) =
pi)
==>
azim (
vec 0) (v p) (v (p + 1)) ((v:num->real^3) (p + 3)) <
pi`)
THEN RESA_TAC
THEN ONCE_REWRITE_TAC[
DIST_SYM]
THEN ASM_REWRITE_TAC[h0;cstab;REAL_ARITH`&2 <= &2 * #1.26 /\
&2 * #1.26 <= #3.01`]
THEN REPEAT STRIP_TAC;
THAYTHES_TAC(78-5)[`p+1`;`p+3`][
SCS_DIAG_4_ADD2]
THEN DICH_TAC 1
THEN REWRITE_TAC[cstab]
THEN REAL_ARITH_TAC;
MRESA_TAC
BB_VV_FUN_EQ[`v`;`s`]
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v p`;`v (p+1)`;`V`]
THEN THAYTHES_TAC 0[`v (p+0)`;`v (p+1)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(1 MOD 4 = 0 MOD 4)`]
THEN DICH_TAC 0
THEN ASM_REWRITE_TAC[ARITH_RULE`a+0=a`;SET_RULE`a
IN {a,b}`]
THEN RESA_TAC
THEN MRESA_TAC Nkezbfc_local.PROPERTIES_GENERIC[`
FF`;`E`;`v p`;`v (p+3)`;`V`]
THEN THAYTHES_TAC 0[`v (p+0)`;`v (p+3)`][SET_RULE`a
IN {a,b}`;SET_RULE`a
IN {a,b}`;Ocbicby.MOD_EQ_MOD_SHIFT;ARITH_RULE`~(3 MOD 4 = 0 MOD 4)`]
THEN DICH_TAC 0
THEN ASM_REWRITE_TAC[ARITH_RULE`a+0=a`;SET_RULE`a
IN {a,b}`]
THEN RESA_TAC
THEN MRESA_TAC
AZIM_DIHV_SAME_STRONG[`
vec 0:real^3`;`v p`;`v(p+1)`;`v (p+3)`]
;
REAL_ARITH_TAC;
]);;