(* definition of fan as ordered pairs *) (* This is the correct definition to use!! *)let CASE_FAN_FINITE = new_definition `CASE_FAN_FINITE (V,E):bool <=> FINITE V /\ ~(V SUBSET {})`;;let CASE_FAN_ORIGIN = new_definition `CASE_FAN_ORIGIN (V,E) <=> ~((vec 0) IN (V:real^3 -> bool))`;;let CASE_FAN_INDEPENDENCE = new_definition `CASE_FAN_INDEPENDENCE (V,E) <=> (!e. e IN E ==> ~collinear ({vec 0} UNION e))`;;let CASE_FAN_INTERSECTION = new_definition`CASE_FAN_INTERSECTION(V,E):bool<=> (!e1 e2. (e1 IN E UNION {{v}| v IN V}) /\ (e2 IN E UNION {{v}| v IN V}) ==> ((aff_ge {vec 0 } e1) INTER (aff_ge {vec 0} e2) = aff_ge {vec 0} (e1 INTER e2)))`;;let FANO=new_definition`FANO(V,E) <=> ((UNIONS E) SUBSET V) /\ graph(E) /\ CASE_FAN_FINITE(V,E) /\ CASE_FAN_ORIGIN(V,E)/\ CASE_FAN_INDEPENDENCE(V,E)/\ CASE_FAN_INTERSECTION(V,E)`;;