1 (* ========================================================================== *)
2 (* FLYSPECK - BOOK FORMALIZATION *)
4 (* Chapter: Local Fan *)
5 (* Author: Hoang Le Truong *)
7 (* ========================================================================= *)
11 remaining conclusions from appendix to Local Fan chapter
15 module Sgtrnaf = struct
25 open Wrgcvdr_cizmrrh;;
33 open Flyspeck_constants;;
49 open Wrgcvdr_cizmrrh;;
51 open Flyspeck_constants;;
75 let UXCKFPE2=prove_by_refinement(
76 ` !s vv. is_scs_v39 s /\ vv IN BBs_v39 s
77 /\ taustar_v39 s vv < &0
78 ==> ~(BBprime2_v39 s = {})`,
83 THEN MRESA_TAC UXCKFPE[`s:scs_v39`;`vv:num->real^3`]
85 THEN REWRITE_TAC[SET_RULE`~(A={})<=> ?vv1. vv1 IN A`;BBprime2_v39;IN;BBindex_min_v39;]
87 THEN SUBGOAL_THEN`?n. (?vv1. BBprime_v39 s vv1 /\
88 BBindex_v39 s vv1=n)` ASSUME_TAC;
90 EXISTS_TAC`BBindex_v39 s vv1`
91 THEN EXISTS_TAC`vv1:num->real^3`
92 THEN ASM_REWRITE_TAC[];
95 THEN REWRITE_TAC[MINIMAL]
97 THEN EXISTS_TAC`vv1':num->real^3`
99 THEN POP_ASSUM(fun th-> ASM_REWRITE_TAC[SYM th] THEN ASSUME_TAC (SYM th))
100 THEN ASM_REWRITE_TAC[Misc_defs_and_lemmas.min_num;ARITH_RULE`(A=B:num)<=> (B=A)`]
102 THEN MATCH_MP_TAC SELECT_UNIQUE
103 THEN ASM_REWRITE_TAC[BETA_THM;IMAGE;IN_ELIM_THM;]
109 THEN POP_ASSUM MP_TAC
110 THEN ASM_REWRITE_TAC[]
111 THEN SUBGOAL_THEN`(?x. BBprime_v39 s x /\ BBindex_v39 s vv1' = BBindex_v39 s x)`ASSUME_TAC;
113 EXISTS_TAC`vv1':num->real^3`
114 THEN ASM_REWRITE_TAC[];
117 THEN POP_ASSUM(fun th-> MRESA1_TAC th`BBindex_v39 s vv1'`)
118 THEN MP_TAC(ARITH_RULE`BBindex_v39 s x <= BBindex_v39 s vv1' ==>
119 BBindex_v39 s x < BBindex_v39 s vv1' \/ BBindex_v39 s x = BBindex_v39 s vv1'`)
121 THEN REPLICATE_TAC 5 (POP_ASSUM MP_TAC)
122 THEN POP_ASSUM(fun th-> REPEAT STRIP_TAC THEN
123 MRESA1_TAC th` BBindex_v39 s x`)
124 THEN SUBGOAL_THEN`(?vv1. BBprime_v39 s vv1 /\ BBindex_v39 s x = BBindex_v39 s vv1)`ASSUME_TAC;
126 EXISTS_TAC`x:num->real^3`
127 THEN ASM_REWRITE_TAC[];
130 THEN ASM_REWRITE_TAC[];
133 THEN ASM_REWRITE_TAC[]
138 EXISTS_TAC`vv1':num->real^3`
139 THEN ASM_REWRITE_TAC[];
143 THEN ASM_REWRITE_TAC[]
144 THEN MP_TAC(ARITH_RULE`BBindex_v39 s x <BBindex_v39 s vv1' \/ BBindex_v39 s vv1' <= BBindex_v39 s x`)
149 REPLICATE_TAC 4 (POP_ASSUM MP_TAC)
150 THEN POP_ASSUM(fun th-> REPEAT STRIP_TAC THEN
151 MRESA1_TAC th` BBindex_v39 s x`)
152 THEN SUBGOAL_THEN`(?vv1. BBprime_v39 s vv1 /\ BBindex_v39 s x = BBindex_v39 s vv1)`ASSUME_TAC;
154 EXISTS_TAC`x:num->real^3`
155 THEN ASM_REWRITE_TAC[];
159 THEN ASM_REWRITE_TAC[];
167 `!s vv. is_scs_v39 s/\ unadorned_v39 s /\ vv IN BBs_v39 s /\
168 taustar_v39 s vv < &0
169 ==> ~(MMs_v39 s = {})`,
172 THEN MP_TAC unadorned_MMs
174 THEN MATCH_MP_TAC UXCKFPE2
175 THEN EXISTS_TAC`vv:num->real^3`
176 THEN ASM_REWRITE_TAC[]);;
185 let check_completeness_claimA_concl =
186 Ineq.mk_tplate `\x. scs_arrow_v13 (set_of_list x)