1 (* ========================================================================== *)
2 (* FLYSPECK - BOOK FORMALIZATION *)
6 (* Author: Thomas C. Hales *)
8 (* ========================================================================== *)
10 flyspeck_needs "fan/fan_defs.hl";;
12 module Fan_concl = struct
16 let fan_card = new_definition `fan_card (V,E) <=> FINITE V /\ ~(V SUBSET {})`;;
18 let fan_origin = new_definition `fan_origin (V,E) <=> ~(vec 0 IN V)`;;
20 let fan_nonparallel = new_definition `fan_nonparallel (V,E) <=> (!e. (e IN E) ==> ~(collinear ({vec 0} UNION e)))`;;
22 let fan_intersection = new_definition `fan_intersection(V,E):bool<=> (!e1 e2. (e1 IN E UNION {{v}| v IN V}) /\ (e2 IN E UNION {{v}| v IN V})
23 ==> ((aff_ge {vec 0} e1) INTER (aff_ge {vec 0} e2) = aff_ge {vec 0} (e1 INTER e2)))`;;
25 let fan = new_definition `fan (V,E) <=> ((UNIONS E) SUBSET V) /\ graph(E) /\ fan_card(V,E) /\ fan_origin(V,E)/\
26 fan_nonparallel(V,E)/\ fan_intersection(V,E)`;;
29 (* move to fan_misc.hl *)
30 let fan_of_FAN = prove(`!V E. FAN((vec 0), V,E) = fan(V,E)`,
31 REWRITE_TAC[fan,fan_origin,fan_card,fan_nonparallel,fan_intersection,
32 FAN, fan1,fan2,fan6,fan7] THEN MESON_TAC[]
37 let CTVTAQA_concl = `!V E E'. fan (V,E) /\ (E' SUBSET E) ==> fan (V,E')`;;
39 let XOLHLED_concl = `!V E v. fan (V,E) /\ (v IN V) ==> cyclic_set(set_of_edge v V E) (vec 0) v`;; (* introduction.hl:XOHLED *)
41 let AAUHTVE_concl = `!V E. fan(V,E) ==>
42 (hypermap_of_fan (V,E))
43 (!d. d IN dart1_of_fan ==> (e_fan_pair (V,E) (e_fan_pair (V,E) d) = d)) /\
44 (!d. d IN dart1_of_fan ==> (e_fan_pair (V,E) (e_fa
47 let PIIJBJK_concl= `!x V E . FAN (x,V,E) /\ fan81 (x,V,E) ==> conforming_fan (x,V,E)`;;