1 needs "local/lp_details.hl";;
2 needs "../formal_lp/hypermap/ineqs/lp_ineqs_proofs-compiled.hl";;
3 needs "../formal_lp/ineqs/delta_ineq.hl";;
5 (* Module Lp_ineqs_proofs2*)
6 module Lp_ineqs_proofs2 = struct
13 open Lp_ineqs_proofs;;
14 open Hypermap_and_fan;;
22 Sections.begin_section "Misc";;
24 (* Lemma azim_dart_eq_azim *)
25 let azim_dart_eq_azim = Sections.section_proof ["V";"E";"v";"w"]
27 /\ v,w IN dart1_of_fan (V,E) /\ CARD (set_of_edge v V E) > 1
28 ==> azim_dart (V,E) (v,w) = azim (vec 0) v w (sigma_fan (vec 0) V E v w)`
30 (BETA_TAC THEN (case THEN (move ["fanV"])) THEN (case THEN (move ["vw_in1"])) THEN (move ["card_gt1"]));
31 (((((use_arg_then2 ("azim_dart_eq_azim_fan", [azim_dart_eq_azim_fan]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("dart_of_fan_eq", [dart_of_fan_eq]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("IN_UNION", [IN_UNION]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("azim_fan", [azim_fan]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
34 (* Lemma sigma_fan_same *)
35 let sigma_fan_same = Sections.section_proof ["V";"E";"V2";"E2";"v"]
36 `set_of_edge v V E = set_of_edge v V2 E2
37 ==> sigma_fan (vec 0) V E v = sigma_fan (vec 0) V2 E2 v`
39 ((BETA_TAC THEN (move ["eq"])) THEN ((((use_arg_then2 ("FUN_EQ_THM", [FUN_EQ_THM]))(thm_tac (new_rewrite [] [])))) THEN (move ["w"])) THEN ((repeat_tactic 1 9 (((use_arg_then2 ("sigma_fan", [sigma_fan]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("eq", []))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
42 (* Lemma sigma_fan_delete_eq *)
43 let sigma_fan_delete_eq = Sections.section_proof ["V";"E";"v";"w";"x"]
45 ==> sigma_fan (vec 0) V (E DELETE {v,w}) x = sigma_fan (vec 0) V E x`
47 ((BETA_TAC THEN (move ["x_neq"])) THEN ((use_arg_then2 ("sigma_fan_same", [sigma_fan_same])) (thm_tac apply_tac)));
48 (((((use_arg_then2 ("EXTENSION", [EXTENSION]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("set_of_edge", [set_of_edge]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("IN_DELETE", [IN_DELETE]))(thm_tac (new_rewrite [] []))))) THEN (move ["y"]));
49 ((THENL) (split_tac) [((case THEN ALL_TAC) THEN (case THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))) THEN (move ["_"]) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac))); ((case THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))) THEN (simp_tac))]);
50 (((((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL Geomdetail.PAIR_EQ_EXPAND)))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("x_neq", []))(thm_tac (new_rewrite [] [])))))) THEN (done_tac));
53 (* Lemma atn2_acs_lemma *)
54 let atn2_acs_lemma = Sections.section_proof ["a";"b"]
55 `~(a = &0) /\ b * b <= a
56 ==> pi / &2 + atn2 (sqrt (a - b * b), --b) = acs (b / sqrt (a))`
58 (BETA_TAC THEN (move ["ineqs"]));
59 ((THENL_ROT (-1)) (((fun arg_tac -> arg_tac (Arg_term (`b * b = a`))) (disch_eq_tac "eq" [])) THEN case THEN (simp_tac) THEN (process_fst_eq_tac)));
60 ((((use_arg_then2 ("Tame_inequalities.ATN2_ACS_LEMMA", [Tame_inequalities.ATN2_ACS_LEMMA]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
61 ((((use_arg_then2 ("ineqs", [])) (disch_tac [])) THEN (clear_assumption "ineqs") THEN ((use_arg_then2 ("eq", [])) (disch_tac [])) THEN (clear_assumption "eq") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
62 ((((use_arg_then2 ("eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("REAL_SUB_REFL", [REAL_SUB_REFL]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("SQRT_0", [SQRT_0]))(thm_tac (new_rewrite [] [])))));
63 ((fun arg_tac -> (use_arg_then2 ("Merge_ineq.atn2_0", [Merge_ineq.atn2_0])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`--b`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN (case THEN ((move ["eq1"]) THEN (case THEN (move ["eq2"])) THEN (move ["_"])))));
64 (((fun arg_tac -> arg_tac (Arg_term (`b < &0`))) (disch_eq_tac "b_ineq" [])) THEN case THEN (simp_tac) THEN (process_fst_eq_tac));
65 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`&0 < --b /\ ~(b = &0)`))) (term_tac (have_gen_tac [](move ["b_ineq2"])))) ((((use_arg_then2 ("b_ineq", [])) (disch_tac [])) THEN (clear_assumption "b_ineq") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac)));
66 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`b * b = (--b) * (--b)`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))))) ((arith_tac) THEN (done_tac)));
67 ((((use_arg_then2 ("Nonlinear_lemma.sqrtxx", [Nonlinear_lemma.sqrtxx]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("REAL_LT_IMP_LE", [REAL_LT_IMP_LE]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)));
68 ((((fun arg_tac -> (use_arg_then2 ("real_div", [real_div])) (fun fst_arg -> (use_arg_then2 ("b", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_INV_NEG", [REAL_INV_NEG]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_MUL_RNEG", [REAL_MUL_RNEG]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_MUL_RINV", [REAL_MUL_RINV]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
69 (((((use_arg_then2 ("ACS_NEG_1", [ACS_NEG_1]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("eq1", []))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac))) THEN (arith_tac) THEN (done_tac));
70 ((fun arg_tac -> arg_tac (Arg_term (`--b < &0 /\ ~(b = &0) /\ &0 <= b`))) (term_tac (have_gen_tac [](move ["b_ineq2"]))));
71 ((THENL_FIRST) (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`~(b = &0)`))) (term_tac (have_gen_tac []ALL_TAC)))) ((((use_arg_then2 ("b_ineq", [])) (disch_tac [])) THEN (clear_assumption "b_ineq") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac)));
72 (((((use_arg_then2 ("implybF", [implybF]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (move ["eq0"])) THEN (((use_arg_then2 ("ineqs", [])) (disch_tac [])) THEN (clear_assumption "ineqs") THEN ((use_arg_then2 ("eq", [])) (disch_tac [])) THEN (clear_assumption "eq") THEN BETA_TAC) THEN (((((use_arg_then2 ("eq0", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_MUL_LZERO", [REAL_MUL_LZERO]))(thm_tac (new_rewrite [] []))))) THEN (((conv_thm_tac DISCH_THEN)(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (done_tac));
73 ((((use_arg_then2 ("Nonlinear_lemma.sqrtxx", [Nonlinear_lemma.sqrtxx]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
74 (((((use_arg_then2 ("REAL_DIV_REFL", [REAL_DIV_REFL]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("ACS_1", [ACS_1]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("eq2", []))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("REAL_ADD_RINV", [REAL_ADD_RINV]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
78 let dih_x_eq = Sections.section_proof ["x1";"x2";"x3";"x4";"x5";"x6"]
79 `let v1 = ups_x x1 x2 x6 in
80 let v2 = ups_x x1 x3 x5 in
81 let d4 = delta_x4 x1 x2 x3 x4 x5 x6 in
82 &0 < v1 /\ &0 < v2 /\ &0 <= delta_x x1 x2 x3 x4 x5 x6 /\ &0 <= x1
83 ==> dih_x x1 x2 x3 x4 x5 x6 = acs (d4 / sqrt (v1 * v2))`
85 ((repeat_tactic 1 9 ((CONV_TAC let_CONV))) THEN (BETA_TAC THEN (move ["ineqs"])));
86 ((((fun arg_tac -> arg_tac (Arg_theorem (let_RULE Sphere.dih_x)))(thm_tac (new_rewrite [] [])))) THEN (((fun arg_tac -> arg_tac (Arg_theorem (let_RULE Tame_inequalities.DELTA_X_AND_DELTA_X4)))(thm_tac (new_rewrite [] [])))));
87 (((((use_arg_then2 ("atn2_acs_lemma", [atn2_acs_lemma]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac))) THEN (split_tac));
88 ((((use_arg_then2 ("REAL_ENTIRE", [REAL_ENTIRE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("ineqs", [])) (disch_tac [])) THEN (clear_assumption "ineqs") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
89 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`a <= b <=> &0 <= b - a`))) (term_tac (have_gen_tac ["a"; "b"](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))))) ((arith_tac) THEN (done_tac)));
90 (((fun arg_tac -> arg_tac (Arg_theorem (let_RULE Tame_inequalities.DELTA_X_AND_DELTA_X4)))(gsym_then (thm_tac (new_rewrite [] [])))));
91 (((repeat_tactic 1 9 (((use_arg_then2 ("REAL_LE_MUL", [REAL_LE_MUL]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac))) THEN (arith_tac) THEN (done_tac));
94 (* Lemma dih_x_mono_le4 *)
95 let dih_x_mono_le4 = Sections.section_proof ["x1";"x2";"x3";"x5";"x6";"a";"b"]
97 /\ &0 < ups_x x1 x2 x6 /\ &0 < ups_x x1 x3 x5
98 /\ &0 <= delta_x x1 x2 x3 a x5 x6
99 /\ &0 <= delta_x x1 x2 x3 b x5 x6
100 ==> dih_x x1 x2 x3 a x5 x6 <= dih_x x1 x2 x3 b x5 x6`
102 (BETA_TAC THEN (case THEN (move ["a_le_b"])) THEN (case THEN (move ["x1_ge0"])) THEN (case THEN (move ["ups1"])) THEN (case THEN (move ["ups2"])) THEN (case THEN (move ["delta_a"])) THEN (move ["delta_b"]));
103 ((THENL_ROT (-1)) ((repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (let_RULE dih_x_eq)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("ACS_MONO_LE_EQ", [ACS_MONO_LE_EQ]))(thm_tac (new_rewrite [] []))))));
104 ((repeat_tactic 1 9 (((use_arg_then2 ("real_div", [real_div]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("REAL_LE_RMUL", [REAL_LE_RMUL]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LE_INV", [REAL_LE_INV]))(thm_tac (new_rewrite [] [])))));
105 (((((use_arg_then2 ("SQRT_POS_LE", [SQRT_POS_LE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LE_MUL", [REAL_LE_MUL]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("REAL_LT_IMP_LE", [REAL_LT_IMP_LE]))(thm_tac (new_rewrite [] [])))))) THEN (done_tac));
106 ((THENL_FIRST) (((fun arg_tac -> arg_tac (Arg_term (`a = b`))) (disch_eq_tac "eq" [])) THEN case THEN (simp_tac) THEN (process_fst_eq_tac)) (((((use_arg_then2 ("eq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] []))))) THEN (done_tac)));
107 (((((use_arg_then2 ("Tame_inequalities.DELTA_X4_MONO_LE_4", [Tame_inequalities.DELTA_X4_MONO_LE_4]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("x1_ge0", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("a_le_b", [])) (disch_tac [])) THEN (clear_assumption "a_le_b") THEN ((use_arg_then2 ("eq", [])) (disch_tac [])) THEN (clear_assumption "eq") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
108 ((fun arg_tac -> arg_tac (Arg_term (`&0 < x /\ &0 < y ==> (abs (z / sqrt (x * y)) <= &1 <=> &0 <= x * y - z * z)`))) (term_tac (have_gen_tac ["x"; "y"; "z"](move ["aux"]))));
109 ((BETA_TAC THEN (move ["ineqs"])) THEN ((((use_arg_then2 ("real_div", [real_div]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_ABS_MUL", [REAL_ABS_MUL]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_ABS_INV", [REAL_ABS_INV]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("real_div", [real_div]))(gsym_then (thm_tac (new_rewrite [] [])))))));
110 ((fun arg_tac -> arg_tac (Arg_term (`&0 < x * y /\ &0 <= x * y`))) (term_tac (have_gen_tac [](move ["xy_ineqs"]))));
111 (((((use_arg_then2 ("REAL_LT_IMP_LE", [REAL_LT_IMP_LE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LT_MUL", [REAL_LT_MUL]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
112 (((use_arg_then2 ("Packing3.REAL_DIV_LE_1", [Packing3.REAL_DIV_LE_1]))(thm_tac (new_rewrite [] []))));
113 (((((use_arg_then2 ("REAL_ABS_NZ", [REAL_ABS_NZ]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("SQRT_EQ_0", [SQRT_EQ_0]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac))) THEN (((use_arg_then2 ("xy_ineqs", [])) (disch_tac [])) THEN (clear_assumption "xy_ineqs") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
114 (((((use_arg_then2 ("REAL_LE_SQUARE_ABS", [REAL_LE_SQUARE_ABS]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_POW_2", [REAL_POW_2]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("SQRT_POW_2", [SQRT_POW_2]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac))) THEN (arith_tac) THEN (done_tac));
115 ((repeat_tactic 1 9 (((use_arg_then2 ("aux", []))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (let_RULE Tame_inequalities.DELTA_X_AND_DELTA_X4)))(gsym_then (thm_tac (new_rewrite [] [])))))));
116 (((repeat_tactic 1 9 (((use_arg_then2 ("REAL_LE_MUL", [REAL_LE_MUL]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac))) THEN (arith_tac) THEN (done_tac));
119 (* Lemma dih_y_mono_le4 *)
120 let dih_y_mono_le4 = Sections.section_proof ["y1";"y2";"y3";"y5";"y6";"a";"b"]
122 /\ &0 < ups_x (y1 * y1) (y2 * y2) (y6 * y6)
123 /\ &0 < ups_x (y1 * y1) (y3 * y3) (y5 * y5)
124 /\ &0 <= delta_y y1 y2 y3 a y5 y6
125 /\ &0 <= delta_y y1 y2 y3 b y5 y6
126 ==> dih_y y1 y2 y3 a y5 y6 <= dih_y y1 y2 y3 b y5 y6`
128 (((repeat_tactic 1 9 (((use_arg_then2 ("delta_y", [delta_y]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (let_RULE dih_y)))(thm_tac (new_rewrite [] [])))))) THEN (move ["ineqs"]));
129 ((((use_arg_then2 ("dih_x_mono_le4", [dih_x_mono_le4]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LE_SQUARE", [REAL_LE_SQUARE]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("ineqs", []))(thm_tac (new_rewrite [] []))))) THEN (simp_tac));
130 (((repeat_tactic 1 9 (((use_arg_then2 ("REAL_POW_2", [REAL_POW_2]))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (((use_arg_then2 ("REAL_LE_SQUARE_ABS", [REAL_LE_SQUARE_ABS]))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (((use_arg_then2 ("ineqs", [])) (disch_tac [])) THEN (clear_assumption "ineqs") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
133 (* Finalization of the section Misc *)
134 let azim_dart_eq_azim = Sections.finalize_theorem azim_dart_eq_azim;;
135 let sigma_fan_same = Sections.finalize_theorem sigma_fan_same;;
136 let sigma_fan_delete_eq = Sections.finalize_theorem sigma_fan_delete_eq;;
137 let atn2_acs_lemma = Sections.finalize_theorem atn2_acs_lemma;;
138 let dih_x_eq = Sections.finalize_theorem dih_x_eq;;
139 let dih_x_mono_le4 = Sections.finalize_theorem dih_x_mono_le4;;
140 let dih_y_mono_le4 = Sections.finalize_theorem dih_y_mono_le4;;
141 Sections.end_section "Misc";;
144 Sections.begin_section "Fan";;
145 (Sections.add_section_var (mk_var ("V", (`:real^3->bool`))));;
146 (Sections.add_section_var (mk_var ("E", (`:(real^3->bool)->bool`))));;
147 (Sections.add_section_hyp "fanV" (`FAN (vec 0,V,E)`));;
149 (* Lemma ys_fan_eq *)
150 let ys_fan_eq = Sections.section_proof ["v";"w"]
151 `v,w IN dart1_of_fan (V,E)
152 ==> y1_fan (v,w) = norm v
153 /\ y2_fan (v,w) = norm w
154 /\ y3_fan (V,E) (v,w) = norm (sigma_fan (vec 0) V E v w)
155 /\ y4'_fan (V,E) (v,w) = dist (w, sigma_fan (vec 0) V E v w)
156 /\ y5_fan (V,E) (v,w) = dist (v, sigma_fan (vec 0) V E v w)
157 /\ y6_fan (v,w) = dist (v,w)`
159 (BETA_TAC THEN (move ["vw_in1"]));
160 ((((use_arg_then2 ("y1_fan", [y1_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("y2_fan", [y2_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("y3_fan", [y3_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("y4'_fan", [y4'_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("y5_fan", [y5_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("y6_fan", [y6_fan]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
161 (((((use_arg_then2 ("INVERSE_F_FAN_PAIR_EXT_EXPLICIT", [INVERSE_F_FAN_PAIR_EXT_EXPLICIT]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("res", [res]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("vw_in1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("DIST_SYM", [DIST_SYM]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
164 (* Lemma fan_delta_y_pos *)
165 let fan_delta_y_pos = Sections.section_proof ["d"]
166 `d IN dart1_of_fan (V,E)
167 ==> &0 <= delta_y (y1_fan d) (y2_fan d) (y3_fan (V,E) d)
168 (y4'_fan (V,E) d) (y5_fan (V,E) d) (y6_fan d)`
170 (((use_arg_then2 ("d", [])) (disch_tac [])) THEN (clear_assumption "d") THEN case THEN (move ["v"]) THEN (move ["w"]) THEN (move ["vw_in"]));
171 (((repeat_tactic 1 9 (((use_arg_then2 ("ys_fan_eq", [ys_fan_eq]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> arg_tac (Arg_theorem (let_RULE Tame_lemmas.delta_y_pos)))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
174 (* Lemma fan_delta_y_pos2 *)
175 let fan_delta_y_pos2 = Sections.section_proof ["d"]
176 `d IN darts_k 4 (hypermap_of_fan (V,E))
177 ==> &0 <= delta_y (y4'_fan (V,E) d) (y9_fan (V,E) d) (y6_fan d)
178 (y4'_fan (V,E) (f_fan_pair_ext (V,E) d)) (y5_fan (V,E) d) (y8_fan (V,E) d)`
180 ((fun arg_tac -> (use_arg_then2 ("COMPONENTS_HYPERMAP_OF_FAN", [COMPONENTS_HYPERMAP_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN (move ["hypV"])));
181 ((((use_arg_then2 ("d", [])) (disch_tac [])) THEN (clear_assumption "d") THEN case THEN (move ["v"]) THEN (move ["w"])) THEN (BETA_TAC THEN (move ["vw_in4"])));
182 ((((use_arg_then2 ("vw_in4", [])) (disch_tac [])) THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("hypV", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["vw_in"])) THEN (move ["card_f"])));
183 ((fun arg_tac -> arg_tac (Arg_term (`v,w IN dart1_of_fan (V,E)`))) (term_tac (have_gen_tac [](move ["vw_in1"]))));
184 (((((use_arg_then2 ("CARD_FACE_GT_1", [CARD_FACE_GT_1]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("card_f", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("fanV", []))(thm_tac (new_rewrite [] []))))) THEN (arith_tac) THEN (done_tac));
185 ((repeat_tactic 1 9 (((use_arg_then2 ("ys_fan_eq", [ys_fan_eq]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y4'_fan", [y4'_fan]))(thm_tac (new_rewrite [] [])))) THEN (((fun arg_tac -> (use_arg_then2 ("PERMUTES_INVERSES", [PERMUTES_INVERSES])) (fun fst_arg -> (fun arg_tac -> (use_arg_then2 ("F_FAN_PAIR_EXT_PERMUTES_DART_OF_FAN", [F_FAN_PAIR_EXT_PERMUTES_DART_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
186 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> arg_tac (Arg_theorem (let_RULE face4_eq))) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("vw_in4", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN (case THEN ((move ["f_eq"]) THEN (case THEN (move ["darts_in"])) THEN (move ["_"])))));
187 ((((use_arg_then2 ("y8_fan", [y8_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("y9_fan", [y9_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("y5_fan", [y5_fan]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("INVERSE_F_FAN_PAIR_EXT_EXPLICIT", [INVERSE_F_FAN_PAIR_EXT_EXPLICIT]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)));
188 ((repeat_tactic 1 9 (((use_arg_then2 ("res", [res]))(thm_tac (new_rewrite [] []))))) THEN (simp_tac) THEN (((use_arg_then2 ("vw_in1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("darts_in", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("f_eq", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
189 ((fun arg_tac -> arg_tac (Arg_term (`sigma_fan _ V E v w`))) (term_tac (set_tac "w'")));
190 ((fun arg_tac -> arg_tac (Arg_term (`sigma_fan _ V E w' v`))) (term_tac (set_tac "u")));
191 ((((use_arg_then2 ("delta_y", [delta_y]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("REAL_POW_2", [REAL_POW_2]))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (((use_arg_then2 ("DELTA_EQ_DELTA_X", [DELTA_EQ_DELTA_X]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("DIST_SYM", [DIST_SYM])) (fun fst_arg -> (use_arg_then2 ("v", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))));
192 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("Collect_geom.DELTA_POS_4POINTS", [Collect_geom.DELTA_POS_4POINTS])) (fun fst_arg -> (use_arg_then2 ("w", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("w'", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("u", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("v", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
193 ((repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("DIST_SYM", [DIST_SYM])) (fun fst_arg -> (use_arg_then2 ("u", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
196 (* Lemma fan_ups_x_pos *)
197 let fan_ups_x_pos = Sections.section_proof ["d"]
198 `d IN dart1_of_fan (V,E)
199 ==> &0 < ups_x (y1_fan d * y1_fan d) (y2_fan d * y2_fan d) (y6_fan d * y6_fan d)
200 /\ &0 < ups_x (y1_fan d * y1_fan d) (y3_fan (V,E) d * y3_fan (V,E) d)
201 (y5_fan (V,E) d * y5_fan (V,E) d)`
203 (((use_arg_then2 ("d", [])) (disch_tac [])) THEN (clear_assumption "d") THEN case THEN (move ["v"]) THEN (move ["w"]) THEN (move ["vw_in1"]));
204 ((repeat_tactic 1 9 (((use_arg_then2 ("REAL_POW_2", [REAL_POW_2]))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("ys_fan_eq", [ys_fan_eq]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("Trigonometry1.DIST_L_ZERO", [Trigonometry1.DIST_L_ZERO]))(gsym_then (thm_tac (new_rewrite [] [])))))));
205 (repeat_tactic 1 9 (((use_arg_then2 ("Collect_geom2.NOT_COL_EQ_UPS_X_POS", [Collect_geom2.NOT_COL_EQ_UPS_X_POS]))(gsym_then (thm_tac (new_rewrite [] []))))));
206 (((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("DART1_NOT_COLLINEAR_2", [DART1_NOT_COLLINEAR_2])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("vw_in1", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN (exact_tac));
209 (* Lemma dih_y_le_azim_dart *)
210 let dih_y_le_azim_dart = Sections.section_proof ["d"]
211 `d IN dart1_of_fan (V,E)
212 ==> dih_y (y1_fan d) (y2_fan d) (y3_fan (V,E) d)
213 (y4'_fan (V,E) d) (y5_fan (V,E) d) (y6_fan d)
214 <= azim_dart (V,E) d`
216 (((use_arg_then2 ("d", [])) (disch_tac [])) THEN (clear_assumption "d") THEN case THEN (move ["v"]) THEN (move ["w"]) THEN (move ["vw_in1"]));
217 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`v,w IN dart_of_fan (V,E)`))) (term_tac (have_gen_tac [](move ["vw_in"])))) (((((use_arg_then2 ("dart_of_fan_eq", [dart_of_fan_eq]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("IN_UNION", [IN_UNION]))(thm_tac (new_rewrite [] []))))) THEN (done_tac)));
218 ((repeat_tactic 1 9 (((use_arg_then2 ("ys_fan_eq", [ys_fan_eq]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("Trigonometry1.DIST_L_ZERO", [Trigonometry1.DIST_L_ZERO]))(gsym_then (thm_tac (new_rewrite [] [])))))));
219 ((fun arg_tac -> arg_tac (Arg_term (`sigma_fan _ V E v w`))) (term_tac (set_tac "w'")));
220 ((((fun arg_tac -> arg_tac (Arg_theorem (let_RULE DIHV_EQ_DIH_Y)))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("w'_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 0 10 (((fun arg_tac -> (use_arg_then2 ("DART1_NOT_COLLINEAR", [DART1_NOT_COLLINEAR])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (repeat_tactic 0 10 (((use_arg_then2 ("sigma_in_dart1", [sigma_in_dart1]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)));
221 ((((use_arg_then2 ("w'_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("azim_dart_eq_azim_fan", [azim_dart_eq_azim_fan]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("azim_fan", [azim_fan]))(thm_tac (new_rewrite [] [])))));
222 ((THENL_ROT (-1)) (((fun arg_tac -> arg_tac (Arg_term (`_ > 1`))) (disch_eq_tac "card_gt" [])) THEN case THEN (simp_tac) THEN (process_fst_eq_tac)));
223 ((((use_arg_then2 ("REAL_LE_TRANS", [REAL_LE_TRANS])) (disch_tac [])) THEN (clear_assumption "REAL_LE_TRANS") THEN (DISCH_THEN apply_tac)) THEN ((fun arg_tac -> arg_tac (Arg_term (`pi`))) (term_tac exists_tac)) THEN (((use_arg_then2 ("DIHV_RANGE", [DIHV_RANGE]))(thm_tac (new_rewrite [] [])))));
224 ((((use_arg_then2 ("PI_POS", [PI_POS])) (disch_tac [])) THEN (clear_assumption "PI_POS") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
225 ((((use_arg_then2 ("AZIM_DIVH", [AZIM_DIVH]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 0 10 (((fun arg_tac -> (use_arg_then2 ("DART1_NOT_COLLINEAR", [DART1_NOT_COLLINEAR])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (repeat_tactic 0 10 (((use_arg_then2 ("sigma_in_dart1", [sigma_in_dart1]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("w'_def", []))(thm_tac (new_rewrite [] [])))));
226 ((THENL_FIRST) (((fun arg_tac -> arg_tac (Arg_term (`_ < pi`))) (disch_eq_tac "ineq" [])) THEN case THEN (simp_tac) THEN (process_fst_eq_tac)) ((((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] [])))) THEN (done_tac)));
227 ((((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("DIHV_RANGE", [DIHV_RANGE])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`vec 0`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("v", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("w", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("w'", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
230 (* Lemma azim_sum_sigma_fan *)
231 let azim_sum_sigma_fan = Sections.section_proof ["v";"w"]
232 `v,w IN dart1_of_fan (V,E)
233 ==> let w' = sigma_fan (vec 0) V E w v in
234 (!x. x IN set_of_edge w V E /\ ~(x = v)
235 ==> azim (vec 0) w v x = azim (vec 0) w v w' + azim (vec 0) w w' x)`
237 ((BETA_TAC THEN (move ["vw_in1"])) THEN (CONV_TAC let_CONV) THEN (BETA_TAC THEN (move ["x"]) THEN (case THEN ((move ["x_in"]) THEN (move ["x_neq_v"])))));
238 ((fun arg_tac -> arg_tac (Arg_term (`sigma_fan _ V E w v`))) (term_tac (set_tac "w'")));
239 (((fun arg_tac -> arg_tac (Arg_term (`w' = x`))) (disch_eq_tac "w'_eq_x" [])) THEN case THEN (simp_tac) THEN (process_fst_eq_tac));
240 (((((use_arg_then2 ("w'_eq_x", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("AZIM_REFL", [AZIM_REFL]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_ADD_RID", [REAL_ADD_RID]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
241 ((((use_arg_then2 ("Fan.sum5_azim_fan", [Fan.sum5_azim_fan]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("w'_def", []))(gsym_then (thm_tac (new_rewrite [2] []))))));
242 ((((use_arg_then2 ("vw_in1", [])) (disch_tac [])) THEN BETA_TAC) THEN ((((use_arg_then2 ("dart1_switch", [dart1_switch]))(thm_tac (new_rewrite [] [])))) THEN (move ["wv_in1"])));
243 ((repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("DART1_NOT_COLLINEAR_2", [DART1_NOT_COLLINEAR_2])) (fun fst_arg -> (use_arg_then2 ("wv_in1", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((simp_tac THEN TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("DART1_NOT_COLLINEAR", [DART1_NOT_COLLINEAR])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
244 ((((use_arg_then2 ("x_in", [])) (disch_tac [])) THEN (clear_assumption "x_in") THEN BETA_TAC) THEN (((((use_arg_then2 ("set_of_edge", [set_of_edge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE_eq_in_dart1", [inE_eq_in_dart1]))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))) THEN (done_tac));
245 ((THENL_FIRST) (((fun arg_tac -> arg_tac (Arg_term (`w' = v`))) (disch_eq_tac "eq" [])) THEN case THEN (simp_tac) THEN (process_fst_eq_tac)) (((((use_arg_then2 ("eq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] []))))) THEN (done_tac)));
246 ((THENL_ROT (-1)) ((((use_arg_then2 ("Counting_spheres.AZIM_COMP_LE", [Counting_spheres.AZIM_COMP_LE]))(thm_tac (new_rewrite [] [])))) THEN (split_tac)));
247 ((((use_arg_then2 ("w'_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("Topology.MONO_AZIM_SIGMA_FAN", [Topology.MONO_AZIM_SIGMA_FAN]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("w'_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("w'_eq_x", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("fanV", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
248 ((((use_arg_then2 ("x_in", [])) (disch_tac [])) THEN (clear_assumption "x_in") THEN ((use_arg_then2 ("vw_in1", [])) (disch_tac [])) THEN (clear_assumption "vw_in1") THEN BETA_TAC) THEN ((((use_arg_then2 ("inE_eq_in_dart1", [inE_eq_in_dart1]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("set_of_edge", [set_of_edge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] []))))));
249 (((((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL Collect_geom.PER_SET2)))(thm_tac (new_rewrite [] [])))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))) THEN (done_tac));
250 (((use_arg_then2 ("x_neq_v", [])) (disch_tac [])) THEN (clear_assumption "x_neq_v") THEN ((use_arg_then2 ("contraR", [contraR])) (disch_tac [])) THEN (clear_assumption "contraR") THEN (DISCH_THEN apply_tac) THEN (move ["ineq"]));
251 (((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("Fan.UNIQUE_AZIM_0_POINT_FAN", [Fan.UNIQUE_AZIM_0_POINT_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("w", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN (DISCH_THEN apply_tac));
252 ((((use_arg_then2 ("x_in", [])) (disch_tac [])) THEN (clear_assumption "x_in") THEN ((use_arg_then2 ("vw_in1", [])) (disch_tac [])) THEN (clear_assumption "vw_in1") THEN BETA_TAC) THEN (((((use_arg_then2 ("dart1_switch", [dart1_switch]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE_eq_in_dart1", [inE_eq_in_dart1]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("set_of_edge", [set_of_edge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] []))))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))) THEN (simp_tac)));
253 ((((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("Counting_spheres.AZIM_NN", [Counting_spheres.AZIM_NN])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`vec 0`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("w", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("x", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("v", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN ((use_arg_then2 ("ineq", [ineq])) (disch_tac [])) THEN (clear_assumption "ineq") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
256 (* Lemma fan_delete_edge *)
257 let fan_delete_edge = Sections.section_proof ["e"]
258 `FAN (vec 0, V, E DELETE e)`
260 (((((use_arg_then2 ("Topology.CTVTAQA", [Topology.CTVTAQA]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("DELETE_SUBSET", [DELETE_SUBSET]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
263 (* Lemma set_of_edge_delete_eq *)
264 let set_of_edge_delete_eq = Sections.section_proof ["v";"w"]
265 `set_of_edge v V (E DELETE {v,w}) = set_of_edge v V E DELETE w`
267 ((((use_arg_then2 ("EXTENSION", [EXTENSION]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("set_of_edge", [set_of_edge]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("IN_DELETE", [IN_DELETE]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL Geomdetail.PAIR_EQ_EXPAND)))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
268 (((((use_arg_then2 ("negb_or", [negb_or]))(thm_tac (new_rewrite [] [])))) THEN (move ["x"])) THEN ((THENL) (split_tac) [((case THEN ALL_TAC) THEN (case THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac))); ((case THEN ALL_TAC) THEN (case THEN (move ["vxE"])) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))) THEN (simp_tac))]));
269 ((((use_arg_then2 ("vxE", [])) (disch_tac [])) THEN BETA_TAC) THEN (((((use_arg_then2 ("vxE", []))(thm_tac (new_rewrite [2] [])))) THEN (((fun arg_tac -> (use_arg_then2 ("inE_eq_in_dart1", [inE_eq_in_dart1])) (fun fst_arg -> (use_arg_then2 ("V", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN (DISCH_THEN (fun snd_th -> (fun arg_tac -> (use_arg_then2 ("PAIR_IN_DART1_OF_FAN_IMP_NOT_EQ", [PAIR_IN_DART1_OF_FAN_IMP_NOT_EQ])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (thm_tac (match_mp_then snd_th MP_TAC)))) THEN (((conv_thm_tac DISCH_THEN)(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (done_tac));
272 (* Lemma set_of_edge_delete_eq2 *)
273 let set_of_edge_delete_eq2 = Sections.section_proof ["v";"w"]
274 `v,w IN dart1_of_fan (V,E)
275 ==> set_of_edge v V E = w INSERT (set_of_edge v V (E DELETE {v,w}))`
277 ((DISCH_THEN (fun snd_th -> (fun arg_tac -> (use_arg_then2 ("PAIR_IN_DART1_OF_FAN", [PAIR_IN_DART1_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (thm_tac (match_mp_then snd_th MP_TAC)))) THEN BETA_TAC THEN (move ["h"]));
278 (((((use_arg_then2 ("set_of_edge_delete_eq", [set_of_edge_delete_eq]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("INSERT_DELETE", [INSERT_DELETE]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
281 (* Lemma card_set_of_edge_delete *)
282 let card_set_of_edge_delete = Sections.section_proof ["v";"w"]
283 `v,w IN dart1_of_fan (V,E)
284 ==> CARD (set_of_edge v V E) = CARD (set_of_edge v V (E DELETE {v,w})) + 1`
286 (BETA_TAC THEN (move ["vw_in1"]));
287 ((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("PAIR_IN_DART1_OF_FAN", [PAIR_IN_DART1_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("vw_in1", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN (move ["h"])));
288 ((((fun arg_tac -> (use_arg_then2 ("set_of_edge_delete_eq2", [set_of_edge_delete_eq2])) (fun fst_arg -> (use_arg_then2 ("vw_in1", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("CARD_CLAUSES", [CARD_CLAUSES]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("finite_set_of_edge", [finite_set_of_edge]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("fan_delete_edge", [fan_delete_edge]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)));
289 (((((use_arg_then2 ("set_of_edge_delete_eq", [set_of_edge_delete_eq]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("IN_DELETE", [IN_DELETE]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("addn1", [addn1]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
292 (* Lemma sigma_fan_delete1 *)
293 let sigma_fan_delete1 = Sections.section_proof ["v";"w"]
294 `v,w IN dart1_of_fan (V,E) /\ CARD (set_of_edge w V E) > 1
295 ==> let w' = sigma_fan (vec 0) V E w v in
296 let E2 = E DELETE {w,w'} in
297 sigma_fan (vec 0) V E2 w v = sigma_fan (vec 0) V E w w'
298 /\ (!x. x IN set_of_edge w V E2 /\ ~(x = v)
299 ==> sigma_fan (vec 0) V E2 w x = sigma_fan (vec 0) V E w x)`
301 ((BETA_TAC THEN (case THEN ((move ["vw_in1"]) THEN (move ["card_gt1"])))) THEN (repeat_tactic 1 9 ((CONV_TAC let_CONV))));
302 ((fun arg_tac -> arg_tac (Arg_term (`sigma_fan _ V E w v`))) (term_tac (set_tac "w'")));
303 ((fun arg_tac -> (use_arg_then2 ("fan_delete_edge", [fan_delete_edge])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`{w,w'}`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN (move ["fan2"])));
304 ((fun arg_tac -> arg_tac (Arg_term (`E DELETE _`))) (term_tac (set_tac "E2")));
305 ((fun arg_tac -> arg_tac (Arg_term (`~(set_of_edge w V E = {x})`))) (term_tac (have_gen_tac ["x"](move ["neq_sing"]))));
306 ((((use_arg_then2 ("card_gt1", [])) (disch_tac [])) THEN (clear_assumption "card_gt1") THEN ((use_arg_then2 ("contraL", [contraL])) (disch_tac [])) THEN (clear_assumption "contraL") THEN (DISCH_THEN apply_tac) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("CARD_SINGLETON", [CARD_SINGLETON]))(thm_tac (new_rewrite [] [])))) THEN (arith_tac) THEN (done_tac));
307 ((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("PAIR_IN_DART1_OF_FAN", [PAIR_IN_DART1_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("vw_in1", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN (case THEN ((move ["_"]) THEN (case THEN (move ["_"])) THEN (case THEN (move ["_"])) THEN (move ["v_in"])))));
308 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("Fan.SIGMA_FAN", [Fan.SIGMA_FAN])) (fun fst_arg -> (fun arg_tac -> (use_arg_then2 ("neq_sing", [])) (fun fst_arg -> (use_arg_then2 ("v", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("v_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
309 ((((use_arg_then2 ("w'_def", []))(thm_tac (new_rewrite [] [])))) THEN ALL_TAC THEN (case THEN (move ["w'_in"])) THEN (case THEN (move ["w'_neq_v"])) THEN (move ["azim_le"]));
310 ((fun arg_tac -> arg_tac (Arg_term (`~(w' IN set_of_edge w V E2)`))) (term_tac (have_gen_tac [](move ["w'_not_in"]))));
311 (((((use_arg_then2 ("set_of_edge", [set_of_edge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("negb_and", [negb_and]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("E2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("IN_DELETE", [IN_DELETE]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
312 (((fun arg_tac -> arg_tac (Arg_term (`set_of_edge w V E2 = {v}`))) (disch_eq_tac "eq" [])) THEN case THEN (simp_tac) THEN (process_fst_eq_tac));
313 ((((use_arg_then2 ("eq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("IN_SING", [IN_SING]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("andbN", [andbN]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("sigma_fan", [sigma_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("eq", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("eq_sym", [eq_sym]))(thm_tac (new_rewrite [] [])))));
314 ((((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("Fan.UNIQUE_SIGMA_FAN", [Fan.UNIQUE_SIGMA_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("w'_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("v_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN (DISCH_THEN apply_tac)) THEN ((((use_arg_then2 ("w'_neq_v", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("neq_sing", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac)));
315 ((fun arg_tac -> arg_tac (Arg_term (`set_of_edge w V E = {w',v}`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))));
316 (((((use_arg_then2 ("eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("E2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("set_of_edge_delete_eq", [set_of_edge_delete_eq]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("INSERT_DELETE", [INSERT_DELETE]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
317 ((BETA_TAC THEN (move ["u"])) THEN (((((use_arg_then2 ("IN_INSERT", [IN_INSERT]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("IN_SING", [IN_SING]))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN ALL_TAC) THEN ((THENL) case [(((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))); (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))]) THEN ((TRY done_tac))) THEN (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
318 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`v IN set_of_edge w V E2`))) (term_tac (have_gen_tac [](move ["v_in2"])))) (((((use_arg_then2 ("E2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("set_of_edge_delete_eq", [set_of_edge_delete_eq]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("IN_DELETE", [IN_DELETE]))(thm_tac (new_rewrite [] []))))) THEN (done_tac)));
320 (((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("Fan.UNIQUE_SIGMA_FAN", [Fan.UNIQUE_SIGMA_FAN])) (fun fst_arg -> (use_arg_then2 ("eq", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("fan2", [fan2])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN (DISCH_THEN apply_tac));
321 ((((use_arg_then2 ("E2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("set_of_edge_delete_eq", [set_of_edge_delete_eq]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("IN_DELETE", [IN_DELETE]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("v_in", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("w'_neq_v", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (simp_tac));
322 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("Fan.SIGMA_FAN", [Fan.SIGMA_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("w", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("w'", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> (use_arg_then2 ("neq_sing", [])) (fun fst_arg -> (use_arg_then2 ("w'", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("w'_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN (move ["h"])));
323 ((fun arg_tac -> arg_tac (Arg_term (`sigma_fan _ V E w w'`))) (term_tac (set_tac "w2")));
324 ((fun arg_tac -> arg_tac (Arg_term (`~(w2 = v)`))) (term_tac (have_gen_tac [](move ["w2_neq_v"]))));
325 ((fun arg_tac -> arg_tac (Arg_term (`w2 = power_map_points sigma_fan (vec 0) V E w v 2`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))));
326 (((((use_arg_then2 ("SIGMA_FAN_POWER", [SIGMA_FAN_POWER]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("POWER_2", [POWER_2]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("w'_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("w2_def", []))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
327 ((((use_arg_then2 ("Topology.key_lemma_cyclic_fan", [Topology.key_lemma_cyclic_fan]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("fanV", []))(thm_tac (new_rewrite [] [])))) THEN (((fun arg_tac -> (use_arg_then2 ("inE_eq_in_dart1", [inE_eq_in_dart1])) (fun fst_arg -> (use_arg_then2 ("V", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dart1_switch", [dart1_switch]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("vw_in1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
328 ((THENL_FIRST) (split_tac) ((arith_tac) THEN (done_tac)));
329 ((((use_arg_then2 ("w'_in", [])) (disch_tac [])) THEN (clear_assumption "w'_in") THEN BETA_TAC) THEN (((((use_arg_then2 ("set_of_edge", [set_of_edge]))(thm_tac (new_rewrite [1] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((fun arg_tac -> (use_arg_then2 ("inE_eq_in_dart1", [inE_eq_in_dart1])) (fun fst_arg -> (use_arg_then2 ("V", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["ww'_in1"])) THEN (move ["_"])));
330 ((((fun arg_tac -> (use_arg_then2 ("set_of_edge_delete_eq2", [set_of_edge_delete_eq2])) (fun fst_arg -> (use_arg_then2 ("ww'_in1", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("CARD_CLAUSES", [CARD_CLAUSES]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("finite_set_of_edge", [finite_set_of_edge]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("E2_def", []))(thm_tac (new_rewrite [] [])))));
331 ((((use_arg_then2 ("w'_not_in", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("TWO", [TWO]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("LT_SUC", [LT_SUC]))(thm_tac (new_rewrite [] [])))));
332 ((((use_arg_then2 ("eq", [])) (disch_tac [])) THEN (clear_assumption "eq") THEN ((use_arg_then2 ("contraR", [contraR])) (disch_tac [])) THEN (clear_assumption "contraR") THEN (DISCH_THEN apply_tac)) THEN (((use_arg_then2 ("NOT_LT", [NOT_LT]))(thm_tac (new_rewrite [] [])))));
333 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`a <= 1 <=> a = 0 \/ a = 1`))) (term_tac (have_gen_tac ["a"](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))))) ((arith_tac) THEN (done_tac)));
334 ((THENL_LAST) (((THENL) case [ALL_TAC; ((DISCH_THEN (fun snd_th -> (fun arg_tac -> (use_arg_then2 ("set_one_point", [set_one_point])) (fun fst_arg -> (use_arg_then2 ("v_in2", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (thm_tac (match_mp_then snd_th MP_TAC)))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))]) THEN ((TRY done_tac))) ((((use_arg_then2 ("finite_set_of_edge", [finite_set_of_edge]))(thm_tac (new_rewrite [] [])))) THEN (done_tac)));
335 ((((((use_arg_then2 ("CARD_EQ_0", [CARD_EQ_0]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("finite_set_of_edge", [finite_set_of_edge]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac))) THEN (move ["eq"])) THEN (((use_arg_then2 ("v_in2", [])) (disch_tac [])) THEN (clear_assumption "v_in2") THEN BETA_TAC) THEN ((((use_arg_then2 ("eq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("NOT_IN_EMPTY", [NOT_IN_EMPTY]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
336 (((repeat_tactic 1 9 (((use_arg_then2 ("h", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("w2_neq_v", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac)) THEN (move ["u"]) THEN (case THEN ALL_TAC) THEN (case THEN (move ["u_in"])) THEN (move ["u_neq_w'"]) THEN (move ["u_neq_v"]));
337 ((((fun arg_tac -> (fun arg_tac -> arg_tac (Arg_theorem (let_RULE azim_sum_sigma_fan))) (fun fst_arg -> (use_arg_then2 ("u_neq_v", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("w'_def", []))(thm_tac (new_rewrite [] [])))));
338 (((((fun arg_tac -> (fun arg_tac -> arg_tac (Arg_theorem (let_RULE azim_sum_sigma_fan))) (fun fst_arg -> (use_arg_then2 ("w2_neq_v", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("w'_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LE_LADD", [REAL_LE_LADD]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("h", []))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
339 (BETA_TAC THEN (move ["x"]) THEN (case THEN (move ["x_in"])) THEN (move ["x_neq_v"]));
340 ((((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("Fan.UNIQUE_SIGMA_FAN", [Fan.UNIQUE_SIGMA_FAN])) (fun fst_arg -> (use_arg_then2 ("fan2", [fan2])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("x_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN (DISCH_THEN apply_tac)) THEN (split_tac));
341 ((((use_arg_then2 ("x_neq_v", [])) (disch_tac [])) THEN (clear_assumption "x_neq_v") THEN ((use_arg_then2 ("contra", [contra])) (disch_tac [])) THEN (clear_assumption "contra") THEN (DISCH_THEN apply_tac) THEN (move ["eq2"])) THEN (((use_arg_then2 ("v_in2", [])) (disch_tac [])) THEN (clear_assumption "v_in2") THEN BETA_TAC) THEN (((((use_arg_then2 ("eq2", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("IN_SING", [IN_SING]))(thm_tac (new_rewrite [] []))))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))) THEN (done_tac));
342 ((fun arg_tac -> arg_tac (Arg_term (`sigma_fan _ V E w x`))) (term_tac (set_tac "u")));
343 ((fun arg_tac -> arg_tac (Arg_term (`~(u = w')`))) (term_tac (have_gen_tac [](move ["u_neq_w'"]))));
344 (((((use_arg_then2 ("u_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("w'_def", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (((use_arg_then2 ("x_neq_v", [])) (disch_tac [])) THEN (clear_assumption "x_neq_v") THEN ((use_arg_then2 ("contra", [contra])) (disch_tac [])) THEN (clear_assumption "contra") THEN (DISCH_THEN apply_tac) THEN (DISCH_THEN (fun snd_th -> (fun arg_tac -> (use_arg_then2 ("Fan.MONO_SIGMA_FAN", [Fan.MONO_SIGMA_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (thm_tac (match_mp_then snd_th MP_TAC)))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac))));
345 ((((use_arg_then2 ("x_in", [])) (disch_tac [])) THEN (clear_assumption "x_in") THEN ((use_arg_then2 ("vw_in1", [])) (disch_tac [])) THEN (clear_assumption "vw_in1") THEN BETA_TAC) THEN ((((use_arg_then2 ("dart1_switch", [dart1_switch]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("E2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("set_of_edge_delete_eq", [set_of_edge_delete_eq]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("IN_DELETE", [IN_DELETE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE_eq_in_dart1", [inE_eq_in_dart1]))(gsym_then (thm_tac (new_rewrite [] [])))))));
346 ((((((use_arg_then2 ("set_of_edge", [set_of_edge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] []))))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))) THEN (done_tac));
347 (((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("Fan.SIGMA_FAN", [Fan.SIGMA_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> (use_arg_then2 ("neq_sing", [])) (fun fst_arg -> (use_arg_then2 ("x", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC)) THEN (ANTS_TAC));
348 ((((use_arg_then2 ("x_in", [])) (disch_tac [])) THEN (clear_assumption "x_in") THEN BETA_TAC) THEN (((((use_arg_then2 ("E2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("set_of_edge_delete_eq", [set_of_edge_delete_eq]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("IN_DELETE", [IN_DELETE]))(thm_tac (new_rewrite [] []))))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))) THEN (done_tac));
349 (((((use_arg_then2 ("u_def", []))(thm_tac (new_rewrite [] [])))) THEN (move ["h"])) THEN ((((use_arg_then2 ("E2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("set_of_edge_delete_eq", [set_of_edge_delete_eq]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("IN_DELETE", [IN_DELETE]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("h", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("u_neq_w'", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac)));
350 ((BETA_TAC THEN (move ["w2"]) THEN (move ["w2_cond"])) THEN (((use_arg_then2 ("h", []))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
353 (* Lemma azim_dart_sum_delete *)
354 let azim_dart_sum_delete = Sections.section_proof ["v";"w"]
355 `v,w IN dart1_of_fan (V,E) /\ CARD (set_of_edge w V E) > 1
356 ==> azim_dart (V, E DELETE {w, sigma_fan (vec 0) V E w v}) (w,v)
357 = azim_dart (V,E) (w,v) + azim_dart (V,E) (w, sigma_fan (vec 0) V E w v)`
359 (BETA_TAC THEN (case THEN ((move ["vw_in1"]) THEN (move ["card_gt1"]))));
360 ((fun arg_tac -> arg_tac (Arg_term (`sigma_fan _ V E w v`))) (term_tac (set_tac "w'")));
361 ((fun arg_tac -> (use_arg_then2 ("fan_delete_edge", [fan_delete_edge])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`{w,w'}`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN (move ["fan2"])));
362 ((fun arg_tac -> arg_tac (Arg_term (`E DELETE _`))) (term_tac (set_tac "E2")));
363 ((((use_arg_then2 ("vw_in1", [])) (disch_tac [])) THEN BETA_TAC) THEN ((((use_arg_then2 ("dart1_switch", [dart1_switch]))(thm_tac (new_rewrite [] [])))) THEN (move ["wv_in1"])));
364 (((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("sigma_in_dart1", [sigma_in_dart1])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("wv_in1", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC)) THEN ((((use_arg_then2 ("w'_def", []))(thm_tac (new_rewrite [] [])))) THEN (move ["w'w_in1"])));
365 ((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("PAIR_IN_DART1_OF_FAN", [PAIR_IN_DART1_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("vw_in1", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN (case THEN ((move ["_"]) THEN (case THEN (move ["_"])) THEN (case THEN (move ["w_in"])) THEN (move ["v_in"])))));
366 ((fun arg_tac -> arg_tac (Arg_term (`~(set_of_edge w V E = {x})`))) (term_tac (have_gen_tac ["x"](move ["neq_sing"]))));
367 ((((use_arg_then2 ("card_gt1", [])) (disch_tac [])) THEN (clear_assumption "card_gt1") THEN ((use_arg_then2 ("contraL", [contraL])) (disch_tac [])) THEN (clear_assumption "contraL") THEN (DISCH_THEN apply_tac) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("CARD_SINGLETON", [CARD_SINGLETON]))(thm_tac (new_rewrite [] [])))) THEN (arith_tac) THEN (done_tac));
368 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("Fan.SIGMA_FAN", [Fan.SIGMA_FAN])) (fun fst_arg -> (fun arg_tac -> (use_arg_then2 ("neq_sing", [])) (fun fst_arg -> (use_arg_then2 ("v", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("v_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
369 ((((use_arg_then2 ("w'_def", []))(thm_tac (new_rewrite [] [])))) THEN ALL_TAC THEN (case THEN (move ["w'_in"])) THEN (case THEN (move ["w'_neq_v"])) THEN (move ["_"]));
370 ((fun arg_tac -> arg_tac (Arg_term (`CARD (set_of_edge w V E2) >= 1`))) (term_tac (have_gen_tac [](move ["card_ge1"]))));
371 ((((use_arg_then2 ("GE", [GE]))(thm_tac (new_rewrite [] [])))) THEN ((use_arg_then2 ("CARD_ATLEAST_1", [CARD_ATLEAST_1])) (thm_tac apply_tac)) THEN ((use_arg_then2 ("v", [])) (term_tac exists_tac)));
372 (((((use_arg_then2 ("finite_set_of_edge", [finite_set_of_edge]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("E2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("set_of_edge_delete_eq", [set_of_edge_delete_eq]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("IN_DELETE", [IN_DELETE]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
373 ((repeat_tactic 1 9 (((use_arg_then2 ("azim_dart_eq_azim_fan", [azim_dart_eq_azim_fan]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("dart_of_fan_eq", [dart_of_fan_eq]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("IN_UNION", [IN_UNION]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)));
374 (((((use_arg_then2 ("fan2", [fan2]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("andTb", [andTb]))(thm_tac (new_rewrite [] []))))) THEN (DISJ1_TAC));
375 ((((use_arg_then2 ("inE_eq_in_dart1", [inE_eq_in_dart1]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("E2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("IN_DELETE", [IN_DELETE]))(thm_tac (new_rewrite [] [])))) THEN (((fun arg_tac -> (use_arg_then2 ("inE_eq_in_dart1", [inE_eq_in_dart1])) (fun fst_arg -> (use_arg_then2 ("V", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("wv_in1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
376 ((((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL Geomdetail.PAIR_EQ_EXPAND)))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("w'_neq_v", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (simp_tac));
377 (((((fun arg_tac -> (use_arg_then2 ("PAIR_IN_DART1_OF_FAN_IMP_NOT_EQ", [PAIR_IN_DART1_OF_FAN_IMP_NOT_EQ])) (fun fst_arg -> (use_arg_then2 ("w'w_in1", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("PAIR_IN_DART1_OF_FAN_IMP_NOT_EQ", [PAIR_IN_DART1_OF_FAN_IMP_NOT_EQ])) (fun fst_arg -> (use_arg_then2 ("vw_in1", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
378 ((repeat_tactic 1 9 (((use_arg_then2 ("azim_fan", [azim_fan]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("card_gt1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("w'_def", []))(thm_tac (new_rewrite [] [])))));
379 ((THENL_ROT (-1)) (((fun arg_tac -> arg_tac (Arg_term (`CARD _ > 1`))) (disch_eq_tac "card_ineq2" [])) THEN case THEN (simp_tac) THEN (process_fst_eq_tac)));
380 (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`sigma_fan (vec 0) V E w w' = v`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))))));
381 ((((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL Local_lemmas1.AZIM_POS_IMP_SUM_2PI)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
382 ((((use_arg_then2 ("w'_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("azim_dart_eq_azim", [azim_dart_eq_azim]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("Hypermap_and_fan.AZIM_DART_POS", [Hypermap_and_fan.AZIM_DART_POS]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
383 (((((use_arg_then2 ("dart_of_fan_eq", [dart_of_fan_eq]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("IN_UNION", [IN_UNION]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
384 ((fun arg_tac -> arg_tac (Arg_term (`sigma_fan (vec 0) V E w w' = power_map_points sigma_fan (vec 0) V E w v 2`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))));
385 (((((use_arg_then2 ("SIGMA_FAN_POWER", [SIGMA_FAN_POWER]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("POWER_2", [POWER_2]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("w'_def", []))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
386 ((((use_arg_then2 ("Topology.ORDER_POWER_SIGMA_FAN", [Topology.ORDER_POWER_SIGMA_FAN]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("inE_eq_in_dart1", [inE_eq_in_dart1])) (fun fst_arg -> (use_arg_then2 ("V", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("wv_in1", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("fanV", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
387 ((((fun arg_tac -> (use_arg_then2 ("card_set_of_edge_delete", [card_set_of_edge_delete])) (fun fst_arg -> (use_arg_then2 ("w'w_in1", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("E2_def", []))(thm_tac (new_rewrite [] [])))));
388 ((((use_arg_then2 ("card_ge1", [])) (disch_tac [])) THEN (clear_assumption "card_ge1") THEN ((use_arg_then2 ("card_ineq2", [])) (disch_tac [])) THEN (clear_assumption "card_ineq2") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
389 ((((use_arg_then2 ("E2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("w'_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> arg_tac (Arg_theorem (let_RULE sigma_fan_delete1)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
390 ((((fun arg_tac -> arg_tac (Arg_theorem (let_RULE azim_sum_sigma_fan)))(gsym_then (thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("w'_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("vw_in1", []))(thm_tac (new_rewrite [] [])))));
391 ((((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("Fan.SIGMA_FAN", [Fan.SIGMA_FAN])) (fun fst_arg -> (fun arg_tac -> (use_arg_then2 ("neq_sing", [])) (fun fst_arg -> (use_arg_then2 ("w'", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("w'_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("andTb", [andTb]))(thm_tac (new_rewrite [] []))))));
392 ((fun arg_tac -> arg_tac (Arg_term (`sigma_fan (vec 0) V E w w' = power_map_points sigma_fan (vec 0) V E w v 2`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))));
393 (((((use_arg_then2 ("SIGMA_FAN_POWER", [SIGMA_FAN_POWER]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("POWER_2", [POWER_2]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("w'_def", []))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
394 ((((use_arg_then2 ("eq_sym", [eq_sym]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("Topology.key_lemma_cyclic_fan", [Topology.key_lemma_cyclic_fan]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("fanV", []))(thm_tac (new_rewrite [] [])))) THEN (((fun arg_tac -> (use_arg_then2 ("inE_eq_in_dart1", [inE_eq_in_dart1])) (fun fst_arg -> (use_arg_then2 ("V", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("wv_in1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
395 ((THENL_FIRST) (split_tac) ((arith_tac) THEN (done_tac)));
396 ((((use_arg_then2 ("w'_in", [])) (disch_tac [])) THEN (clear_assumption "w'_in") THEN BETA_TAC) THEN (((((use_arg_then2 ("set_of_edge", [set_of_edge]))(thm_tac (new_rewrite [1] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((fun arg_tac -> (use_arg_then2 ("inE_eq_in_dart1", [inE_eq_in_dart1])) (fun fst_arg -> (use_arg_then2 ("V", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["ww'_in1"])) THEN (move ["_"])));
397 ((((fun arg_tac -> (use_arg_then2 ("set_of_edge_delete_eq2", [set_of_edge_delete_eq2])) (fun fst_arg -> (use_arg_then2 ("ww'_in1", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("CARD_CLAUSES", [CARD_CLAUSES]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("finite_set_of_edge", [finite_set_of_edge]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("E2_def", []))(thm_tac (new_rewrite [] [])))));
398 ((((use_arg_then2 ("E2_def", []))(gsym_then (thm_tac (new_rewrite [1] []))))) THEN (((use_arg_then2 ("set_of_edge_delete_eq", [set_of_edge_delete_eq]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("IN_DELETE", [IN_DELETE]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
399 ((((use_arg_then2 ("card_ineq2", [])) (disch_tac [])) THEN (clear_assumption "card_ineq2") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
402 (* Finalization of the section Fan *)
403 let ys_fan_eq = Sections.finalize_theorem ys_fan_eq;;
404 let fan_delta_y_pos = Sections.finalize_theorem fan_delta_y_pos;;
405 let fan_delta_y_pos2 = Sections.finalize_theorem fan_delta_y_pos2;;
406 let fan_ups_x_pos = Sections.finalize_theorem fan_ups_x_pos;;
407 let dih_y_le_azim_dart = Sections.finalize_theorem dih_y_le_azim_dart;;
408 let azim_sum_sigma_fan = Sections.finalize_theorem azim_sum_sigma_fan;;
409 let fan_delete_edge = Sections.finalize_theorem fan_delete_edge;;
410 let set_of_edge_delete_eq = Sections.finalize_theorem set_of_edge_delete_eq;;
411 let set_of_edge_delete_eq2 = Sections.finalize_theorem set_of_edge_delete_eq2;;
412 let card_set_of_edge_delete = Sections.finalize_theorem card_set_of_edge_delete;;
413 let sigma_fan_delete1 = Sections.finalize_theorem sigma_fan_delete1;;
414 let azim_dart_sum_delete = Sections.finalize_theorem azim_dart_sum_delete;;
415 Sections.end_section "Fan";;
417 (* Section FullySurrounded *)
418 Sections.begin_section "FullySurrounded";;
419 (Sections.add_section_var (mk_var ("V", (`:real^3->bool`))));;
420 (Sections.add_section_var (mk_var ("E", (`:(real^3->bool)->bool`))));;
421 (Sections.add_section_hyp "fanV" (`FAN (vec 0,V,E)`));;
422 (Sections.add_section_hyp "f_surr" (`fully_surrounded (V,E)`));;
425 Sections.add_section_lemma "dartH" (Sections.section_proof []
426 `dart (hypermap_of_fan (V,E)) = dart_of_fan (V,E)`
428 ((((use_arg_then2 ("COMPONENTS_HYPERMAP_OF_FAN", [COMPONENTS_HYPERMAP_OF_FAN]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
432 Sections.add_section_lemma "dart1_eq" (Sections.section_proof []
433 `dart1_of_fan (V,E) = dart_of_fan (V,E)`
435 ((((use_arg_then2 ("fully_surrounded_dart_of_fan_eq", [fully_surrounded_dart_of_fan_eq]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
439 Sections.begin_section "Pack";;
440 (Sections.add_section_hyp "subV" (`V SUBSET ball_annulus`));;
441 (Sections.add_section_hyp "packV" (`packing V`));;
444 Sections.begin_section "PerimZ";;
445 (Sections.add_section_hyp "h_fan" (`lp_fan (V,E)`));;
446 (Sections.add_section_hyp "ineq1" ((hd (Ineq.getexact "5584033259")).ineq));;
447 (Sections.add_section_hyp "ineq2" ((hd (Ineq.getexact "6170936724")).ineq));;
448 (Sections.add_section_hyp "ineq3" ((hd (Ineq.getexact "5691615370")).ineq));;
451 let perimZ = Sections.section_proof ["d"]
452 `d IN darts_k 4 (hypermap_of_fan (V,E))
453 ==> &3 <= y4'_fan (V,E) d /\ &3 <= y4'_fan (V,E) (f_fan_pair_ext (V,E) d)
454 /\ y5_fan (V,E) d <= #2.52 /\ y6_fan d <= #2.52
455 /\ y8_fan (V,E) d <= #2.52 /\ y9_fan (V,E) d <= #2.52
456 ==> #8.472 <= y5_fan (V,E) (inverse (f_fan_pair_ext (V,E)) d)
457 + y6_fan (inverse (f_fan_pair_ext (V,E)) d)
458 + y5_fan (V,E) (f_fan_pair_ext (V,E) d)
459 + y6_fan (f_fan_pair_ext (V,E) d)`
461 (((use_arg_then2 ("d", [])) (disch_tac [])) THEN (clear_assumption "d") THEN case THEN (move ["v"]) THEN (move ["w"]) THEN (move ["vw_in4"]) THEN (move ["bounds"]));
462 ((((use_arg_then2 ("vw_in4", [])) (disch_tac [])) THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["vw_in"])) THEN (move ["_"])));
463 ((repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("dart4_y_invf_eq", [dart4_y_invf_eq])) (fun fst_arg -> (use_arg_then2 ("vw_in4", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("dart4_yf_eq", [dart4_yf_eq])) (fun fst_arg -> (use_arg_then2 ("vw_in4", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)));
464 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("Lp_details.LEMMA_5691615370", [Lp_details.LEMMA_5691615370])) (fun fst_arg -> (use_arg_then2 ("ineq1", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("ineq2", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("ineq3", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y4'_fan (V,E) (v,w)`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y9_fan (V,E) (v,w)`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan (v,w)`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y4'_fan (V,E) (f_fan_pair_ext (V,E) (v,w))`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) (v,w)`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y8_fan (V,E) (v,w)`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
465 (((((use_arg_then2 ("INEQ_ALT", [INEQ_ALT]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL ALL)))(thm_tac (new_rewrite [] []))))) THEN (simp_tac)) THEN (ANTS_TAC));
466 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`#3.0 = &3`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))))) ((arith_tac) THEN (done_tac)));
467 ((repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("y9_lo", [y9_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("vw_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y8_lo", [y8_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
468 (((repeat_tactic 1 9 (((use_arg_then2 ("y4'_hi", [y4'_hi]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("h_fan", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("andTb", [andTb]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("POWER_1", [POWER_1]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("f_fan_pair_ext_power_in_dart", [f_fan_pair_ext_power_in_dart]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
469 ((THENL_LAST) case ((arith_tac) THEN (done_tac)));
470 ((((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("fan_delta_y_pos2", [fan_delta_y_pos2])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("vw_in4", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
474 Sections.begin_section "Std";;
475 (Sections.add_section_hyp "std" (`E = ESTD V`));;
477 (* Lemma perimZ_std *)
478 let perimZ_std = Sections.section_proof ["d"]
479 `d IN darts_k 4 (hypermap_of_fan (V,E))
480 ==> &3 <= y4'_fan (V,E) d /\ &3 <= y4'_fan (V,E) (f_fan_pair_ext (V,E) d)
481 ==> #8.472 <= y5_fan (V,E) (inverse (f_fan_pair_ext (V,E)) d)
482 + y6_fan (inverse (f_fan_pair_ext (V,E)) d)
483 + y5_fan (V,E) (f_fan_pair_ext (V,E) d)
484 + y6_fan (f_fan_pair_ext (V,E) d)`
486 ((BETA_TAC THEN (move ["d_in4"]) THEN (move ["bounds"])) THEN (((use_arg_then2 ("d_in4", [])) (disch_tac [])) THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["d_in"])) THEN (move ["_"])));
487 (((((fun arg_tac -> (use_arg_then2 ("perimZ", [perimZ])) (fun fst_arg -> (use_arg_then2 ("d_in4", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("y5_hi_std2", [y5_hi_std2]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_hi_std2", [y6_hi_std2])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y8_hi_std", [y8_hi_std]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y9_hi_std", [y9_hi_std]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
490 (* Finalization of the section Std *)
491 let perimZ_std = Sections.finalize_theorem perimZ_std;;
492 Sections.end_section "Std";;
494 (* Finalization of the section PerimZ *)
495 let perimZ = Sections.finalize_theorem perimZ;;
496 let perimZ_std = Sections.finalize_theorem perimZ_std;;
497 Sections.end_section "PerimZ";;
499 (* Section Yapex_sup_flat *)
500 Sections.begin_section "Yapex_sup_flat";;
501 (Sections.add_section_hyp "ineq1" ((hd (Ineq.getexact "6170936724")).ineq));;
502 (Sections.add_section_hyp "ineq_a" ((hd (Ineq.getexact "8673686234 a")).ineq));;
503 (Sections.add_section_hyp "ineq_b" ((hd (Ineq.getexact "8673686234 b")).ineq));;
504 (Sections.add_section_hyp "ineq_c" ((hd (Ineq.getexact "8673686234 c")).ineq));;
506 (* Lemma yapex_sup_flat_fan *)
507 let yapex_sup_flat_fan = Sections.section_proof ["d"]
509 inverse (f_fan_pair_ext (V,E)) (e_fan_pair_ext (V,E) (f_fan_pair_ext (V,E) d)) in
510 d IN darts_k 3 (hypermap_of_fan (V,E))
511 /\ CARD (face (hypermap_of_fan (V,E)) d2) = 3
512 /\ y6_fan d <= #2.52 /\ y5_fan (V,E) d <= #2.52
513 /\ y6_fan d2 <= #2.52 /\ y5_fan (V,E) d2 <= #2.52
514 /\ y4_fan (V,E) d <= ye_fan (FST d, FST d2)
515 /\ sqrt8 <= y4_fan (V,E) d /\ y4_fan (V,E) d <= &3
516 ==> y5_fan (V,E) d + y6_fan d + y5_fan (V,E) d2 + y6_fan d2 - #7.99
517 >= #2.75 * (y4_fan (V,E) d - sqrt8)`
519 ((repeat_tactic 1 9 ((CONV_TAC let_CONV))) THEN (((use_arg_then2 ("d", [])) (disch_tac [])) THEN (clear_assumption "d") THEN case THEN (move ["v"]) THEN (move ["w"]) THEN (case THEN (move ["vw_in3"])) THEN (case THEN (move ["card_f2"])) THEN (move ["bounds"])));
520 ((fun arg_tac -> arg_tac (Arg_term (`inverse _1 _2`))) (term_tac (set_tac "d2")));
521 ((fun arg_tac -> arg_tac (Arg_term (`sigma_fan (vec 0) V E v w`))) (term_tac (set_tac "w'")));
522 ((fun arg_tac -> arg_tac (Arg_term (`sigma_fan (vec 0) V E w' w`))) (term_tac (set_tac "u")));
523 ((((use_arg_then2 ("vw_in3", [])) (disch_tac [])) THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["vw_in"])) THEN (move ["card_f"])));
524 ((((use_arg_then2 ("vw_in", [])) (disch_tac [])) THEN BETA_TAC) THEN ((((use_arg_then2 ("dart1_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (move ["vw_in1"])));
525 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("f_fan_pair3", [f_fan_pair3])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("card_f", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("vw_in1", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
526 ((((use_arg_then2 ("w'_def", []))(thm_tac (new_rewrite [] [])))) THEN (move ["f_eq1"]));
527 ((fun arg_tac -> arg_tac (Arg_term (`d2 = u,w'`))) (term_tac (have_gen_tac [](move ["d2_eq"]))));
528 ((((use_arg_then2 ("d2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("f_fan_pair_ext", [f_fan_pair_ext]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("vw_in1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("f_eq1", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("e_fan_pair_ext", [e_fan_pair_ext]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("f_eq1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("e_fan_pair", [e_fan_pair]))(thm_tac (new_rewrite [] [])))));
529 (((((use_arg_then2 ("INVERSE_F_FAN_PAIR_EXT_EXPLICIT", [INVERSE_F_FAN_PAIR_EXT_EXPLICIT]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("res", [res]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dart1_switch", [dart1_switch]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("f_eq1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("u_def", []))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
530 ((fun arg_tac -> arg_tac (Arg_term (`d2 IN dart1_of_fan (V,E)`))) (term_tac (have_gen_tac [](move ["d2_in1"]))));
531 ((((use_arg_then2 ("d2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> (use_arg_then2 ("INVERSE_F_IN_DART1_OF_FAN", [INVERSE_F_IN_DART1_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))));
532 (((repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("COMPONENTS_HYPERMAP_OF_FAN", [COMPONENTS_HYPERMAP_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (((use_arg_then2 ("dart1_eq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("lemma_dart_invariant", [lemma_dart_invariant]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
533 ((((use_arg_then2 ("d2_in1", [])) (disch_tac [])) THEN BETA_TAC) THEN ((((use_arg_then2 ("dart1_eq", []))(thm_tac (new_rewrite [] [])))) THEN (move ["d2_in"])));
534 ((fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d2 = dist (w, u)`))) (term_tac (have_gen_tac [](move ["y5_eq2"]))));
535 ((((use_arg_then2 ("y5_fan", [y5_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("d2_eq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("pair_expand", [pair_expand]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("INVERSE_F_FAN_PAIR_EXT_EXPLICIT", [INVERSE_F_FAN_PAIR_EXT_EXPLICIT]))(thm_tac (new_rewrite [2] [])))) THEN ((TRY done_tac)));
536 (((((use_arg_then2 ("res", [res]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("d2_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("d2_in1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("d2_eq", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("d2_eq", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (congr_tac (`dist (_1, u)`)));
537 ((fun arg_tac -> arg_tac (Arg_term (`inverse (f_fan_pair_ext (V,E)) d2 = (f_fan_pair_ext (V,E) POWER 2) d2`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))));
538 ((((fun arg_tac -> (fun arg_tac -> arg_tac (Arg_theorem (let_RULE f_fan_pair_ext_power_inverse))) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("card_f2", []))(thm_tac (new_rewrite [] [])))));
539 (((((use_arg_then2 ("dart1_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("d2_in1", []))(thm_tac (new_rewrite [] []))))) THEN (arith_tac) THEN (done_tac));
540 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`3 - 2 = 1`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))))) ((arith_tac) THEN (done_tac)));
541 ((((use_arg_then2 ("POWER_1", [POWER_1]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
542 ((((use_arg_then2 ("POWER_2", [POWER_2]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("d2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> (use_arg_then2 ("PERMUTES_INVERSES", [PERMUTES_INVERSES])) (fun fst_arg -> (fun arg_tac -> (use_arg_then2 ("F_FAN_PAIR_EXT_PERMUTES_DART_OF_FAN", [F_FAN_PAIR_EXT_PERMUTES_DART_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))));
543 ((repeat_tactic 1 9 (((use_arg_then2 ("f_fan_pair_ext", [f_fan_pair_ext]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("vw_in1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("f_eq1", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("e_fan_pair_ext", [e_fan_pair_ext]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("f_eq1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("e_fan_pair", [e_fan_pair]))(thm_tac (new_rewrite [] [])))));
544 (((((use_arg_then2 ("dart1_switch", [dart1_switch]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("f_eq1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("f_fan_pair", [f_fan_pair]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
545 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("Lp_details.LEMMA_8673686234", [Lp_details.LEMMA_8673686234])) (fun fst_arg -> (use_arg_then2 ("ineq1", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("ineq_a", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("ineq_b", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("ineq_c", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y4_fan (V,E) (v,w)`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d2`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan (v,w)`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`ye_fan (v,u)`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) (v,w)`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan d2`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
546 (((((use_arg_then2 ("INEQ_ALT", [INEQ_ALT]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL ALL)))(thm_tac (new_rewrite [] []))))) THEN (simp_tac)) THEN (ANTS_TAC));
547 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`#3.0 = &3 /\ &2 * h0 = #2.52`))) (term_tac (have_gen_tac [](move ["eqs"])))) ((((use_arg_then2 ("h0", [h0]))(thm_tac (new_rewrite [] [])))) THEN (arith_tac) THEN (done_tac)));
548 ((repeat_tactic 1 9 (((use_arg_then2 ("eqs", []))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("vw_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d2_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("andTb", [andTb]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("andbT", [andbT]))(thm_tac (new_rewrite [] [])))));
549 ((THENL) (split_tac) [(((use_arg_then2 ("REAL_LE_TRANS", [REAL_LE_TRANS])) (disch_tac [])) THEN (clear_assumption "REAL_LE_TRANS") THEN (DISCH_THEN apply_tac)); ((((use_arg_then2 ("ye_fan", [ye_fan]))(thm_tac (new_rewrite [] [])))) THEN ((use_arg_then2 ("DIST_TRIANGLE_LE", [DIST_TRIANGLE_LE])) (thm_tac apply_tac)))]);
550 (((fun arg_tac -> arg_tac (Arg_term (`y4_fan (V,E) (v,w)`))) (term_tac exists_tac)) THEN (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] [])))));
551 ((((use_arg_then2 ("bounds", [])) (disch_tac [])) THEN (clear_assumption "bounds") THEN BETA_TAC) THEN (((((use_arg_then2 ("d2_eq", []))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("FST", [FST]))(thm_tac (new_rewrite [] [])))))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))) THEN (done_tac));
552 (((fun arg_tac -> arg_tac (Arg_term (`vec 0`))) (term_tac exists_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("DIST_0", [DIST_0]))(thm_tac (new_rewrite [] []))))));
553 ((THENL_FIRST) (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`v IN ball_annulus /\ u IN ball_annulus`))) (term_tac (have_gen_tac []ALL_TAC)))) ((repeat_tactic 1 9 (((use_arg_then2 ("Fnjlbxs.in_ball_annulus", [Fnjlbxs.in_ball_annulus]))(thm_tac (new_rewrite [] []))))) THEN (arith_tac) THEN (done_tac)));
554 ((((use_arg_then2 ("subV", [])) (disch_tac [])) THEN (clear_assumption "subV") THEN BETA_TAC) THEN ((((use_arg_then2 ("SUBSET", [SUBSET]))(thm_tac (new_rewrite [] [])))) THEN (move ["subV"])) THEN ((repeat_tactic 1 9 (((use_arg_then2 ("subV", []))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac))));
555 ((((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("PAIR_IN_DART_OF_FAN", [PAIR_IN_DART_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("vw_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
556 ((((use_arg_then2 ("d2_in", [])) (disch_tac [])) THEN (clear_assumption "d2_in") THEN BETA_TAC) THEN ((((use_arg_then2 ("d2_eq", []))(thm_tac (new_rewrite [] [])))) THEN (DISCH_THEN (fun snd_th -> (fun arg_tac -> (use_arg_then2 ("PAIR_IN_DART_OF_FAN", [PAIR_IN_DART_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (thm_tac (match_mp_then snd_th MP_TAC)))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))) THEN (done_tac));
557 ((THENL_FIRST) case ((arith_tac) THEN (done_tac)));
558 ((THENL_LAST) case ((((use_arg_then2 ("real_lt", [real_lt]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("bounds", [])) (disch_tac [])) THEN (clear_assumption "bounds") THEN BETA_TAC) THEN (((((use_arg_then2 ("d2_eq", []))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("FST", [FST]))(thm_tac (new_rewrite [] [])))))) THEN (((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))) THEN (done_tac)));
559 ((((use_arg_then2 ("contraLR", [contraLR])) (disch_tac [])) THEN (clear_assumption "contraLR") THEN (DISCH_THEN apply_tac) THEN (move ["_"])) THEN (((use_arg_then2 ("REAL_NOT_LT", [REAL_NOT_LT]))(thm_tac (new_rewrite [] [])))));
560 ((((use_arg_then2 ("delta_y", [delta_y]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("REAL_POW_2", [REAL_POW_2]))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (((use_arg_then2 ("DELTA_EQ_DELTA_X", [DELTA_EQ_DELTA_X]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("y5_eq2", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("ye_fan", [ye_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("d2_eq", []))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("y6_fan", [y6_fan]))(thm_tac (new_rewrite [] []))))));
561 ((((use_arg_then2 ("y4_fan", [y4_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("y5_fan", [y5_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("INVERSE_F_FAN_PAIR_EXT_EXPLICIT", [INVERSE_F_FAN_PAIR_EXT_EXPLICIT]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("res", [res]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("vw_in1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("w'_def", []))(thm_tac (new_rewrite [] [])))));
562 ((((use_arg_then2 ("f_fan_pair_ext", [f_fan_pair_ext]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("vw_in1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("f_eq1", []))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("DIST_SYM", [DIST_SYM])) (fun fst_arg -> (use_arg_then2 ("v", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> (use_arg_then2 ("DIST_SYM", [DIST_SYM])) (fun fst_arg -> (use_arg_then2 ("u", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))));
563 ((((use_arg_then2 ("Collect_geom.DELTA_POS_4POINTS", [Collect_geom.DELTA_POS_4POINTS]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
565 (Sections.add_section_var (mk_var ("g", (`:num#num -> real^3#real^3`))));;
566 (Sections.add_section_var (mk_var ("h", (`:num -> real^3`))));;
567 (Sections.add_section_var (mk_var ("L", (`:((num)list)list`))));;
568 (Sections.add_section_hyp "goodL" (`good_list L`));;
569 (Sections.add_section_hyp "g_iso" (`hyp_iso g (hypermap_of_list L, hypermap_of_fan (V,E))`));;
570 (Sections.add_section_hyp "g_eq" (`!d. g d = h (FST d), h (SND d)`));;
572 (* Lemma yapex_sup_flat_list *)
573 let yapex_sup_flat_list = Sections.section_proof []
574 `ALL (\d. let d2 = inverse (f_list_ext L) (e_list (f_list_ext L d)) in
575 LENGTH (find_face L d2) = 3
576 /\ ye_list g d <= #2.52 /\ ye_list g (inverse (f_list_ext L) d) <= #2.52
577 /\ ye_list g d2 <= #2.52 /\ ye_list g (f_list_ext L (e_list (f_list_ext L d))) <= #2.52
578 /\ ye_list g (f_list_ext L d) <= ye_list g (FST d, FST d2)
579 /\ sqrt8 <= ye_list g (f_list_ext L d) /\ ye_list g (f_list_ext L d) <= &3
580 ==> y5_list (g,V,E) d + y6_list g d + y5_list (g,V,E) d2 + y6_list g d2 - #7.99
581 >= #2.75 * (y4_list (g,V,E) d - sqrt8)) (list_of_darts3 L)`
583 (((((use_arg_then2 ("ALL_MEM", [ALL_MEM]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (move ["d"]) THEN (move ["mem_d"]) THEN (simp_tac)) THEN (CONV_TAC let_CONV) THEN (BETA_TAC THEN (case THEN (move ["size_f"])) THEN (move ["cond"])));
584 ((fun arg_tac -> (use_arg_then2 ("COMPONENTS_HYPERMAP_OF_FAN", [COMPONENTS_HYPERMAP_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN (move ["hypH"])));
585 ((fun arg_tac -> (use_arg_then2 ("components_hypermap_of_list", [components_hypermap_of_list])) (fun fst_arg -> (use_arg_then2 ("goodL", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN (move ["hypL"])));
586 ((((use_arg_then2 ("mem_d", [])) (disch_tac [])) THEN BETA_TAC) THEN ((((use_arg_then2 ("IN_SET_OF_LIST", [IN_SET_OF_LIST]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("darts3_eq_list_of_darts3", [darts3_eq_list_of_darts3]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac))));
587 (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN ((move ["d_in"]) THEN (move ["card_f"]))));
588 ((fun arg_tac -> (fun arg_tac -> arg_tac (Arg_theorem (let_RULE yapex_sup_flat_fan))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`g d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
589 ((fun arg_tac -> arg_tac (Arg_term (`inverse (f_list_ext L) _`))) (term_tac (set_tac "d2")));
590 ((fun arg_tac -> arg_tac (Arg_term (`f_list_ext L d`))) (term_tac (set_tac "d'")));
591 ((fun arg_tac -> arg_tac (Arg_term (`d' IN darts_of_list L`))) (term_tac (have_gen_tac [](move ["d'_in"]))));
592 (((((use_arg_then2 ("d'_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("hypL", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (((use_arg_then2 ("lemma_dart_invariant", [lemma_dart_invariant]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
593 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`e_list_ext L d' = e_list d'`))) (term_tac (have_gen_tac [](move ["e_list_eq"])))) (((((use_arg_then2 ("e_list_ext", [e_list_ext]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("res", [res]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("hypL", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (done_tac)));
594 ((fun arg_tac -> arg_tac (Arg_term (`d2 IN dart (hypermap_of_list L)`))) (term_tac (have_gen_tac [](move ["d2_in"]))));
595 (((((use_arg_then2 ("d2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("e_list_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("hypL", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (((use_arg_then2 ("lemma_dart_inveriant_under_inverse_maps", [lemma_dart_inveriant_under_inverse_maps]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("lemma_dart_invariant", [lemma_dart_invariant]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
596 ((fun arg_tac -> arg_tac (Arg_term (`inverse _1 _2`))) (term_tac (set_tac "x2")));
597 ((fun arg_tac -> arg_tac (Arg_term (`x2 = g d2`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))));
598 ((((use_arg_then2 ("x2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("hypH", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("hyp_iso_comm", [hyp_iso_comm])) (fun fst_arg -> (use_arg_then2 ("g_iso", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)));
599 (((((fun arg_tac -> (use_arg_then2 ("hyp_iso_inverse_comm", [hyp_iso_inverse_comm])) (fun fst_arg -> (use_arg_then2 ("g_iso", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("lemma_dart_invariant", [lemma_dart_invariant]))(thm_tac (new_rewrite [] [])))))) THEN (done_tac));
600 (((use_arg_then2 ("x2_def", [])) (disch_tac [])) THEN (clear_assumption "x2_def") THEN BETA_TAC THEN (move ["_"]));
601 (((repeat_tactic 1 9 (((use_arg_then2 ("list_defs_th", [list_defs_th]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))))) THEN (DISCH_THEN apply_tac));
602 ((fun arg_tac -> arg_tac (Arg_term (`CARD (face (hypermap_of_fan (V,E)) (g d2)) = 3`))) (term_tac (have_gen_tac [](move ["card_f2"]))));
603 ((((fun arg_tac -> (use_arg_then2 ("hyp_iso_card_components", [hyp_iso_card_components])) (fun fst_arg -> (use_arg_then2 ("g_iso", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(gsym_then (thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("card_face_of_list", [card_face_of_list]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("Seq.size", [Seq.size]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)));
604 (((((use_arg_then2 ("IN_SET_OF_LIST", [IN_SET_OF_LIST]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("darts_of_list", [darts_of_list]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("hypL", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (done_tac));
605 ((((use_arg_then2 ("card_f2", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((fun arg_tac -> (use_arg_then2 ("hyp_iso_dart", [hyp_iso_dart])) (fun fst_arg -> (use_arg_then2 ("g_iso", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("hyp_iso_card_components", [hyp_iso_card_components])) (fun fst_arg -> (use_arg_then2 ("g_iso", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(gsym_then (thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("card_f", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
606 ((((use_arg_then2 ("cond", [])) (disch_tac [])) THEN (clear_assumption "cond") THEN BETA_TAC) THEN (((repeat_tactic 1 9 (((use_arg_then2 ("list_defs_th", [list_defs_th]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))))) THEN ALL_TAC THEN (move ["cond"])));
607 (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) (g d2) = ye_fan (g (f_list_ext L (e_list d')))`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))))));
608 ((repeat_tactic 1 9 (((use_arg_then2 ("y6_fan", [y6_fan]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("y5_fan", [y5_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("y4_fan", [y4_fan]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("ye_fan", [ye_fan]))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (((use_arg_then2 ("hypH", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> (use_arg_then2 ("hyp_iso_inverse_comm", [hyp_iso_inverse_comm])) (fun fst_arg -> (use_arg_then2 ("g_iso", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("hypL", []))(thm_tac (new_rewrite [] [])))));
609 ((repeat_tactic 1 9 (((use_arg_then2 ("cond", []))(thm_tac (new_rewrite [] []))))) THEN (simp_tac) THEN (((fun arg_tac -> (use_arg_then2 ("hyp_iso_comm", [hyp_iso_comm])) (fun fst_arg -> (use_arg_then2 ("g_iso", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("hypL", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("d'_def", []))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("cond", []))(thm_tac (new_rewrite [] []))))) THEN (simp_tac));
610 ((THENL_FIRST) (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`FST (g d), FST (g d2) = g (FST d, FST d2)`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))))) ((ALL_TAC) THEN (done_tac)));
611 ((repeat_tactic 1 9 (((use_arg_then2 ("g_eq", []))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
612 (((use_arg_then2 ("y5_fan", [y5_fan]))(thm_tac (new_rewrite [] []))));
613 ((fun arg_tac -> arg_tac (Arg_term (`inverse (f_fan_pair_ext (V,E)) (g d2) = (f_fan_pair_ext (V,E) POWER 2) (g d2)`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))));
614 ((((fun arg_tac -> (use_arg_then2 ("f_fan_pair_ext_power_inverse", [f_fan_pair_ext_power_inverse])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("card_f2", []))(thm_tac (new_rewrite [] [])))));
615 (((((use_arg_then2 ("hypH", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> (use_arg_then2 ("hyp_iso_dart", [hyp_iso_dart])) (fun fst_arg -> (use_arg_then2 ("g_iso", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac))) THEN (arith_tac) THEN (done_tac));
616 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`3 - 2 = 1`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] []))))))) ((arith_tac) THEN (done_tac)));
617 ((((use_arg_then2 ("POWER_1", [POWER_1]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
618 ((((use_arg_then2 ("hypH", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> (use_arg_then2 ("hyp_iso_comm_power", [hyp_iso_comm_power])) (fun fst_arg -> (use_arg_then2 ("g_iso", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("d2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("hypL", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("POWER_2", [POWER_2]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))));
619 (((((fun arg_tac -> (use_arg_then2 ("PERMUTES_INVERSES", [PERMUTES_INVERSES])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`darts_of_list L`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("hypL", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("face_map_and_darts", [face_map_and_darts]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("ye_fan", [ye_fan]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
622 (* Finalization of the section Yapex_sup_flat *)
623 let yapex_sup_flat_fan = Sections.finalize_theorem yapex_sup_flat_fan;;
624 let yapex_sup_flat_list = Sections.finalize_theorem yapex_sup_flat_list;;
625 Sections.end_section "Yapex_sup_flat";;
627 (* Section Std3_small *)
628 Sections.begin_section "Std3_small";;
630 (* Lemma extra_ineqs_std3_small *)
631 let extra_ineqs_std3_small = Sections.section_proof ["d"]
632 `d IN darts_k 3 (hypermap_of_fan (V,E))
633 ==> y4_fan (V,E) d + y5_fan (V,E) d + y6_fan d <= #6.25
634 ==> y4_fan (V,E) d <= #2.25 /\ y5_fan (V,E) d <= #2.25 /\ y6_fan d <= #2.25`
636 (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["d_in"])) THEN (move ["_"]));
637 ((THENL_FIRST) (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`&2 <= y4_fan (V,E) d /\ &2 <= y5_fan (V,E) d /\ &2 <= y6_fan d`))) (term_tac (have_gen_tac []ALL_TAC)))) ((arith_tac) THEN (done_tac)));
638 (((((use_arg_then2 ("y4_lo", [y4_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
641 (* Finalization of the section Std3_small *)
642 let extra_ineqs_std3_small = Sections.finalize_theorem extra_ineqs_std3_small;;
643 Sections.end_section "Std3_small";;
645 (* Section Std3_big *)
646 Sections.begin_section "Std3_big";;
648 (* Lemma extra_ineq_std3_big *)
649 let extra_ineq_std3_big = Sections.section_proof ["d"]
650 `d IN darts_k 3 (hypermap_of_fan (V,E))
651 ==> #2.25 <= ye_fan d
652 ==> #6.25 <= y4_fan (V,E) d + y5_fan (V,E) d + y6_fan d`
654 (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["d_in"])) THEN (move ["_"]));
655 (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`&2 <= y4_fan (V,E) d /\ &2 <= y5_fan (V,E) d /\ &2 <= y6_fan d`))) (term_tac (have_gen_tac []ALL_TAC))));
656 (((((use_arg_then2 ("y6_fan", [y6_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("ye_fan", [ye_fan]))(thm_tac (new_rewrite [] []))))) THEN (arith_tac) THEN (done_tac));
657 (((((use_arg_then2 ("y4_lo", [y4_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
661 Sections.begin_section "Ineq77";;
662 (Sections.add_section_hyp "ineq" ((hd (Ineq.getexact "8611785756")).ineq));;
665 let ineq77 = Sections.section_proof ["d"]
666 `d IN darts_k 3 (hypermap_of_fan (V,E))
667 ==> y1_fan d <= #2.18 /\ y2_fan d <= #2.18 /\ y3_fan (V,E) d <= #2.18
668 /\ y4_fan (V,E) d <= #2.52 /\ y5_fan (V,E) d <= #2.52 /\ y6_fan d <= #2.52
669 /\ #6.25 <= y4_fan (V,E) d + y5_fan (V,E) d + y6_fan d
670 ==> (sol_fan (V,E) (face (hypermap_of_fan (V,E)) d) - #0.589)
671 + #0.24 * (y1_fan d + y2_fan d + y3_fan (V,E) d - #6.0)
672 - #0.16 * (y4_fan (V,E) d + y5_fan (V,E) d + y6_fan d - #6.25) >= &0`
674 ((BETA_TAC THEN (move ["d_in3"]) THEN (move ["bounds"])) THEN ((((use_arg_then2 ("real_ge", [real_ge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LT_IMP_LE", [REAL_LT_IMP_LE]))(thm_tac (new_rewrite [] []))))));
675 ((fun arg_tac -> arg_tac (Arg_term (`dart1_of_fan (V,E) = dart_of_fan (V,E)`))) (term_tac (have_gen_tac [](move ["dart1_eq"]))));
676 ((((use_arg_then2 ("fully_surrounded_dart_of_fan_eq", [fully_surrounded_dart_of_fan_eq]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
677 ((((use_arg_then2 ("d_in3", [])) (disch_tac [])) THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["d_in"])) THEN (move ["_"])));
678 ((((use_arg_then2 ("dart3_sol_fan_eq_sol", [dart3_sol_fan_eq_sol]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
679 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("ineq", [ineq])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y1_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y2_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y3_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y4_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
680 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`#0.0 = &0 /\ #2.0 = &2 /\ #8.0 = &8 /\ #3.0 = &3`))) (term_tac (have_gen_tac [](move ["eqs"])))) ((arith_tac) THEN (done_tac)));
681 (((((use_arg_then2 ("Ineq.dart_std3_big_200_218", [Ineq.dart_std3_big_200_218]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("eqs", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("INEQ_ALT", [INEQ_ALT]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL ALL)))(thm_tac (new_rewrite [] []))))) THEN (simp_tac)) THEN (ANTS_TAC));
682 (((repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y4_lo", [y4_lo]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
683 (((((use_arg_then2 ("real_lt", [real_lt]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("real_gt", [real_gt]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
687 Sections.begin_section "Std";;
688 (Sections.add_section_hyp "std" (`E = ESTD V`));;
690 (* Lemma ineq77_std *)
691 let ineq77_std = Sections.section_proof ["d"]
692 `d IN darts_k 3 (hypermap_of_fan (V,E))
693 ==> y1_fan d <= #2.18 /\ y2_fan d <= #2.18 /\ y3_fan (V,E) d <= #2.18
694 /\ #6.25 <= y4_fan (V,E) d + y5_fan (V,E) d + y6_fan d
695 ==> (sol_fan (V,E) (face (hypermap_of_fan (V,E)) d) - #0.589)
696 + #0.24 * (y1_fan d + y2_fan d + y3_fan (V,E) d - #6.0)
697 - #0.16 * (y4_fan (V,E) d + y5_fan (V,E) d + y6_fan d - #6.25) >= &0`
699 ((BETA_TAC THEN (move ["d_in3"]) THEN (move ["bounds"])) THEN (((fun arg_tac -> (use_arg_then2 ("ineq77", [ineq77])) (fun fst_arg -> (use_arg_then2 ("d_in3", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN (DISCH_THEN apply_tac)));
700 ((((use_arg_then2 ("d_in3", [])) (disch_tac [])) THEN (clear_assumption "d_in3") THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["d_in"])) THEN (move ["_"])));
701 (((repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("y4_hi_std2", [y4_hi_std2]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_hi_std2", [y5_hi_std2]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_hi_std2", [y6_hi_std2])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
704 (* Finalization of the section Std *)
705 let ineq77_std = Sections.finalize_theorem ineq77_std;;
706 Sections.end_section "Std";;
708 (* Finalization of the section Ineq77 *)
709 let ineq77 = Sections.finalize_theorem ineq77;;
710 let ineq77_std = Sections.finalize_theorem ineq77_std;;
711 Sections.end_section "Ineq77";;
714 Sections.begin_section "Ineq89";;
715 (Sections.add_section_hyp "ineq" ((hd (Ineq.getexact "6224332984")).ineq));;
718 let ineq89 = Sections.section_proof ["d"]
719 `d IN darts_k 3 (hypermap_of_fan (V,E))
720 ==> y4_fan (V,E) d <= #2.52 /\ y5_fan (V,E) d <= #2.52 /\ y6_fan d <= #2.52
721 /\ #6.25 <= y4_fan (V,E) d + y5_fan (V,E) d + y6_fan d
722 ==> (sol_fan (V,E) (face (hypermap_of_fan (V,E)) d) - #0.589)
723 + #0.39 * (y1_fan d + y2_fan d + y3_fan (V,E) d - #6.0)
724 - #0.235 * (y4_fan (V,E) d + y5_fan (V,E) d + y6_fan d - #6.25) >= &0`
726 ((BETA_TAC THEN (move ["d_in3"]) THEN (move ["bounds"])) THEN ((((use_arg_then2 ("real_ge", [real_ge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LT_IMP_LE", [REAL_LT_IMP_LE]))(thm_tac (new_rewrite [] []))))));
727 ((fun arg_tac -> arg_tac (Arg_term (`dart1_of_fan (V,E) = dart_of_fan (V,E)`))) (term_tac (have_gen_tac [](move ["dart1_eq"]))));
728 ((((use_arg_then2 ("fully_surrounded_dart_of_fan_eq", [fully_surrounded_dart_of_fan_eq]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
729 ((((use_arg_then2 ("d_in3", [])) (disch_tac [])) THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["d_in"])) THEN (move ["_"])));
730 ((((use_arg_then2 ("dart3_sol_fan_eq_sol", [dart3_sol_fan_eq_sol]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
731 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("ineq", [ineq])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y1_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y2_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y3_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y4_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
732 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`#0.0 = &0 /\ #2.0 = &2 /\ #8.0 = &8 /\ #3.0 = &3`))) (term_tac (have_gen_tac [](move ["eqs"])))) ((arith_tac) THEN (done_tac)));
733 (((((use_arg_then2 ("Ineq.dart_std3_big", [Ineq.dart_std3_big]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("Ineq.dart_std3", [Ineq.dart_std3]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("eqs", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("INEQ_ALT", [INEQ_ALT]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL ALL)))(thm_tac (new_rewrite [] []))))) THEN (simp_tac)) THEN (ANTS_TAC));
734 ((repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y4_lo", [y4_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
735 (((((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
736 (((((use_arg_then2 ("real_lt", [real_lt]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("real_gt", [real_gt]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
740 Sections.begin_section "Std";;
741 (Sections.add_section_hyp "std" (`E = ESTD V`));;
743 (* Lemma ineq89_std *)
744 let ineq89_std = Sections.section_proof ["d"]
745 `d IN darts_k 3 (hypermap_of_fan (V,E))
746 ==> #6.25 <= y4_fan (V,E) d + y5_fan (V,E) d + y6_fan d
747 ==> (sol_fan (V,E) (face (hypermap_of_fan (V,E)) d) - #0.589)
748 + #0.39 * (y1_fan d + y2_fan d + y3_fan (V,E) d - #6.0)
749 - #0.235 * (y4_fan (V,E) d + y5_fan (V,E) d + y6_fan d - #6.25) >= &0`
751 ((BETA_TAC THEN (move ["d_in3"]) THEN (move ["bounds"])) THEN (((fun arg_tac -> (use_arg_then2 ("ineq89", [ineq89])) (fun fst_arg -> (use_arg_then2 ("d_in3", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN (DISCH_THEN apply_tac)));
752 ((((use_arg_then2 ("d_in3", [])) (disch_tac [])) THEN (clear_assumption "d_in3") THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["d_in"])) THEN (move ["_"])));
753 (((repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("y4_hi_std2", [y4_hi_std2]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_hi_std2", [y5_hi_std2]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_hi_std2", [y6_hi_std2])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
756 (* Finalization of the section Std *)
757 let ineq89_std = Sections.finalize_theorem ineq89_std;;
758 Sections.end_section "Std";;
760 (* Finalization of the section Ineq89 *)
761 let ineq89 = Sections.finalize_theorem ineq89;;
762 let ineq89_std = Sections.finalize_theorem ineq89_std;;
763 Sections.end_section "Ineq89";;
766 Sections.begin_section "Ineq90";;
767 (Sections.add_section_hyp "h_tau" (`lp_tau (V,E)`));;
768 (Sections.add_section_hyp "ineq" ((hd (Ineq.getexact "7761782916")).ineq));;
771 let ineq90 = Sections.section_proof ["d"]
772 `d IN darts_k 3 (hypermap_of_fan (V,E))
773 ==> y4_fan (V,E) d <= #2.52 /\ y5_fan (V,E) d <= #2.52 /\ y6_fan d <= #2.52
774 /\ #6.25 <= y4_fan (V,E) d + y5_fan (V,E) d + y6_fan d
775 ==> (tau_fan (V,E) (face (hypermap_of_fan (V,E)) d) - #0.05)
776 - #0.137 * (y1_fan d + y2_fan d + y3_fan (V,E) d - #6.0)
777 - #0.17 * (y4_fan (V,E) d + y5_fan (V,E) d + y6_fan d - #6.25) >= &0`
779 ((BETA_TAC THEN (move ["d_in3"]) THEN (move ["bounds"])) THEN ((((use_arg_then2 ("real_ge", [real_ge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LT_IMP_LE", [REAL_LT_IMP_LE]))(thm_tac (new_rewrite [] []))))));
780 ((fun arg_tac -> arg_tac (Arg_term (`dart1_of_fan (V,E) = dart_of_fan (V,E)`))) (term_tac (have_gen_tac [](move ["dart1_eq"]))));
781 ((((use_arg_then2 ("fully_surrounded_dart_of_fan_eq", [fully_surrounded_dart_of_fan_eq]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
782 ((((use_arg_then2 ("d_in3", [])) (disch_tac [])) THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["d_in"])) THEN (move ["_"])));
783 ((((use_arg_then2 ("dart3_tau_fan_eq_taum", [dart3_tau_fan_eq_taum]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
784 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("ineq", [ineq])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y1_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y2_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y3_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y4_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
785 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`#2.0 = &2 /\ #0.0 = &0`))) (term_tac (have_gen_tac [](move ["eqs"])))) ((arith_tac) THEN (done_tac)));
786 (((((use_arg_then2 ("Ineq.dart_std3_big", [Ineq.dart_std3_big]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("Ineq.dart_std3", [Ineq.dart_std3]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("eqs", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("INEQ_ALT", [INEQ_ALT]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL ALL)))(thm_tac (new_rewrite [] []))))) THEN (simp_tac)) THEN (ANTS_TAC));
787 ((repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y4_lo", [y4_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
788 (((((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
789 (((((use_arg_then2 ("real_lt", [real_lt]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("real_gt", [real_gt]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
793 Sections.begin_section "Std";;
794 (Sections.add_section_hyp "std" (`E = ESTD V`));;
796 (* Lemma ineq90_std *)
797 let ineq90_std = Sections.section_proof ["d"]
798 `d IN darts_k 3 (hypermap_of_fan (V,E))
799 ==> #6.25 <= y4_fan (V,E) d + y5_fan (V,E) d + y6_fan d
800 ==> (tau_fan (V,E) (face (hypermap_of_fan (V,E)) d) - #0.05)
801 - #0.137 * (y1_fan d + y2_fan d + y3_fan (V,E) d - #6.0)
802 - #0.17 * (y4_fan (V,E) d + y5_fan (V,E) d + y6_fan d - #6.25) >= &0`
804 ((BETA_TAC THEN (move ["d_in3"]) THEN (move ["bounds"])) THEN (((fun arg_tac -> (use_arg_then2 ("ineq90", [ineq90])) (fun fst_arg -> (use_arg_then2 ("d_in3", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN (DISCH_THEN apply_tac)));
805 ((((use_arg_then2 ("d_in3", [])) (disch_tac [])) THEN (clear_assumption "d_in3") THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["d_in"])) THEN (move ["_"])));
806 (((repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("y4_hi_std2", [y4_hi_std2]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_hi_std2", [y5_hi_std2]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_hi_std2", [y6_hi_std2])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
809 (* Finalization of the section Std *)
810 let ineq90_std = Sections.finalize_theorem ineq90_std;;
811 Sections.end_section "Std";;
813 (* Finalization of the section Ineq90 *)
814 let ineq90 = Sections.finalize_theorem ineq90;;
815 let ineq90_std = Sections.finalize_theorem ineq90_std;;
816 Sections.end_section "Ineq90";;
818 (* Finalization of the section Std3_big *)
819 let extra_ineq_std3_big = Sections.finalize_theorem extra_ineq_std3_big;;
820 let ineq77 = Sections.finalize_theorem ineq77;;
821 let ineq77_std = Sections.finalize_theorem ineq77_std;;
822 let ineq89 = Sections.finalize_theorem ineq89;;
823 let ineq89_std = Sections.finalize_theorem ineq89_std;;
824 let ineq90 = Sections.finalize_theorem ineq90;;
825 let ineq90_std = Sections.finalize_theorem ineq90_std;;
826 Sections.end_section "Std3_big";;
829 Sections.begin_section "Ineq71";;
830 (Sections.add_section_hyp "h_fan" (`lp_fan (V,E)`));;
831 (Sections.add_section_hyp "ineq" ((hd (Ineq.getexact "181212899 5")).ineq));;
834 let ineq71 = Sections.section_proof ["d"]
835 `d IN darts_k 5 (hypermap_of_fan (V,E))
836 ==> #2.52 <= y5_fan (V,E) d /\ y5_fan (V,E) d <= sqrt8
838 ==> (azim_dart (V,E) d - #1.448)
839 - #0.266 * (y1_fan d - &2) + #0.295 * (y3_fan (V,E) d - &2)
840 + #0.57 * (y2_fan d - &2) - #0.745 * (#2.52 - #2.52)
841 + #0.268 * (y6_fan d - &2) + #0.385 * (y5_fan (V,E) d - #2.52) >= &0`
843 ((BETA_TAC THEN (move ["d_in5"]) THEN (move ["bounds"])) THEN ((((use_arg_then2 ("real_ge", [real_ge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LT_IMP_LE", [REAL_LT_IMP_LE]))(thm_tac (new_rewrite [] []))))));
844 ((fun arg_tac -> arg_tac (Arg_term (`dart1_of_fan (V,E) = dart_of_fan (V,E)`))) (term_tac (have_gen_tac [](move ["dart1_eq"]))));
845 ((((use_arg_then2 ("fully_surrounded_dart_of_fan_eq", [fully_surrounded_dart_of_fan_eq]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
846 ((((use_arg_then2 ("d_in5", [])) (disch_tac [])) THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["d_in"])) THEN (move ["_"])));
847 ((((use_arg_then2 ("azim_fan_eq_dih_y", [azim_fan_eq_dih_y]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
848 ((fun arg_tac -> arg_tac (Arg_term (`#0.295 * _1 + _2`))) (term_tac (set_tac "s2")));
849 ((fun arg_tac -> arg_tac (Arg_term (`_1 * _2`))) (term_tac (set_tac "s1")));
850 (((use_arg_then2 ("REAL_LTE_TRANS", [REAL_LTE_TRANS])) (disch_tac [])) THEN (clear_assumption "REAL_LTE_TRANS") THEN (DISCH_THEN apply_tac));
851 ((fun arg_tac -> arg_tac (Arg_term (`(dih_y (y1_fan d) (y2_fan d) (y3_fan (V,E) d) (#2.52)
852 (y5_fan (V,E) d) (y6_fan d) - #1.448) - s1 + s2`))) (term_tac exists_tac));
853 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`#0.0 = &0 /\ #2.0 = &2 /\ #8.0 = &8 /\ #3.0 = &3`))) (term_tac (have_gen_tac [](move ["eqs"])))) ((arith_tac) THEN (done_tac)));
855 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("ineq", [ineq])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y1_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y2_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y3_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`#2.52`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
856 (((((use_arg_then2 ("Ineq.apexff5", [Ineq.apexff5]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("eqs", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("s1_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("s2_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("INEQ_ALT", [INEQ_ALT]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL ALL)))(thm_tac (new_rewrite [] []))))) THEN (simp_tac) THEN (((use_arg_then2 ("real_gt", [real_gt]))(thm_tac (new_rewrite [] []))))) THEN (DISCH_THEN apply_tac));
857 ((((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
858 (((((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
859 ((repeat_tactic 1 9 (((use_arg_then2 ("real_sub", [real_sub]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("REAL_LE_RADD", [REAL_LE_RADD]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("dih_y_mono_le4", [dih_y_mono_le4]))(thm_tac (new_rewrite [] [])))));
860 ((repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("fan_ups_x_pos", [fan_ups_x_pos])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("fan_delta_y_pos", [fan_delta_y_pos]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
861 ((THENL_FIRST) (((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("y4'_lo_2h0", [y4'_lo_2h0])) (fun fst_arg -> (use_arg_then2 ("d_in5", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("h_fan", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) ((arith_tac) THEN (done_tac)));
862 ((THENL_FIRST) ((split_tac) THEN (simp_tac)) ((arith_tac) THEN (done_tac)));
863 (((use_arg_then2 ("Delta_ineq.delta_y_pos_apex", [Delta_ineq.delta_y_pos_apex]))(thm_tac (new_rewrite [] []))));
864 ((((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
865 ((((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
866 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`x <= sqrt8 ==> x <= &3`))) (term_tac (have_gen_tac ["x"](move ["ineq1"])))) ((((use_arg_then2 ("Flyspeck_constants.bounds", [Flyspeck_constants.bounds])) (disch_tac [])) THEN (clear_assumption "Flyspeck_constants.bounds") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac)));
867 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`x <= #2.52 ==> x <= &3`))) (term_tac (have_gen_tac ["x"](move ["ineq2"])))) ((arith_tac) THEN (done_tac)));
868 (((((fun arg_tac -> (use_arg_then2 ("ineq1", [])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("ineq2", []))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac))) THEN (arith_tac) THEN (done_tac));
871 (* Finalization of the section Ineq71 *)
872 let ineq71 = Sections.finalize_theorem ineq71;;
873 Sections.end_section "Ineq71";;
876 Sections.begin_section "Ineq72";;
877 (Sections.add_section_hyp "h_fan" (`lp_fan (V,E)`));;
878 (Sections.add_section_hyp "ineq" ((hd (Ineq.getexact "181212899 4")).ineq));;
881 let ineq72 = Sections.section_proof ["d"]
882 `d IN darts_k 5 (hypermap_of_fan (V,E))
883 ==> #2.52 <= y6_fan d /\ y6_fan d <= sqrt8
884 /\ y5_fan (V,E) d <= #2.52
885 ==> (azim_dart (V,E) d - #1.448)
886 - #0.266 * (y1_fan d - &2) + #0.295 * (y2_fan d - &2)
887 + #0.57 * (y3_fan (V,E) d - &2) - #0.745 * (#2.52 - #2.52)
888 + #0.268 * (y5_fan (V,E) d - &2) + #0.385 * (y6_fan d - #2.52) >= &0`
890 ((BETA_TAC THEN (move ["d_in5"]) THEN (move ["bounds"])) THEN ((((use_arg_then2 ("real_ge", [real_ge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LT_IMP_LE", [REAL_LT_IMP_LE]))(thm_tac (new_rewrite [] []))))));
891 ((fun arg_tac -> arg_tac (Arg_term (`dart1_of_fan (V,E) = dart_of_fan (V,E)`))) (term_tac (have_gen_tac [](move ["dart1_eq"]))));
892 ((((use_arg_then2 ("fully_surrounded_dart_of_fan_eq", [fully_surrounded_dart_of_fan_eq]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
893 ((((use_arg_then2 ("d_in5", [])) (disch_tac [])) THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["d_in"])) THEN (move ["_"])));
894 ((((use_arg_then2 ("azim_fan_eq_dih_y", [azim_fan_eq_dih_y]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
895 ((fun arg_tac -> arg_tac (Arg_term (`#0.295 * _1 + _2`))) (term_tac (set_tac "s2")));
896 ((fun arg_tac -> arg_tac (Arg_term (`_1 * _2`))) (term_tac (set_tac "s1")));
897 (((use_arg_then2 ("REAL_LTE_TRANS", [REAL_LTE_TRANS])) (disch_tac [])) THEN (clear_assumption "REAL_LTE_TRANS") THEN (DISCH_THEN apply_tac));
898 ((fun arg_tac -> arg_tac (Arg_term (`(dih_y (y1_fan d) (y2_fan d) (y3_fan (V,E) d) (#2.52)
899 (y5_fan (V,E) d) (y6_fan d) - #1.448) - s1 + s2`))) (term_tac exists_tac));
900 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`#0.0 = &0 /\ #2.0 = &2 /\ #8.0 = &8 /\ #3.0 = &3`))) (term_tac (have_gen_tac [](move ["eqs"])))) ((arith_tac) THEN (done_tac)));
902 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("ineq", [ineq])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y1_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y2_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y3_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`#2.52`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
903 (((((use_arg_then2 ("Ineq.apexf5", [Ineq.apexf5]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("eqs", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("s1_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("s2_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("INEQ_ALT", [INEQ_ALT]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL ALL)))(thm_tac (new_rewrite [] []))))) THEN (simp_tac) THEN (((use_arg_then2 ("real_gt", [real_gt]))(thm_tac (new_rewrite [] []))))) THEN (DISCH_THEN apply_tac));
904 ((((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
905 (((((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y5_lo", [y5_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
906 ((repeat_tactic 1 9 (((use_arg_then2 ("real_sub", [real_sub]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("REAL_LE_RADD", [REAL_LE_RADD]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("dih_y_mono_le4", [dih_y_mono_le4]))(thm_tac (new_rewrite [] [])))));
907 ((repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("fan_ups_x_pos", [fan_ups_x_pos])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("fan_delta_y_pos", [fan_delta_y_pos]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
908 ((THENL_FIRST) (((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("y4'_lo_2h0", [y4'_lo_2h0])) (fun fst_arg -> (use_arg_then2 ("h_fan", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("d_in5", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) ((arith_tac) THEN (done_tac)));
909 ((THENL_FIRST) ((split_tac) THEN (simp_tac)) ((((use_arg_then2 ("Flyspeck_constants.bounds", [Flyspeck_constants.bounds])) (disch_tac [])) THEN (clear_assumption "Flyspeck_constants.bounds") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac)));
910 (((use_arg_then2 ("Delta_ineq.delta_y_pos_apex", [Delta_ineq.delta_y_pos_apex]))(thm_tac (new_rewrite [] []))));
911 ((((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
912 ((((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
913 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`x <= sqrt8 ==> x <= &3`))) (term_tac (have_gen_tac ["x"](move ["ineq1"])))) ((((use_arg_then2 ("Flyspeck_constants.bounds", [Flyspeck_constants.bounds])) (disch_tac [])) THEN (clear_assumption "Flyspeck_constants.bounds") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac)));
914 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`x <= #2.52 ==> x <= &3`))) (term_tac (have_gen_tac ["x"](move ["ineq2"])))) ((arith_tac) THEN (done_tac)));
915 ((THENL_LAST) ((((fun arg_tac -> (use_arg_then2 ("ineq2", [])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("ineq1", []))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac))) ((arith_tac) THEN (done_tac)));
916 ((((use_arg_then2 ("Flyspeck_constants.bounds", [Flyspeck_constants.bounds])) (disch_tac [])) THEN (clear_assumption "Flyspeck_constants.bounds") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
919 (* Finalization of the section Ineq72 *)
920 let ineq72 = Sections.finalize_theorem ineq72;;
921 Sections.end_section "Ineq72";;
924 Sections.begin_section "Ineq73";;
925 (Sections.add_section_hyp "ineq" ((hd (Ineq.getexact "181212899 3")).ineq));;
928 let ineq73 = Sections.section_proof ["d"]
929 `d IN darts_k 4 (hypermap_of_fan (V,E))
930 ==> #2.52 <= y5_fan (V,E) d /\ y5_fan (V,E) d <= sqrt8
932 /\ sqrt8 <= y4'_fan (V,E) d
933 ==> (azim_dart (V,E) d - #1.448)
934 - #0.266 * (y1_fan d - &2) + #0.295 * (y3_fan (V,E) d - &2)
935 + #0.57 * (y2_fan d - &2) - #0.745 * (sqrt8 - #2.52)
936 + #0.268 * (y6_fan d - &2) + #0.385 * (y5_fan (V,E) d - #2.52) >= &0`
938 ((BETA_TAC THEN (move ["d_in4"]) THEN (move ["bounds"])) THEN ((((use_arg_then2 ("real_ge", [real_ge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LT_IMP_LE", [REAL_LT_IMP_LE]))(thm_tac (new_rewrite [] []))))));
939 ((fun arg_tac -> arg_tac (Arg_term (`dart1_of_fan (V,E) = dart_of_fan (V,E)`))) (term_tac (have_gen_tac [](move ["dart1_eq"]))));
940 ((((use_arg_then2 ("fully_surrounded_dart_of_fan_eq", [fully_surrounded_dart_of_fan_eq]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
941 ((((use_arg_then2 ("d_in4", [])) (disch_tac [])) THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["d_in"])) THEN (move ["_"])));
942 ((((use_arg_then2 ("azim_fan_eq_dih_y", [azim_fan_eq_dih_y]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
943 ((fun arg_tac -> arg_tac (Arg_term (`#0.295 * _1 + _2`))) (term_tac (set_tac "s2")));
944 ((fun arg_tac -> arg_tac (Arg_term (`_1 * _2`))) (term_tac (set_tac "s1")));
945 (((use_arg_then2 ("REAL_LTE_TRANS", [REAL_LTE_TRANS])) (disch_tac [])) THEN (clear_assumption "REAL_LTE_TRANS") THEN (DISCH_THEN apply_tac));
946 ((fun arg_tac -> arg_tac (Arg_term (`(dih_y (y1_fan d) (y2_fan d) (y3_fan (V,E) d) (sqrt8)
947 (y5_fan (V,E) d) (y6_fan d) - #1.448) - s1 + s2`))) (term_tac exists_tac));
948 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`#0.0 = &0 /\ #2.0 = &2 /\ #8.0 = &8 /\ #3.0 = &3`))) (term_tac (have_gen_tac [](move ["eqs"])))) ((arith_tac) THEN (done_tac)));
950 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("ineq", [ineq])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y1_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y2_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y3_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`sqrt8`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
951 (((((use_arg_then2 ("Ineq.apexff4", [Ineq.apexff4]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("eqs", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("s1_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("s2_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("INEQ_ALT", [INEQ_ALT]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL ALL)))(thm_tac (new_rewrite [] []))))) THEN (simp_tac) THEN (((use_arg_then2 ("real_gt", [real_gt]))(thm_tac (new_rewrite [] []))))) THEN (DISCH_THEN apply_tac));
952 ((((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
953 (((((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
954 ((repeat_tactic 1 9 (((use_arg_then2 ("real_sub", [real_sub]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("REAL_LE_RADD", [REAL_LE_RADD]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("dih_y_mono_le4", [dih_y_mono_le4]))(thm_tac (new_rewrite [] [])))));
955 ((((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("fan_ups_x_pos", [fan_ups_x_pos])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("fan_delta_y_pos", [fan_delta_y_pos]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
956 ((THENL_FIRST) ((split_tac) THEN (simp_tac)) ((((use_arg_then2 ("Flyspeck_constants.bounds", [Flyspeck_constants.bounds])) (disch_tac [])) THEN (clear_assumption "Flyspeck_constants.bounds") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac)));
957 (((use_arg_then2 ("Delta_ineq.delta_y_pos_apex", [Delta_ineq.delta_y_pos_apex]))(thm_tac (new_rewrite [] []))));
958 ((((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
959 ((((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
960 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`x <= sqrt8 ==> x <= &3`))) (term_tac (have_gen_tac ["x"](move ["ineq1"])))) ((((use_arg_then2 ("Flyspeck_constants.bounds", [Flyspeck_constants.bounds])) (disch_tac [])) THEN (clear_assumption "Flyspeck_constants.bounds") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac)));
961 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`x <= #2.52 ==> x <= &3`))) (term_tac (have_gen_tac ["x"](move ["ineq2"])))) ((arith_tac) THEN (done_tac)));
962 ((((fun arg_tac -> (use_arg_then2 ("ineq2", [])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("ineq1", []))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)));
963 ((((use_arg_then2 ("Flyspeck_constants.bounds", [Flyspeck_constants.bounds])) (disch_tac [])) THEN (clear_assumption "Flyspeck_constants.bounds") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
966 (* Finalization of the section Ineq73 *)
967 let ineq73 = Sections.finalize_theorem ineq73;;
968 Sections.end_section "Ineq73";;
971 Sections.begin_section "Ineq74";;
972 (Sections.add_section_hyp "ineq" ((hd (Ineq.getexact "181212899 2")).ineq));;
975 let ineq74 = Sections.section_proof ["d"]
976 `d IN darts_k 4 (hypermap_of_fan (V,E))
977 ==> #2.52 <= y6_fan d /\ y6_fan d <= sqrt8
978 /\ y5_fan (V,E) d <= #2.52
979 /\ sqrt8 <= y4'_fan (V,E) d
980 ==> (azim_dart (V,E) d - #1.448)
981 - #0.266 * (y1_fan d - &2) + #0.295 * (y2_fan d - &2)
982 + #0.57 * (y3_fan (V,E) d - &2) - #0.745 * (sqrt8 - #2.52)
983 + #0.268 * (y5_fan (V,E) d - &2) + #0.385 * (y6_fan d - #2.52) >= &0`
985 ((BETA_TAC THEN (move ["d_in4"]) THEN (move ["bounds"])) THEN ((((use_arg_then2 ("real_ge", [real_ge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LT_IMP_LE", [REAL_LT_IMP_LE]))(thm_tac (new_rewrite [] []))))));
986 ((fun arg_tac -> arg_tac (Arg_term (`dart1_of_fan (V,E) = dart_of_fan (V,E)`))) (term_tac (have_gen_tac [](move ["dart1_eq"]))));
987 ((((use_arg_then2 ("fully_surrounded_dart_of_fan_eq", [fully_surrounded_dart_of_fan_eq]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
988 ((((use_arg_then2 ("d_in4", [])) (disch_tac [])) THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["d_in"])) THEN (move ["_"])));
989 ((((use_arg_then2 ("azim_fan_eq_dih_y", [azim_fan_eq_dih_y]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
990 ((fun arg_tac -> arg_tac (Arg_term (`#0.295 * _1 + _2`))) (term_tac (set_tac "s2")));
991 ((fun arg_tac -> arg_tac (Arg_term (`_1 * _2`))) (term_tac (set_tac "s1")));
992 (((use_arg_then2 ("REAL_LTE_TRANS", [REAL_LTE_TRANS])) (disch_tac [])) THEN (clear_assumption "REAL_LTE_TRANS") THEN (DISCH_THEN apply_tac));
993 ((fun arg_tac -> arg_tac (Arg_term (`(dih_y (y1_fan d) (y2_fan d) (y3_fan (V,E) d) (sqrt8)
994 (y5_fan (V,E) d) (y6_fan d) - #1.448) - s1 + s2`))) (term_tac exists_tac));
995 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`#0.0 = &0 /\ #2.0 = &2 /\ #8.0 = &8 /\ #3.0 = &3`))) (term_tac (have_gen_tac [](move ["eqs"])))) ((arith_tac) THEN (done_tac)));
997 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("ineq", [ineq])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y1_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y2_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y3_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`sqrt8`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
998 (((((use_arg_then2 ("Ineq.apexf4", [Ineq.apexf4]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("eqs", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("s1_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("s2_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("INEQ_ALT", [INEQ_ALT]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL ALL)))(thm_tac (new_rewrite [] []))))) THEN (simp_tac) THEN (((use_arg_then2 ("real_gt", [real_gt]))(thm_tac (new_rewrite [] []))))) THEN (DISCH_THEN apply_tac));
999 ((((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1000 (((((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y5_lo", [y5_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1001 ((repeat_tactic 1 9 (((use_arg_then2 ("real_sub", [real_sub]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("REAL_LE_RADD", [REAL_LE_RADD]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("dih_y_mono_le4", [dih_y_mono_le4]))(thm_tac (new_rewrite [] [])))));
1002 ((((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("fan_ups_x_pos", [fan_ups_x_pos])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("fan_delta_y_pos", [fan_delta_y_pos]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1003 ((THENL_FIRST) ((split_tac) THEN (simp_tac)) ((((use_arg_then2 ("Flyspeck_constants.bounds", [Flyspeck_constants.bounds])) (disch_tac [])) THEN (clear_assumption "Flyspeck_constants.bounds") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac)));
1004 (((use_arg_then2 ("Delta_ineq.delta_y_pos_apex", [Delta_ineq.delta_y_pos_apex]))(thm_tac (new_rewrite [] []))));
1005 ((((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1006 ((((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1007 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`x <= sqrt8 ==> x <= &3`))) (term_tac (have_gen_tac ["x"](move ["ineq1"])))) ((((use_arg_then2 ("Flyspeck_constants.bounds", [Flyspeck_constants.bounds])) (disch_tac [])) THEN (clear_assumption "Flyspeck_constants.bounds") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac)));
1008 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`x <= #2.52 ==> x <= &3`))) (term_tac (have_gen_tac ["x"](move ["ineq2"])))) ((arith_tac) THEN (done_tac)));
1009 ((((fun arg_tac -> (use_arg_then2 ("ineq2", [])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("ineq1", []))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)));
1010 ((((use_arg_then2 ("Flyspeck_constants.bounds", [Flyspeck_constants.bounds])) (disch_tac [])) THEN (clear_assumption "Flyspeck_constants.bounds") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
1013 (* Finalization of the section Ineq74 *)
1014 let ineq74 = Sections.finalize_theorem ineq74;;
1015 Sections.end_section "Ineq74";;
1017 (* Section Ineq104 *)
1018 Sections.begin_section "Ineq104";;
1019 (Sections.add_section_hyp "ineq" ((hd (Ineq.getexact "9995621667")).ineq));;
1022 let ineq104 = Sections.section_proof ["d"]
1023 `d IN darts_k 4 (hypermap_of_fan (V,E))
1024 ==> &3 <= y4'_fan (V,E) d /\ y5_fan (V,E) d <= #2.52 /\ y6_fan d <= #2.52
1025 ==> (azim_dart (V,E) d - #2.09)
1026 + #0.578 * (y2_fan d + y3_fan (V,E) d + y5_fan (V,E) d + y6_fan d - &8)
1027 - #0.54 * (y1_fan d - &2) >= &0`
1029 ((BETA_TAC THEN (move ["d_in4"]) THEN (move ["bounds"])) THEN ((((use_arg_then2 ("real_ge", [real_ge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LT_IMP_LE", [REAL_LT_IMP_LE]))(thm_tac (new_rewrite [] []))))));
1030 ((fun arg_tac -> arg_tac (Arg_term (`dart1_of_fan (V,E) = dart_of_fan (V,E)`))) (term_tac (have_gen_tac [](move ["dart1_eq"]))));
1031 ((((use_arg_then2 ("fully_surrounded_dart_of_fan_eq", [fully_surrounded_dart_of_fan_eq]))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
1032 ((((use_arg_then2 ("d_in4", [])) (disch_tac [])) THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["d_in"])) THEN (move ["_"])));
1033 ((((use_arg_then2 ("azim_fan_eq_dih_y", [azim_fan_eq_dih_y]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1034 ((fun arg_tac -> arg_tac (Arg_term (`_1 * _2 - _3`))) (term_tac (set_tac "s")));
1035 (((use_arg_then2 ("REAL_LTE_TRANS", [REAL_LTE_TRANS])) (disch_tac [])) THEN (clear_assumption "REAL_LTE_TRANS") THEN (DISCH_THEN apply_tac));
1036 ((fun arg_tac -> arg_tac (Arg_term (`(dih_y (y1_fan d) (y2_fan d) (y3_fan (V,E) d) (&3)
1037 (y5_fan (V,E) d) (y6_fan d) - #2.09) + s`))) (term_tac exists_tac));
1038 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`#0.0 = &0 /\ #2.0 = &2 /\ #8.0 = &8 /\ #3.0 = &3`))) (term_tac (have_gen_tac [](move ["eqs"])))) ((arith_tac) THEN (done_tac)));
1040 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("ineq", [ineq])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y1_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y2_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y3_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`&3`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
1041 (((((use_arg_then2 ("Ineq.dart4_diag3", [Ineq.dart4_diag3]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("eqs", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("s_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("INEQ_ALT", [INEQ_ALT]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL ALL)))(thm_tac (new_rewrite [] []))))) THEN (simp_tac) THEN (((use_arg_then2 ("real_gt", [real_gt]))(thm_tac (new_rewrite [] []))))) THEN (DISCH_THEN apply_tac));
1042 ((((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1043 (((((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1044 ((repeat_tactic 1 9 (((use_arg_then2 ("real_sub", [real_sub]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("REAL_LE_RADD", [REAL_LE_RADD]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("dih_y_mono_le4", [dih_y_mono_le4]))(thm_tac (new_rewrite [] [])))));
1045 ((((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("fan_ups_x_pos", [fan_ups_x_pos])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("fan_delta_y_pos", [fan_delta_y_pos]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1046 ((THENL_FIRST) ((split_tac) THEN (simp_tac)) ((arith_tac) THEN (done_tac)));
1047 (((use_arg_then2 ("Delta_ineq.delta_y_pos_apex", [Delta_ineq.delta_y_pos_apex]))(thm_tac (new_rewrite [] []))));
1048 ((((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1049 ((((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] [])))));
1050 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`x <= #2.52 ==> x <= &3`))) (term_tac (have_gen_tac ["x"](move ["ineq2"])))) ((arith_tac) THEN (done_tac)));
1051 (((repeat_tactic 1 9 (((use_arg_then2 ("ineq2", []))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac))) THEN (arith_tac) THEN (done_tac));
1055 Sections.begin_section "Std";;
1056 (Sections.add_section_hyp "std" (`E = ESTD V`));;
1058 (* Lemma ineq104_std *)
1059 let ineq104_std = Sections.section_proof ["d"]
1060 `d IN darts_k 4 (hypermap_of_fan (V,E))
1061 ==> &3 <= y4'_fan (V,E) d
1062 ==> (azim_dart (V,E) d - #2.09)
1063 + #0.578 * (y2_fan d + y3_fan (V,E) d + y5_fan (V,E) d + y6_fan d - &8)
1064 - #0.54 * (y1_fan d - &2) >= &0`
1066 ((BETA_TAC THEN (move ["d_in4"]) THEN (move ["bounds"])) THEN (((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("ineq104", [ineq104])) (fun fst_arg -> (use_arg_then2 ("d_in4", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("bounds", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN (DISCH_THEN apply_tac)));
1067 ((((use_arg_then2 ("d_in4", [])) (disch_tac [])) THEN (clear_assumption "d_in4") THEN BETA_TAC) THEN (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["d_in"])) THEN (move ["_"])));
1068 (((((use_arg_then2 ("y5_hi_std2", [y5_hi_std2]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_hi_std2", [y6_hi_std2])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1071 (* Finalization of the section Std *)
1072 let ineq104_std = Sections.finalize_theorem ineq104_std;;
1073 Sections.end_section "Std";;
1075 (* Finalization of the section Ineq104 *)
1076 let ineq104 = Sections.finalize_theorem ineq104;;
1077 let ineq104_std = Sections.finalize_theorem ineq104_std;;
1078 Sections.end_section "Ineq104";;
1080 (* Section Ineq105 *)
1081 Sections.begin_section "Ineq105";;
1082 (Sections.add_section_hyp "ineq" ((hd (Ineq.getexact "9414951439")).ineq));;
1085 let ineq105 = Sections.section_proof ["d"]
1086 `d IN dart_of_fan (V,E)
1087 ==> sqrt8 <= y4'_fan (V,E) d /\ y5_fan (V,E) d <= #2.52 /\ y6_fan d <= #2.52
1088 ==> (azim_dart (V,E) d - #1.91)
1089 + #0.458 * (y2_fan d + y3_fan (V,E) d + y5_fan (V,E) d + y6_fan d - &8)
1090 - #0.342 * (y1_fan d - &2) >= &0`
1092 ((BETA_TAC THEN (move ["d_in"]) THEN (move ["bounds"])) THEN ((((use_arg_then2 ("real_ge", [real_ge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LT_IMP_LE", [REAL_LT_IMP_LE]))(thm_tac (new_rewrite [] []))))));
1093 ((((use_arg_then2 ("azim_fan_eq_dih_y", [azim_fan_eq_dih_y]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1094 ((fun arg_tac -> arg_tac (Arg_term (`_1 * _2 - _3`))) (term_tac (set_tac "s")));
1095 (((use_arg_then2 ("REAL_LTE_TRANS", [REAL_LTE_TRANS])) (disch_tac [])) THEN (clear_assumption "REAL_LTE_TRANS") THEN (DISCH_THEN apply_tac));
1096 ((fun arg_tac -> arg_tac (Arg_term (`(dih_y (y1_fan d) (y2_fan d) (y3_fan (V,E) d) sqrt8
1097 (y5_fan (V,E) d) (y6_fan d) - #1.91) + s`))) (term_tac exists_tac));
1098 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`#0.0 = &0 /\ #2.0 = &2 /\ #8.0 = &8`))) (term_tac (have_gen_tac [](move ["eqs"])))) ((arith_tac) THEN (done_tac)));
1100 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("ineq", [ineq])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y1_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y2_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y3_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`sqrt8`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
1101 (((((use_arg_then2 ("Ineq.dartY", [Ineq.dartY]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("eqs", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("s_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("INEQ_ALT", [INEQ_ALT]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL ALL)))(thm_tac (new_rewrite [] []))))) THEN (simp_tac) THEN (((use_arg_then2 ("real_gt", [real_gt]))(thm_tac (new_rewrite [] []))))) THEN (DISCH_THEN apply_tac));
1102 ((((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1103 (((((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1104 ((repeat_tactic 1 9 (((use_arg_then2 ("real_sub", [real_sub]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("REAL_LE_RADD", [REAL_LE_RADD]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("dih_y_mono_le4", [dih_y_mono_le4]))(thm_tac (new_rewrite [] [])))));
1105 ((repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("fan_ups_x_pos", [fan_ups_x_pos])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("fan_delta_y_pos", [fan_delta_y_pos]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] [])))));
1106 ((THENL_FIRST) ((split_tac) THEN (simp_tac)) ((((use_arg_then2 ("Flyspeck_constants.bounds", [Flyspeck_constants.bounds])) (disch_tac [])) THEN (clear_assumption "Flyspeck_constants.bounds") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac)));
1107 (((use_arg_then2 ("Delta_ineq.delta_y_pos_apex", [Delta_ineq.delta_y_pos_apex]))(thm_tac (new_rewrite [] []))));
1108 ((((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1109 ((((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1110 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`x <= #2.52 ==> x <= &3`))) (term_tac (have_gen_tac ["x"](move ["ineq2"])))) ((arith_tac) THEN (done_tac)));
1111 ((((fun arg_tac -> (use_arg_then2 ("ineq2", [])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("ineq2", [])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1112 ((((use_arg_then2 ("Flyspeck_constants.bounds", [Flyspeck_constants.bounds])) (disch_tac [])) THEN (clear_assumption "Flyspeck_constants.bounds") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac));
1116 Sections.begin_section "Std";;
1117 (Sections.add_section_hyp "std" (`E = ESTD V`));;
1119 (* Lemma ineq105_std *)
1120 let ineq105_std = Sections.section_proof ["d"]
1121 `d IN dart_of_fan (V,E)
1122 ==> sqrt8 <= y4'_fan (V,E) d
1123 ==> (azim_dart (V,E) d - #1.91)
1124 + #0.458 * (y2_fan d + y3_fan (V,E) d + y5_fan (V,E) d + y6_fan d - &8)
1125 - #0.342 * (y1_fan d - &2) >= &0`
1127 ((BETA_TAC THEN (move ["d_in"]) THEN (move ["bounds"])) THEN (((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("ineq105", [ineq105])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("bounds", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN (DISCH_THEN apply_tac)));
1128 (((((use_arg_then2 ("y5_hi_std2", [y5_hi_std2]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_hi_std2", [y6_hi_std2])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1131 (* Finalization of the section Std *)
1132 let ineq105_std = Sections.finalize_theorem ineq105_std;;
1133 Sections.end_section "Std";;
1135 (* Finalization of the section Ineq105 *)
1136 let ineq105 = Sections.finalize_theorem ineq105;;
1137 let ineq105_std = Sections.finalize_theorem ineq105_std;;
1138 Sections.end_section "Ineq105";;
1140 (* Section Ineq106 *)
1141 Sections.begin_section "Ineq106";;
1142 (Sections.add_section_hyp "h_fan" (`lp_fan (V,E)`));;
1143 (Sections.add_section_hyp "ineq" ((hd (Ineq.getexact "3020140039")).ineq));;
1146 let ineq106 = Sections.section_proof ["d"]
1147 `d IN dart_of_fan (V,E)
1148 ==> 3 < CARD (face (hypermap_of_fan (V,E)) d)
1149 /\ y5_fan (V,E) d <= #2.52 /\ y6_fan d <= #2.52
1150 ==> (azim_dart (V,E) d - #1.629)
1151 + #0.402 * (y2_fan d + y3_fan (V,E) d + y5_fan (V,E) d + y6_fan d - &8)
1152 - #0.315 * (y1_fan d - &2) >= &0`
1154 ((BETA_TAC THEN (move ["d_in"]) THEN (case THEN (move ["card_gt"])) THEN (move ["bounds"])) THEN ((((use_arg_then2 ("real_ge", [real_ge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LT_IMP_LE", [REAL_LT_IMP_LE]))(thm_tac (new_rewrite [] []))))));
1155 ((fun arg_tac -> arg_tac (Arg_term (`?k. d IN darts_k k (hypermap_of_fan (V,E)) /\ 3 < k`))) (term_tac (have_gen_tac [](case THEN ((move ["k"]) THEN (case THEN (move ["d_in_k"])) THEN (move ["k_gt"]))))));
1156 ((fun arg_tac -> arg_tac (Arg_term (`CARD (face (hypermap_of_fan (V,E)) d)`))) (term_tac exists_tac));
1157 (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1158 ((((use_arg_then2 ("azim_fan_eq_dih_y", [azim_fan_eq_dih_y]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1159 ((fun arg_tac -> arg_tac (Arg_term (`_1 * _2 - _3`))) (term_tac (set_tac "s")));
1160 (((use_arg_then2 ("REAL_LTE_TRANS", [REAL_LTE_TRANS])) (disch_tac [])) THEN (clear_assumption "REAL_LTE_TRANS") THEN (DISCH_THEN apply_tac));
1161 ((fun arg_tac -> arg_tac (Arg_term (`(dih_y (y1_fan d) (y2_fan d) (y3_fan (V,E) d) (#2.52)
1162 (y5_fan (V,E) d) (y6_fan d) - #1.629) + s`))) (term_tac exists_tac));
1163 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`#0.0 = &0 /\ #2.0 = &2 /\ #8.0 = &8`))) (term_tac (have_gen_tac [](move ["eqs"])))) ((arith_tac) THEN (done_tac)));
1165 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("ineq", [ineq])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y1_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y2_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y3_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`#2.52`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E) d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
1166 (((((use_arg_then2 ("Ineq.dartX", [Ineq.dartX]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("eqs", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("s_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("INEQ_ALT", [INEQ_ALT]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL ALL)))(thm_tac (new_rewrite [] []))))) THEN (simp_tac) THEN (((use_arg_then2 ("real_gt", [real_gt]))(thm_tac (new_rewrite [] []))))) THEN (DISCH_THEN apply_tac));
1167 ((((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1168 (((((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("REAL_LE_REFL", [REAL_LE_REFL]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1169 ((repeat_tactic 1 9 (((use_arg_then2 ("real_sub", [real_sub]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("REAL_LE_RADD", [REAL_LE_RADD]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("dih_y_mono_le4", [dih_y_mono_le4]))(thm_tac (new_rewrite [] [])))));
1170 ((repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("fan_ups_x_pos", [fan_ups_x_pos])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("fan_delta_y_pos", [fan_delta_y_pos]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y4'_lo_2h0", [y4'_lo_2h0])) (fun fst_arg -> (use_arg_then2 ("k_gt", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1171 ((THENL_FIRST) ((split_tac) THEN (simp_tac)) ((arith_tac) THEN (done_tac)));
1172 (((use_arg_then2 ("Delta_ineq.delta_y_pos_apex", [Delta_ineq.delta_y_pos_apex]))(thm_tac (new_rewrite [] []))));
1173 ((((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1174 ((((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1175 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`x <= #2.52 ==> x <= &3`))) (term_tac (have_gen_tac ["x"](move ["ineq2"])))) ((arith_tac) THEN (done_tac)));
1176 (((repeat_tactic 1 9 (((use_arg_then2 ("ineq2", []))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac))) THEN (arith_tac) THEN (done_tac));
1180 Sections.begin_section "Std";;
1181 (Sections.add_section_hyp "std" (`E = ESTD V`));;
1183 (* Lemma ineq106_std *)
1184 let ineq106_std = Sections.section_proof ["d"]
1185 `d IN dart_of_fan (V,E)
1186 ==> 3 < CARD (face (hypermap_of_fan (V,E)) d)
1187 ==> (azim_dart (V,E) d - #1.629)
1188 + #0.402 * (y2_fan d + y3_fan (V,E) d + y5_fan (V,E) d + y6_fan d - &8)
1189 - #0.315 * (y1_fan d - &2) >= &0`
1191 ((BETA_TAC THEN (move ["d_in"]) THEN (move ["card_gt"])) THEN (((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("ineq106", [ineq106])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("card_gt", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN (DISCH_THEN apply_tac)));
1192 (((((use_arg_then2 ("y5_hi_std2", [y5_hi_std2]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_hi_std2", [y6_hi_std2])) (fun fst_arg -> (use_arg_then2 ("d_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1195 (* Finalization of the section Std *)
1196 let ineq106_std = Sections.finalize_theorem ineq106_std;;
1197 Sections.end_section "Std";;
1199 (* Finalization of the section Ineq106 *)
1200 let ineq106 = Sections.finalize_theorem ineq106;;
1201 let ineq106_std = Sections.finalize_theorem ineq106_std;;
1202 Sections.end_section "Ineq106";;
1204 (* Section Crossdiag *)
1205 Sections.begin_section "Crossdiag";;
1206 (Sections.add_section_hyp "ineq" ((hd (Ineq.getexact "1085358243")).ineq));;
1208 (* Lemma crossdiag_fan *)
1209 let crossdiag_fan = Sections.section_proof ["d"]
1210 `let d2 = f_fan_pair_ext (V,E) (e_fan_pair_ext (V,E) d) in
1211 let d' = inverse (f_fan_pair_ext (V,E)) d in
1212 d IN darts_k 3 (hypermap_of_fan (V,E))
1213 /\ ye_fan d <= ye_fan (FST d', SND d2)
1214 /\ sqrt8 <= ye_fan d /\ ye_fan d <= &3
1215 /\ y5_fan (V,E) d <= #2.52 /\ y6_fan d2 <= #2.52
1216 ==> (azim_dart (V,E) d + azim_dart (V,E) d2) - #1.903
1217 - #0.4 * (y1_fan d - &2)
1218 + #0.49688 * (y2_fan d2 + y3_fan (V,E) d + y5_fan (V,E) d + y6_fan d2 - &8)
1219 - (y4_fan (V,E) d' - sqrt8) >= &0`
1221 ((repeat_tactic 1 9 ((CONV_TAC let_CONV))) THEN (((use_arg_then2 ("d", [])) (disch_tac [])) THEN (clear_assumption "d") THEN case THEN (move ["w"]) THEN (move ["w'"]) THEN (case THEN (move ["ww'_in3"])) THEN (case THEN (move ["diag_le"])) THEN (case THEN (move ["diag_lo"])) THEN (case THEN (move ["diag_hi"])) THEN (move ["bounds"])));
1222 ((fun arg_tac -> arg_tac (Arg_term (`f_fan_pair_ext _1 _2`))) (term_tac (set_tac "d2")));
1223 ((fun arg_tac -> arg_tac (Arg_term (`inverse _1 _2`))) (term_tac (set_tac "d'")));
1224 ((fun arg_tac -> (use_arg_then2 ("COMPONENTS_HYPERMAP_OF_FAN", [COMPONENTS_HYPERMAP_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN (case THEN ((move ["dartH"]) THEN (case THEN (move ["eH"])) THEN (case THEN (move ["nH"])) THEN (move ["fH"])))));
1225 ((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("fan_delete_edge", [fan_delete_edge])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`{w,w'}`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN (move ["fan2"])));
1226 ((((use_arg_then2 ("ww'_in3", [])) (disch_tac [])) THEN BETA_TAC) THEN (((((use_arg_then2 ("List_hypermap.darts_k", [List_hypermap.darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["ww'_in"])) THEN (move ["card3"])));
1227 ((fun arg_tac -> arg_tac (Arg_term (`SND d2`))) (term_tac (set_tac "v")));
1228 ((fun arg_tac -> arg_tac (Arg_term (`E DELETE {w,w'}`))) (term_tac (set_tac "E2")));
1229 ((fun arg_tac -> arg_tac (Arg_term (`d2 = w,v`))) (term_tac (have_gen_tac [](move ["d2_eq"]))));
1230 ((((use_arg_then2 ("pair_expand", [pair_expand]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("v_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("PAIR_EQ", [PAIR_EQ]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("d2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("e_fan_pair_ext", [e_fan_pair_ext]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dart1_eq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("ww'_in", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("e_fan_pair", [e_fan_pair]))(thm_tac (new_rewrite [] [])))));
1231 (((((use_arg_then2 ("f_fan_pair_ext", [f_fan_pair_ext]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dart1_switch", [dart1_switch]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dart1_eq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("ww'_in", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("f_fan_pair", [f_fan_pair]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1232 ((fun arg_tac -> arg_tac (Arg_term (`d2 IN dart1_of_fan (V,E)`))) (term_tac (have_gen_tac [](move ["d2_in1"]))));
1233 (((((use_arg_then2 ("d2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("fH", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("eH", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("dart1_eq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("dartH", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("lemma_dart_invariant", [lemma_dart_invariant]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("dartH", []))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1234 ((fun arg_tac -> arg_tac (Arg_term (`sigma_fan (vec 0) V E w v = w'`))) (term_tac (have_gen_tac [](move ["w'_eq"]))));
1235 (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`n_fan_pair_ext (V,E) d2 = (w,w')`))) (term_tac (have_gen_tac []ALL_TAC))));
1236 ((((((use_arg_then2 ("n_fan_pair_ext", [n_fan_pair_ext]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("d2_in1", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("d2_eq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("n_fan_pair", [n_fan_pair]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("PAIR_EQ", [PAIR_EQ]))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN (move ["_"]))) THEN (done_tac));
1237 ((((use_arg_then2 ("d2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("nH", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("fH", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("eH", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> (use_arg_then2 ("o_THM", [o_THM])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`face_map _`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> (use_arg_then2 ("o_THM", [o_THM])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`node_map _`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(gsym_then (thm_tac (new_rewrite [] []))))));
1238 (((((use_arg_then2 ("hypermap_cyclic", [hypermap_cyclic]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("I_THM", [I_THM]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1239 ((fun arg_tac -> arg_tac (Arg_term (`d2 IN dart1_of_fan (V,E2)`))) (term_tac (have_gen_tac [](move ["d2_in2"]))));
1240 ((((use_arg_then2 ("d2_eq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE_eq_in_dart1", [inE_eq_in_dart1]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("E2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("IN_DELETE", [IN_DELETE]))(thm_tac (new_rewrite [] [])))) THEN (((fun arg_tac -> (use_arg_then2 ("inE_eq_in_dart1", [inE_eq_in_dart1])) (fun fst_arg -> (use_arg_then2 ("V", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("d2_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("d2_in1", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("andTb", [andTb]))(thm_tac (new_rewrite [] [])))));
1241 ((((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL Geomdetail.PAIR_EQ_EXPAND)))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
1242 ((((use_arg_then2 ("d2_in1", [])) (disch_tac [])) THEN BETA_TAC) THEN ((((use_arg_then2 ("d2_eq", []))(thm_tac (new_rewrite [] [])))) THEN (DISCH_THEN (fun snd_th -> (fun arg_tac -> (use_arg_then2 ("PAIR_IN_DART1_OF_FAN_IMP_NOT_EQ", [PAIR_IN_DART1_OF_FAN_IMP_NOT_EQ])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (thm_tac (match_mp_then snd_th MP_TAC)))) THEN (((conv_thm_tac DISCH_THEN)(gsym_then (thm_tac (new_rewrite [] []))))) THEN (simp_tac)));
1243 (((((use_arg_then2 ("w'_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("eq_sym", [eq_sym]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("sigma_fan_not_fixed", [sigma_fan_not_fixed]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("d2_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("dart1_eq", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (done_tac));
1244 ((((fun arg_tac -> (use_arg_then2 ("REAL_ADD_SYM", [REAL_ADD_SYM])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`azim_dart _1 _2`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("d2_eq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("w'_eq", []))(gsym_then (thm_tac (new_rewrite [1] []))))) THEN (((use_arg_then2 ("azim_dart_sum_delete", [azim_dart_sum_delete]))(gsym_then (thm_tac (new_rewrite [] []))))));
1245 ((((use_arg_then2 ("dart1_switch", [dart1_switch]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("d2_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("d2_in1", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("fully_surrounded_card_set_of_edge1", [fully_surrounded_card_set_of_edge1]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1246 ((((fun arg_tac -> (use_arg_then2 ("PAIR_IN_DART_OF_FAN", [PAIR_IN_DART_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("ww'_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
1247 ((fun arg_tac -> arg_tac (Arg_term (`if y4'_fan (V,E2) d2 <= &3 then y4'_fan (V,E2) d2 else &3`))) (term_tac (set_tac "r")));
1248 ((fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("ineq", [ineq])) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y1_fan d2`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y2_fan d2`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y3_fan (V,E2) d2`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("r", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y5_fan (V,E2) d2`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`y6_fan d2`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
1249 ((((use_arg_then2 ("INEQ_ALT", [INEQ_ALT]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("Ineq.apex_sup_flat", [Ineq.apex_sup_flat]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("real_gt", [real_gt]))(thm_tac (new_rewrite [] [])))));
1250 ((fun arg_tac -> arg_tac (Arg_term (`_1 - #1.903 - _2 + _3`))) (term_tac (set_tac "s")));
1251 (((use_arg_then2 ("ineq", [ineq])) (disch_tac [])) THEN (clear_assumption "ineq") THEN BETA_TAC THEN (move ["_"]) THEN (move ["ineq"]));
1252 (((((use_arg_then2 ("w'_eq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("E2_def", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("real_ge", [real_ge]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LT_IMP_LE", [REAL_LT_IMP_LE]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("REAL_LTE_TRANS", [REAL_LTE_TRANS])) (disch_tac [])) THEN (clear_assumption "REAL_LTE_TRANS") THEN (DISCH_THEN apply_tac)));
1253 ((use_arg_then2 ("s", [])) (term_tac exists_tac));
1254 ((fun arg_tac -> arg_tac (Arg_term (`y1_fan d2 = y1_fan (w,w') /\ y3_fan (V,E2) d2 = y3_fan (V,E) (w,w')
1255 /\ y5_fan (V,E2) d2 = y5_fan (V,E) (w,w')`))) (term_tac (have_gen_tac [](move ["y_eqs"]))));
1256 ((((use_arg_then2 ("d2_eq", []))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("ys_fan_eq", [ys_fan_eq])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("d2_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("d2_eq", []))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("ys_fan_eq", [ys_fan_eq])) (fun fst_arg -> (use_arg_then2 ("fan2", [fan2])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 0 10 (((use_arg_then2 ("d2_eq", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN ((TRY done_tac)));
1257 ((((use_arg_then2 ("E2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("w'_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> arg_tac (Arg_theorem (let_RULE sigma_fan_delete1)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1258 ((((use_arg_then2 ("dart1_switch", [dart1_switch]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("d2_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("fully_surrounded_card_set_of_edge1", [fully_surrounded_card_set_of_edge1]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1259 ((((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("PAIR_IN_DART_OF_FAN", [PAIR_IN_DART_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("ww'_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
1260 ((fun arg_tac -> arg_tac (Arg_term (`y4_fan (V,E) d' = ye_fan (w,w') /\ y4'_fan (V,E2) d2 = ye_fan (FST d', v)`))) (term_tac (have_gen_tac [](move ["y4_eqs"]))));
1261 ((((use_arg_then2 ("y4_fan", [y4_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("d'_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> (use_arg_then2 ("PERMUTES_INVERSES", [PERMUTES_INVERSES])) (fun fst_arg -> (fun arg_tac -> (use_arg_then2 ("F_FAN_PAIR_EXT_PERMUTES_DART_OF_FAN", [F_FAN_PAIR_EXT_PERMUTES_DART_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("ye_fan", [ye_fan]))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
1262 ((((use_arg_then2 ("y4'_fan", [y4'_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("d2_eq", []))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("INVERSE_F_FAN_PAIR_EXT_EXPLICIT", [INVERSE_F_FAN_PAIR_EXT_EXPLICIT]))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)));
1263 ((repeat_tactic 1 9 (((use_arg_then2 ("res", [res]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("dart1_eq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("ww'_in", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("d2_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("d2_in2", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac) THEN (((use_arg_then2 ("ye_fan", [ye_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("DIST_SYM", [DIST_SYM]))(thm_tac (new_rewrite [] [])))));
1264 ((((use_arg_then2 ("E2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("w'_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> arg_tac (Arg_theorem (let_RULE sigma_fan_delete1)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1265 ((((use_arg_then2 ("dart1_switch", [dart1_switch]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("d2_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("fully_surrounded_card_set_of_edge1", [fully_surrounded_card_set_of_edge1]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1266 ((((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("PAIR_IN_DART_OF_FAN", [PAIR_IN_DART_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("ww'_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN (done_tac));
1267 ((fun arg_tac -> arg_tac (Arg_term (`y4_fan (V,E) d' <= r`))) (term_tac (have_gen_tac [](move ["r_ineq"]))));
1268 ((((use_arg_then2 ("r_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> arg_tac (Arg_term (`_ <= &3`))) (disch_eq_tac "ineq1" [])) THEN case THEN (simp_tac) THEN (process_fst_eq_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("y4_eqs", []))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1269 ((((use_arg_then2 ("d2_in1", [])) (disch_tac [])) THEN BETA_TAC) THEN ((((use_arg_then2 ("dart1_eq", []))(thm_tac (new_rewrite [] [])))) THEN (move ["d2_in"])));
1270 ((fun arg_tac -> arg_tac (Arg_term (`r <= &3 /\ sqrt8 <= r /\ &2 <= r`))) (term_tac (have_gen_tac [](move ["r_ineqs"]))));
1271 ((THENL_FIRST) (split_tac) ((((use_arg_then2 ("r_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (arith_tac) THEN (done_tac)));
1272 ((THENL_FIRST) (((THENL_ROT 1)) ((fun arg_tac -> arg_tac (Arg_term (`sqrt8 <= r`))) (term_tac (have_gen_tac []ALL_TAC)))) ((((use_arg_then2 ("Flyspeck_constants.bounds", [Flyspeck_constants.bounds])) (disch_tac [])) THEN (clear_assumption "Flyspeck_constants.bounds") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac)));
1273 ((((use_arg_then2 ("REAL_LE_TRANS", [REAL_LE_TRANS])) (disch_tac [])) THEN (clear_assumption "REAL_LE_TRANS") THEN (DISCH_THEN apply_tac)) THEN ((fun arg_tac -> arg_tac (Arg_term (`y4_fan (V,E) d'`))) (term_tac exists_tac)) THEN ((((use_arg_then2 ("r_ineq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("y4_eqs", []))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1275 ((((use_arg_then2 ("ineq", [ineq]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (GEN_ALL ALL)))(thm_tac (new_rewrite [] []))))) THEN (simp_tac) THEN (repeat_tactic 1 9 (((fun arg_tac -> arg_tac (Arg_theorem (ARITH_RULE `#2.0 = &2 /\ #3.0 = &3`)))(thm_tac (new_rewrite [] []))))));
1276 ((repeat_tactic 1 9 (((use_arg_then2 ("y_eqs", []))(thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("ww'_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("ww'_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1277 ((((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d2_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d2_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1278 (((((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d2_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("bounds", []))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("r_ineqs", []))(thm_tac (new_rewrite [] [])))))) THEN (done_tac));
1279 ((((use_arg_then2 ("s_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("REAL_LE_ADD2", [REAL_LE_ADD2]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("y_eqs", []))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 11 0 (((use_arg_then2 ("real_sub", [real_sub]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("REAL_LE_RADD", [REAL_LE_RADD]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("d2_eq", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LE_LADD", [REAL_LE_LADD]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("d2_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))));
1280 ((THENL_LAST) (split_tac) (((((use_arg_then2 ("REAL_LE_NEG", [REAL_LE_NEG]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("REAL_LE_RADD", [REAL_LE_RADD]))(thm_tac (new_rewrite [] []))))) THEN (done_tac)));
1281 (((fun arg_tac -> (fun arg_tac -> (use_arg_then2 ("dih_y_le_azim_dart", [dih_y_le_azim_dart])) (fun fst_arg -> (use_arg_then2 ("fan2", [fan2])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun fst_arg -> (use_arg_then2 ("d2_in2", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (disch_tac [])) THEN BETA_TAC);
1282 ((fun arg_tac -> arg_tac (Arg_term (`dih_y _1 _2 _3 _4 _5 _6`))) (term_tac (set_tac "y")));
1283 ((BETA_TAC THEN (move ["ineq_y"])) THEN (((use_arg_then2 ("REAL_LE_TRANS", [REAL_LE_TRANS])) (disch_tac [])) THEN (clear_assumption "REAL_LE_TRANS") THEN (DISCH_THEN apply_tac)) THEN ((use_arg_then2 ("y", [])) (term_tac exists_tac)));
1284 ((((use_arg_then2 ("ineq_y", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("andbT", [andbT]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("y_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("y_eqs", []))(thm_tac (new_rewrite [] []))))));
1285 ((THENL_FIRST) ((((use_arg_then2 ("dih_y_mono_le4", [dih_y_mono_le4]))(thm_tac (new_rewrite [] [])))) THEN (split_tac)) ((((use_arg_then2 ("r_ineqs", [])) (disch_tac [])) THEN (clear_assumption "r_ineqs") THEN BETA_TAC) THEN (arith_tac) THEN (done_tac)));
1286 ((THENL_FIRST) (split_tac) ((((use_arg_then2 ("r_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (arith_tac) THEN (done_tac)));
1287 ((repeat_tactic 1 9 (((use_arg_then2 ("y_eqs", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("fan_ups_x_pos", [fan_ups_x_pos])) (fun fst_arg -> (use_arg_then2 ("fan2", [fan2])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("fan_delta_y_pos", [fan_delta_y_pos]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("andTb", [andTb]))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("andbT", [andbT]))(thm_tac (new_rewrite [] [])))));
1288 (((use_arg_then2 ("Delta_ineq.delta_y_pos_apex", [Delta_ineq.delta_y_pos_apex]))(thm_tac (new_rewrite [] []))));
1289 ((((fun arg_tac -> (use_arg_then2 ("y1_lo", [y1_lo])) (fun fst_arg -> (use_arg_then2 ("d2_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y1_hi", [y1_hi])) (fun fst_arg -> (use_arg_then2 ("d2_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_lo", [y2_lo])) (fun fst_arg -> (use_arg_then2 ("d2_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y2_hi", [y2_hi])) (fun fst_arg -> (use_arg_then2 ("d2_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)));
1290 ((repeat_tactic 1 9 (((use_arg_then2 ("y_eqs", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("y3_lo", [y3_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y3_hi", [y3_hi]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("y5_lo", [y5_lo]))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("y6_lo", [y6_lo])) (fun fst_arg -> (use_arg_then2 ("d2_in", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("r_ineqs", []))(thm_tac (new_rewrite [] []))))));
1291 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`x <= #2.52 ==> x <= &3`))) (term_tac (have_gen_tac ["x"](move ["ineq2"])))) ((arith_tac) THEN (done_tac)));
1292 ((repeat_tactic 1 9 (((use_arg_then2 ("ineq2", []))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1294 (Sections.add_section_var (mk_var ("g", (`:num#num -> real^3#real^3`))));;
1295 (Sections.add_section_var (mk_var ("h", (`:num -> real^3`))));;
1296 (Sections.add_section_var (mk_var ("L", (`:((num)list)list`))));;
1297 (Sections.add_section_hyp "goodL" (`good_list L`));;
1298 (Sections.add_section_hyp "g_iso" (`hyp_iso g (hypermap_of_list L, hypermap_of_fan (V,E))`));;
1299 (Sections.add_section_hyp "g_eq" (`!d. g d = h (FST d), h (SND d)`));;
1301 (* Lemma crossdiag_list *)
1302 let crossdiag_list = Sections.section_proof []
1304 ye_list g d <= ye_list g (FST (inverse (f_list_ext L) d), SND (f_list_ext L (e_list d)))
1305 /\ sqrt8 <= ye_list g d /\ ye_list g d <= &3
1306 /\ ye_list g (inverse (f_list_ext L) d) <= #2.52
1307 /\ ye_list g (f_list_ext L (e_list d)) <= #2.52
1308 ==> (azim_list (g,V,E) d + azim_list (g,V,E) (f_list_ext L (e_list d))) - #1.903
1309 - #0.4 * (y1_list g d - &2)
1310 + #0.49688 * (y2_list g (f_list_ext L (e_list d)) + y3_list (g,V,E) d
1311 + y5_list (g,V,E) d + y6_list g (f_list_ext L (e_list d)) - &8)
1312 - (y4_list (g,V,E) (inverse (f_list_ext L) d) - sqrt8) >= &0)
1315 ((((use_arg_then2 ("ALL_MEM", [ALL_MEM]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (move ["d"]) THEN (move ["mem_d"]) THEN (simp_tac) THEN (move ["cond"]));
1316 ((fun arg_tac -> (use_arg_then2 ("COMPONENTS_HYPERMAP_OF_FAN", [COMPONENTS_HYPERMAP_OF_FAN])) (fun fst_arg -> (use_arg_then2 ("fanV", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN (move ["hypH"])));
1317 ((fun arg_tac -> (use_arg_then2 ("components_hypermap_of_list", [components_hypermap_of_list])) (fun fst_arg -> (use_arg_then2 ("goodL", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN (move ["hypL"])));
1318 ((((use_arg_then2 ("mem_d", [])) (disch_tac [])) THEN BETA_TAC) THEN ((((use_arg_then2 ("IN_SET_OF_LIST", [IN_SET_OF_LIST]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("darts3_eq_list_of_darts3", [darts3_eq_list_of_darts3]))(gsym_then (thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac))));
1319 (((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] []))))) THEN ALL_TAC THEN (case THEN ((move ["d_in"]) THEN (move ["card_f"]))));
1320 ((fun arg_tac -> (fun arg_tac -> arg_tac (Arg_theorem (let_RULE crossdiag_fan))) (fun fst_arg -> (fun arg_tac -> arg_tac (Arg_term (`g d`))) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg))) (fun arg -> thm_tac MP_TAC arg THEN ALL_TAC));
1321 ((fun arg_tac -> arg_tac (Arg_term (`f_list_ext L _`))) (term_tac (set_tac "d2")));
1322 ((fun arg_tac -> arg_tac (Arg_term (`inverse _ d`))) (term_tac (set_tac "d'")));
1323 ((THENL_FIRST) ((fun arg_tac -> arg_tac (Arg_term (`e_list_ext L d = e_list d`))) (term_tac (have_gen_tac [](move ["e_list_eq"])))) (((((use_arg_then2 ("e_list_ext", [e_list_ext]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("res", [res]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("hypL", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (done_tac)));
1324 ((fun arg_tac -> arg_tac (Arg_term (`d2 IN dart (hypermap_of_list L)`))) (term_tac (have_gen_tac [](move ["d2_in"]))));
1325 (((((use_arg_then2 ("d2_def", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("e_list_eq", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("hypL", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("lemma_dart_invariant", [lemma_dart_invariant]))(thm_tac (new_rewrite [] [])))))) THEN (done_tac));
1326 ((fun arg_tac -> arg_tac (Arg_term (`f_fan_pair_ext (V,E) (e_fan_pair_ext (V,E) (g d)) = g d2`))) (term_tac (have_gen_tac [](((conv_thm_tac DISCH_THEN)(thm_tac (new_rewrite [] [])))))));
1327 (((repeat_tactic 1 9 (((use_arg_then2 ("hypH", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("hyp_iso_comm", [hyp_iso_comm])) (fun fst_arg -> (use_arg_then2 ("g_iso", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("lemma_dart_invariant", [lemma_dart_invariant]))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1328 ((repeat_tactic 1 9 (((use_arg_then2 ("hypH", []))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (repeat_tactic 1 9 (((fun arg_tac -> (use_arg_then2 ("hyp_iso_inverse_comm", [hyp_iso_inverse_comm])) (fun fst_arg -> (use_arg_then2 ("g_iso", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (repeat_tactic 1 9 (((use_arg_then2 ("hypL", []))(thm_tac (new_rewrite [] []))))) THEN (((use_arg_then2 ("d'_def", []))(thm_tac (new_rewrite [] [])))));
1329 (((repeat_tactic 1 9 (((use_arg_then2 ("list_defs_th", [list_defs_th]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))))) THEN (DISCH_THEN apply_tac));
1330 ((((use_arg_then2 ("darts_k", [darts_k]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("inE", [inE]))(thm_tac (new_rewrite [] [])))) THEN (((fun arg_tac -> (use_arg_then2 ("hyp_iso_dart", [hyp_iso_dart])) (fun fst_arg -> (use_arg_then2 ("g_iso", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((fun arg_tac -> (use_arg_then2 ("hyp_iso_card_components", [hyp_iso_card_components])) (fun fst_arg -> (use_arg_then2 ("g_iso", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(gsym_then (thm_tac (new_rewrite [] []))))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("card_f", []))(thm_tac (new_rewrite [] [])))) THEN (simp_tac));
1331 ((((use_arg_then2 ("cond", [])) (disch_tac [])) THEN (clear_assumption "cond") THEN BETA_TAC) THEN (((repeat_tactic 1 9 (((use_arg_then2 ("list_defs_th", [list_defs_th]))(thm_tac (new_rewrite [] []))))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("o_THM", [o_THM]))(thm_tac (new_rewrite [] [])))))) THEN ALL_TAC THEN (case THEN (move ["c1"])) THEN (move ["cond"])));
1332 ((((use_arg_then2 ("y5_fan", [y5_fan]))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("y6_fan", [y6_fan]))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("ye_fan", [ye_fan]))(gsym_then (thm_tac (new_rewrite [] [])))))) THEN (((use_arg_then2 ("hypH", []))(gsym_then (thm_tac (new_rewrite [] []))))) THEN (((fun arg_tac -> (use_arg_then2 ("hyp_iso_inverse_comm", [hyp_iso_inverse_comm])) (fun fst_arg -> (use_arg_then2 ("g_iso", [])) (fun snd_arg -> combine_args_then arg_tac fst_arg snd_arg)))(thm_tac (new_rewrite [] [])))) THEN ((TRY done_tac)) THEN (((use_arg_then2 ("hypL", []))(thm_tac (new_rewrite [] [])))) THEN (((use_arg_then2 ("d'_def", []))(thm_tac (new_rewrite [] [])))) THEN (repeat_tactic 1 9 (((use_arg_then2 ("cond", []))(thm_tac (new_rewrite [] []))))) THEN (simp_tac));
1333 ((((use_arg_then2 ("c1", [])) (disch_tac [])) THEN (clear_assumption "c1") THEN BETA_TAC) THEN (repeat_tactic 1 9 (((use_arg_then2 ("g_eq", []))(thm_tac (new_rewrite [] []))))) THEN (done_tac));
1336 (* Finalization of the section Crossdiag *)
1337 let crossdiag_fan = Sections.finalize_theorem crossdiag_fan;;
1338 let crossdiag_list = Sections.finalize_theorem crossdiag_list;;
1339 Sections.end_section "Crossdiag";;
1341 (* Finalization of the section Pack *)
1342 let perimZ = Sections.finalize_theorem perimZ;;
1343 let perimZ_std = Sections.finalize_theorem perimZ_std;;
1344 let yapex_sup_flat_fan = Sections.finalize_theorem yapex_sup_flat_fan;;
1345 let yapex_sup_flat_list = Sections.finalize_theorem yapex_sup_flat_list;;
1346 let extra_ineqs_std3_small = Sections.finalize_theorem extra_ineqs_std3_small;;
1347 let extra_ineq_std3_big = Sections.finalize_theorem extra_ineq_std3_big;;
1348 let ineq77 = Sections.finalize_theorem ineq77;;
1349 let ineq77_std = Sections.finalize_theorem ineq77_std;;
1350 let ineq89 = Sections.finalize_theorem ineq89;;
1351 let ineq89_std = Sections.finalize_theorem ineq89_std;;
1352 let ineq90 = Sections.finalize_theorem ineq90;;
1353 let ineq90_std = Sections.finalize_theorem ineq90_std;;
1354 let ineq71 = Sections.finalize_theorem ineq71;;
1355 let ineq72 = Sections.finalize_theorem ineq72;;
1356 let ineq73 = Sections.finalize_theorem ineq73;;
1357 let ineq74 = Sections.finalize_theorem ineq74;;
1358 let ineq104 = Sections.finalize_theorem ineq104;;
1359 let ineq104_std = Sections.finalize_theorem ineq104_std;;
1360 let ineq105 = Sections.finalize_theorem ineq105;;
1361 let ineq105_std = Sections.finalize_theorem ineq105_std;;
1362 let ineq106 = Sections.finalize_theorem ineq106;;
1363 let ineq106_std = Sections.finalize_theorem ineq106_std;;
1364 let crossdiag_fan = Sections.finalize_theorem crossdiag_fan;;
1365 let crossdiag_list = Sections.finalize_theorem crossdiag_list;;
1366 Sections.end_section "Pack";;
1368 (* Finalization of the section FullySurrounded *)
1369 let perimZ = Sections.finalize_theorem perimZ;;
1370 let perimZ_std = Sections.finalize_theorem perimZ_std;;
1371 let yapex_sup_flat_fan = Sections.finalize_theorem yapex_sup_flat_fan;;
1372 let yapex_sup_flat_list = Sections.finalize_theorem yapex_sup_flat_list;;
1373 let extra_ineqs_std3_small = Sections.finalize_theorem extra_ineqs_std3_small;;
1374 let extra_ineq_std3_big = Sections.finalize_theorem extra_ineq_std3_big;;
1375 let ineq77 = Sections.finalize_theorem ineq77;;
1376 let ineq77_std = Sections.finalize_theorem ineq77_std;;
1377 let ineq89 = Sections.finalize_theorem ineq89;;
1378 let ineq89_std = Sections.finalize_theorem ineq89_std;;
1379 let ineq90 = Sections.finalize_theorem ineq90;;
1380 let ineq90_std = Sections.finalize_theorem ineq90_std;;
1381 let ineq71 = Sections.finalize_theorem ineq71;;
1382 let ineq72 = Sections.finalize_theorem ineq72;;
1383 let ineq73 = Sections.finalize_theorem ineq73;;
1384 let ineq74 = Sections.finalize_theorem ineq74;;
1385 let ineq104 = Sections.finalize_theorem ineq104;;
1386 let ineq104_std = Sections.finalize_theorem ineq104_std;;
1387 let ineq105 = Sections.finalize_theorem ineq105;;
1388 let ineq105_std = Sections.finalize_theorem ineq105_std;;
1389 let ineq106 = Sections.finalize_theorem ineq106;;
1390 let ineq106_std = Sections.finalize_theorem ineq106_std;;
1391 let crossdiag_fan = Sections.finalize_theorem crossdiag_fan;;
1392 let crossdiag_list = Sections.finalize_theorem crossdiag_list;;
1393 Sections.end_section "FullySurrounded";;
1395 (* Close the module *)