(* Specifications: *)
Lemma col_decS : forall A B C:Point, S A B C = 0 \/ S A B C <>0.
Lemma perp_bissect_perp : forall A B M C, is_midpoint M A B -> on_perp C M B -> perp C M A B.
Lemma perp_bissect_eq_distance : forall A B M C, is_midpoint M A B -> on_perp C M B -> eq_distance C A C B.
Lemma perp_bissect_eq_angle : forall A B M C, is_midpoint M A B -> on_perp C M B -> eq_angle C A B A B C.
Lemma rectangle_1 : forall A B C D, on_perp C B A -> on_parallel_d D C A B (0-1) -> perp A D A B.
Lemma rectangle_2 : forall A B C D, on_perp C B A -> on_parallel_d D C A B (0-1) -> parallel A D B C.
Lemma square_1 : forall A B C D, on_perp_d C B A 1 -> on_parallel_d D C A B (0-1) -> eq_distance A B B C.
Lemma square_2 : forall A B C D, on_perp_d C B A 1 -> on_parallel_d D C A B (0-1) -> eq_distance A B C D.
Lemma circle_square_triangle : forall A B C M, is_midpoint M B C -> on_perp C A B -> eq_distance M B M A.
Lemma l_6_264 : forall A B C F H, on_perp_d F A B 1 -> on_perp_d H A C (0-1) -> S A B C = S A H F.
Lemma l_6_266 : forall A B C F H N, on_perp_d F A B 1 -> on_perp_d H A C (0-1) -> is_midpoint N F H -> perp N A B C.
Lemma l_6_267 : forall A B C F H, on_perp_d F A B 1 -> on_perp_d H A C (0-1) -> eq_distance F C B H.
Lemma l_6_268 : forall A B C F H, on_perp_d F A B 1 -> on_perp_d H A C (0-1) -> perp F C B H.
Lemma l_6_269 : forall A B C D F E G, on_perp_d D B A 1 -> on_foot F D B C -> on_perp_d E C A (0-1) -> on_foot G E B C -> S A B C = S B D F + S C G E.
Lemma l_6_270 : forall A B C E G P, on_perp_d E B A 1 -> on_perp_d G C A (0-1) -> is_midpoint P E G -> eq_distance B P C P.
Lemma l_6_271 : forall B C D G E r, on_perp_d B C D 1 -> on_line_d G C D r -> on_line_d E C B (0-r) -> perp D E B G.
Lemma l6_222 : forall A B C D P Q R S, is_midpoint P A B -> is_midpoint Q B C -> is_midpoint S D A -> is_midpoint R C D -> Py A C A + Py B D B = 2* (Py Q S Q + Py P R P).
Lemma l_3_40 : forall A B C E G, on_perp_d E A B 1 -> on_perp_d G A C (0 - 1) -> perp E C G B.
Lemma l_3_41 : forall A B C D F M, on_perp_d D C A 1 -> on_perp_d F C B (0-1) -> is_midpoint M A B -> perp D F C M.
Lemma test_elim : forall A B C D Q, is_midpoint Q B C -> Py A Q A + Py A Q D = Py Q A Q + Py A Q D.
Lemma l_6_134 : forall A B C M D E F I J, on_foot M A B C -> is_midpoint D B C -> is_midpoint E A C -> is_midpoint F A B -> is_midpoint I E F -> is_midpoint J M D -> B<>C -> parallel I J A M.
Lemma nine_point_1 : forall A B C A' B' C' M, is_midpoint A' B C -> is_midpoint B' A C -> is_midpoint C' A B -> on_foot M A B C -> co_circle M A' B' C'.
Lemma l_6_265 : forall A B C M F H, is_midpoint M B C -> on_perp_d F A B 1 -> on_perp_d H A C (- (1)) -> Py H F H = (2+2) * Py M A M.
Lemma l3_51: forall A B C D J M N, on_foot D A B C -> on_line J A D -> inter_ll M A B C J -> inter_ll N A C B J -> eq_angle M D A A D N.
Lemma l_6_272 : forall A B C M E P G Q L, is_midpoint M B C -> on_perp_d E A B 1 -> is_midpoint P B E -> on_perp_d G A C (0-1) -> is_midpoint Q C G -> is_midpoint L E G -> eq_distance P M L Q.
Lemma l6_84 : forall A B C D E F G, on_foot D C A B -> on_foot E B A C -> is_midpoint F B C -> is_midpoint G D E -> perp G F D E.
Lemma l_3_45 : forall A B C E F G A1 B1 C1 r, is_midpoint E A C -> on_perp_d B1 E A r -> is_midpoint F B C -> on_perp_d A1 F C r -> is_midpoint G A B -> on_perp_d C1 G B (0-r) -> parallel A1 C1 C B1.
Lemma l6_46 : forall A B C F N K J, is_midpoint F A B -> on_line N C F -> on_foot K N A C -> on_foot J N B C -> Py N K N * Py A C A = Py N J N * Py B C B.
Lemma l6_44 : forall A B C G P Q I J, is_midpoint J A C -> is_midpoint I B C -> inter_ll G J B I A -> on_inter_line_parallel P G A B B C -> on_inter_line_parallel Q G A C B C -> G<>P -> G<>Q -> (2+2)*S4 P Q C B = (2+2+1)*S A Q P.
Theorem th6_259 : forall A B C D E F G H R L : Point, on_parallel_d E A B D 1 -> on_parallel_d G A C F 1 -> inter_ll H D E F G -> inter_ll R B C H A -> on_parallel_d L B H A 1 -> S F A B <> 0 -> S A C F + S B A D = S C B L.
Theorem common_point_not_par_aux : forall A B C D Y : Point, Col Y A B -> Col Y C D -> A <> B -> C <> D -> ~ Col D A B -> ~ Col Y A C -> ~ parallel A B C D.
Lemma col_par_1 : forall A B C, Col A B C -> parallel A B B C.
Lemma col_par_2 : forall A B C, Col A B C -> parallel A B C B.
Lemma col_par_3 : forall A B C, Col A B C -> parallel B A C B.
Lemma col_par_4 : forall A B C, Col A B C -> parallel B A B C.
Lemma par_col_col_1 : forall A B C D, parallel A B C D -> Col A B C -> Col A B D.
Lemma par_col_col_2 : forall A B C D, parallel A B C D -> Col A B D -> Col A B C.
Lemma par_col_col_3 : forall A B C D, parallel A B C D -> Col A C D -> Col B C D.
Lemma par_col_col_4 : forall A B C D, parallel A B C D -> Col B C D -> Col A C D.
Theorem common_point_not_par : forall A B C D Y : Point, Col Y A B -> Col Y C D -> A <> B -> C <> D -> ~ Col Y A C -> ~ parallel A B C D.
Lemma l3_43 : forall O A B X Y C D P Q R T r, mratio C A B r -> mratio D A B (0-r) -> inter_ll P O A X Y -> inter_ll Q O B X Y -> inter_ll R O C X Y -> inter_ll T O D X Y -> parallel P R R Q -> R<>Q -> parallel T P T Q -> T<>Q -> P<>T -> P<>R -> ~ Col P X Y -> harmonic P Q R T.
Theorem Pascal : forall A B C A' B' C' : Point, A<>C' -> on_line C A B -> on_parallel B' A B A' -> on_inter_line_parallel C' A A' B' C A' -> parallel B C' B' C.
Theorem Desargues : forall A B C X A' B' C' : Point, A' <>C' -> A' <> B' -> on_line A' X A -> on_inter_line_parallel B' A' X B A B -> on_inter_line_parallel C' A' X C A C -> parallel B C B' C'.
Theorem Prop51Hartsshorne : forall A B C D E : Point, is_midpoint D A B -> is_midpoint E A C -> parallel D E B C.
Theorem is_midpoint_A : forall A B C A' B' : Point, is_midpoint A' B C -> is_midpoint B' A C -> parallel A' B' A B.
Theorem Prop54Hartsshorne : forall A B C D E F G : Point, is_midpoint D A B -> is_midpoint E A C -> is_midpoint F B C -> inter_ll G E B C D -> Col A G F.
Theorem Exo55Hartsshorne : forall A B C D I J K L, is_midpoint I A B -> is_midpoint J B C -> is_midpoint K C D -> is_midpoint L D A -> parallel I J K L /\ parallel I L J K.
Theorem th6_42 : forall A B C L M N P K : Point, is_midpoint M A B -> is_midpoint N A C -> is_midpoint K B C -> is_midpoint L A K -> on_inter_parallel_parallel P A C M K B N -> P<>A -> (2 + 2) * S A K P = (1 + 2) * S A B C.
Theorem th6_7 : forall A B C L M N O : Point, inter_ll L B C A O -> inter_ll N B A C O -> inter_ll M A C B O -> S A M L * (S B N M * S C L N) = S A N L * (S B L M * S C N M).
Theorem th6_256_1 : forall (A B C D P Q R S : Point) (r1 r2 : F), on_parallel_d D A B C 1 -> on_line_d S D A r2 -> on_line_d P A B r1 -> on_line_d R C D r1 -> on_line_d Q B C r2 -> P <> S -> parallel Q R P S.
Theorem th6_257 : forall (A B C D P Q R S : Point) (r1 r2 : F), on_parallel_d D A B C 1 -> on_line_d S D A r2 -> on_line_d P A B r1 -> on_line_d R C D r1 -> on_line_d Q B C r2 -> S4 P Q R S = (2 * (r2 * r1) - r2 - r1 + 1) * S4 A B C D.
Theorem gauss_line : forall A0 A1 A2 A3 X Y M1 M2 M3 : Point, inter_ll X A0 A3 A1 A2 -> inter_ll Y A2 A3 A1 A0 -> is_midpoint M1 A1 A3 -> is_midpoint M2 A0 A2 -> is_midpoint M3 X Y -> S A0 A1 A2 <> 0 -> Col M1 M2 M3.
Lemma centroid_check : forall A B C G A', is_centroid G A B C -> is_midpoint A' B C -> Col A G A'.
Lemma euler_line : forall A B C H O G, is_circumcenter O A B C -> is_orthocenter H A B C -> is_centroid G A B C -> Col O G H.
Lemma centroid_midpoint_centroid : forall A B C G A' B' C' G' X, is_centroid G A B C -> is_midpoint A' B C -> is_midpoint B' A C -> is_midpoint C' A B -> is_centroid G' A' B' C' -> 1+2<>0 -> Col G G' X.
Lemma centroid_midpoint_centroid_2 : forall A B C G A' B' C' G', is_centroid G A B C -> is_midpoint A' B C -> is_midpoint B' A C -> is_midpoint C' A B -> is_centroid G' A' B' C' -> 1+2<>0 -> Py G G' G = 0.
Lemma l6_44 : forall A B C G P Q, is_centroid G A B C -> on_inter_line_parallel P G A B B C -> on_inter_line_parallel Q G A C B C -> G<>Q -> G<>P -> 1+2 <> 0 -> 2*2*S4 P Q C B = (2+2+1)* S A Q P.
Theorem combine_inter_parallel : forall A B C E F X Y r, (on_parallel_d X C A B r) -> (inter_ll Y C X E F) -> ~ Col C A B -> (on_inter_line_parallel Y C E F A B).
Lemma essai : forall A B C, let x := S A B C + 2 in let y := S B C A + 2 in x = y.
Lemma test_py_on_line_1 : forall I B C D E, on_line I B C -> Py I D E = Py E D I.
Lemma test_py_on_line_2 : forall I B C D E, on_line I B C -> Py D E I = Py D E I.
Lemma test_py_on_line_3 : forall I B C D, on_line I B C -> Py I D I = Py I D I.
Lemma test_py_on_line_4 : forall I B C, on_line I B C -> Py B I C = Py B I C.
Lemma test_py_on_line_4_b : forall I B C, B<>C -> on_line I B C -> Py B I C = Py B I C.
Lemma test_py_on_line_4_c : forall I B C, B=C -> on_line I B C -> Py B I C = Py B I C.
Lemma test_py_on_line_5 : forall I P Q B, on_line I P Q -> Py B I B = Py B I B.
Lemma test_py_on_line_d_1 : forall I B C r, on_line_d I B C r -> Py I C B = Py B C I.
Lemma test_py_on_line_d_2 : forall I B C r, on_line_d I B C r -> Py B C I = Py B C I.
Lemma test_py_on_line_d_3 : forall I B C r, on_line_d I B C r -> Py B I C = Py B I C.
Lemma test_py_on_line_d_4 : forall I B C r, on_line_d I B C r -> Py B I B = Py B I B.
Lemma test_py_on_line_d_5 : forall A B C D Q r, on_line_d Q B C r -> Py A Q D = Py A Q D.
Lemma test_py_on_line_d_6 : forall A B C D Q r, on_line_d Q B C r -> Py A Q A + Py A Q D = Py Q A Q + Py A Q D.
Lemma test_inter_ll_1 : forall I A B C D X Y, inter_ll I A B C D -> Py I X Y = Py Y X I.
Lemma test_inter_ll_2 : forall I A B C D X Y, inter_ll I A B C D -> Py Y X I = Py Y X I.
Lemma test_inter_ll_3 : forall I A B C D X Y, inter_ll I A B C D -> Py Y I X = Py Y I X.
Lemma test_inter_ll_4 : forall I A B C D X, inter_ll I A B C D -> Py X I X = Py X I X.
Lemma test_py_on_parallel_d_1 : forall I B C D X Y r, on_parallel_d I B C D r -> Py X Y I = Py X Y I.
Lemma test_py_on_parallel_d_2 : forall I B C D X Y r, on_parallel_d I B C D r -> Py I Y X = Py I Y X.
Lemma test_py_on_parallel_d_3 : forall I B C D X Y r, on_parallel_d I B C D r -> Py X I Y = Py X I Y.
Lemma test_py_on_parallel_d_4 : forall I B C D X r, on_parallel_d I B C D r -> Py X I X = Py X I X.
Lemma test_py_on_perp_1 : forall I A B X Y, on_perp I A B -> Py X Y I = Py X Y I.
Lemma test_py_on_perp_2 : forall I A B X Y, on_perp I A B -> Py I Y X = Py X Y I.
Lemma test_py_on_perp_3 : forall I A B X Y, on_perp I A B -> Py X I Y = Py X I Y.
Lemma test_py_on_perp_4 : forall I A B X, on_perp I A B -> Py X I X = Py X I X.
Lemma test_py_on_perp_d_1 : forall I A B r X Y, on_perp_d I A B r -> Py X Y I = Py X Y I.
Lemma test_py_on_perp_d_2 : forall I A B r X Y, on_perp_d I A B r -> Py I Y X = Py X Y I.
Lemma test_py_on_perp_d_3 : forall I A B r X Y, on_perp_d I A B r -> Py X I Y = Py X I Y.
Lemma test_py_on_perp_d_4 : forall I A B r Y, on_perp_d I A B r -> Py Y I Y = Py Y I Y.
Lemma test_py_on_foot_1 : forall I A B C X Y, on_foot I A B C -> Py X Y I = Py X Y I.
Lemma test_py_on_foot_2 : forall I A B C X Y, on_foot I A B C -> Py I Y X = Py X Y I.
Lemma test_py_on_foot_3 : forall I A B C X Y, on_foot I A B C -> Py X I Y = Py X I Y.
Lemma test_py_on_foot_4 : forall I A B C X, on_foot I A B C -> Py X I X = Py X I X.
Lemma test_py_on_foot_5 : forall A B C E, on_foot E B A C -> Py B E B + Py E A C = Py B E B + Py E A C.
Lemma elim_py_a_ratio_right : forall Y O U V A B ro ru rv, a_ratio Y O U V ro ru rv -> Py A B Y = ro * Py A B O + ru * Py A B U + rv * Py A B V.
Lemma elim_signed_area_a_ratio : forall Y O U V A B ro ru rv, a_ratio Y O U V ro ru rv -> S A B Y = ro * S A B O + ru * S A B U + rv * S A B V.
Lemma elim_py_a_ratio_middle : forall Y O U V A B ro ru rv, a_ratio Y O U V ro ru rv -> Py A Y B = ro * Py A O B + ru * Py A U B + rv * Py A V B - ro*ru*Py O U O - ro*ru*Py O V O - ru*rv * Py U V U.
Lemma elim_py_a_ratio_left_right : forall Y O U V A ro ru rv, a_ratio Y O U V ro ru rv -> Py Y A Y = ro * (ro * Py O A O + ru * Py O A U + rv * Py O A V) + ru * (ro * Py U A O + ru * Py U A U + rv * Py U A V) + rv * (ro * Py V A O + ru * Py V A U + rv * Py V A V).
Theorem non_zero_denom_on_line_area : forall A B C : Point, on_line A B C -> B <> C.
Theorem non_zero_denom_inter_ll_area : forall A B C D E : Point, inter_ll A B C D E -> S4 B D C E <> 0.
Theorem non_zero_denom_on_parallel_d_area : forall A B C D : Point, on_parallel A B C D -> C <> D.
Theorem non_zero_denom_on_inter_line_parallel_area : forall A B C D E G : Point, on_inter_line_parallel A B C D E G -> S4 E C G D <> 0.
Theorem non_zero_denom_on_inter_parallel_parallel_area : forall A B C D E G H : Point, on_inter_parallel_parallel A B C D E G H -> S4 C G D H <> 0.
Theorem elim_area_on_line_d : forall (A B P Q Y : Point) (lambda : F), on_line_d Y P Q lambda -> S A B Y = lambda * S A B Q + (1 - lambda) * S A B P.
Theorem elim_area_inter_ll : forall A B P Q U V Y : Point, inter_ll Y P Q U V -> S A B Y = 1 / S4 P U Q V * (S P U V * S A B Q + S Q V U * S A B P).
Theorem elim_area_on_parallel_d : forall (A B P Q R Y : Point) (lambda : F), on_parallel_d Y R P Q lambda -> S A B Y = S A B R + lambda * S4 A P B Q.
Lemma parallel_transitivity : forall A B C D E F, C<> D -> parallel A B C D -> parallel C D E F -> parallel A B E F.
Lemma elim_area_on_inter_line_parallel : forall P Q R U V Y A B : Point, on_inter_line_parallel Y R U V P Q -> R <>Y -> S A B Y = (S4 P U Q R * S A B V - S4 P V Q R * S A B U) / S4 P U Q V.
Lemma l6_52 : forall A B C D E F, is_midpoint E A C -> is_midpoint F A B -> is_midpoint D B C -> 2*(Py A D A)+2*(Py F C F) +2*Py B E B = (2+1)/2 * (Py A C A + Py A B A + Py B C B).
Lemma l6_55 : forall A B C E G, is_midpoint E A C -> on_line_d G B E (2/(2+1)) -> 1+2 <> 0 -> (2+1) * (Py A G A + Py G C G + Py B G B) = Py A C A + Py A B A + Py B C B.
Lemma l6_56 : forall A B C E G M, is_midpoint E A C -> on_line_d G B E (2/(2+1)) -> 1+2 <> 0 -> (2+1) * Py M G M + Py A G A + Py G C G + Py B G B = Py A M A + Py B M B + Py C M C.
Lemma l6_67 : forall A B C F E, on_foot F C A B -> on_foot E B A C -> Py B A F = Py C A E.
Lemma l6_69 : forall A B C D E F, on_foot F C A B -> on_foot E B A C -> on_foot D A B C -> eq_angle E D C B D F.
Lemma l6_197 : forall A B C E F G, on_foot E A B C -> on_foot F B A C -> on_foot G C A B -> 2 * Py A B C * Py B A C * Py A C B * S A B C = Py A B A * Py B C B * Py A C A * S E F G.
Lemma l6_218 : forall A B C D E F G H, is_midpoint E A B -> is_midpoint F B C -> is_midpoint G C D -> is_midpoint H D A -> 2* S4 E F G H = S4 A B C D.
Lemma l6_224 : forall A B C D N M P r, is_midpoint N A C -> is_midpoint M B D -> on_line_d P N M r -> S P A B + S P C D = S P D A + S P B C.
Lemma l6_223 : forall A B C D X Y W, is_midpoint X C A -> is_midpoint Y B D -> inter_ll W B C D A -> S4 B C D A = (2+2)* S X Y W.
Lemma S_0 : forall A B C : Point, S A B C = S C A B.
Lemma S_1 : forall A B C : Point, S A B C = S B C A.
Lemma S_2 : forall A B C : Point, S A B C = - S C B A.
Lemma S_3 : forall A B C : Point, S A B C = - S A C B.
Lemma S_4 : forall A B C : Point, S A B C = - S B A C.
Lemma S4_1 : forall A B C D : Point, S4 A B C D = S A B D - S C B D.
Lemma S4_2 : forall A B C D : Point, S4 A B C D = S4 B C D A.
Lemma S4_3 : forall A B C D : Point, S4 A B C D = S4 C D A B.
Lemma S4_4 : forall A B C D : Point, S4 A B C D = S4 D A B C.
Lemma S4_5 : forall A B C D : Point, S4 A B C D = - S4 A D C B.
Lemma S4_6 : forall A B C D : Point, S4 A B C D = - S4 D C B A.
Lemma S4_7 : forall A B C D : Point, S4 A B C D = - S4 C B A D.
Lemma S4_8 : forall A B C D : Point, S4 A B C D = - S4 B A D C.
Lemma lpar1 : forall A B C D : Point, parallel A B C D -> parallel A B D C.
Lemma lpar2 : forall A B C D : Point, parallel A B C D -> parallel B A C D.
Lemma lpar3 : forall A B C D : Point, parallel A B C D -> parallel B A D C.
Lemma ldiff : forall A B : Point, A <> B -> B <> A.
Lemma simplring1 : forall x : F, x = - - x.
Lemma field_prop_2 : forall a : F, a = - a -> a = 0.
Lemma trivial_col1 : forall A B : Point, 0 = S A A B.
Lemma trivial_col2 : forall A B : Point, 0 = S A B B.
Lemma trivial_col3 : forall A B : Point, 0 = S A B A.
Theorem parallel_transitivity : forall A B C D E F : Point, A <> B -> on_parallel C D A B -> on_parallel E F C D -> parallel A B E F.
Theorem parallel_pseudo_transitivity : forall A B C D E F : Point, A <> B -> on_parallel C D A B -> on_parallel E F A B -> parallel C D E F.
Theorem parallellogram_second_parallel : forall A B C D : Point, on_parallel_d D C A B 1 -> parallel A C B D.
Theorem parallellogram_construction : forall A B C D I : Point, is_midpoint I A C -> on_line_d D I B (-(1)) -> parallel C D A B.
Lemma example_construction_simplification: forall A B C D E F G Line_3_b Line_6_b, on_line C A B -> on_parallel Line_3_b C A D -> inter_ll E C Line_3_b B D -> on_parallel Line_6_b C F A -> inter_ll G C Line_6_b F B -> parallel E G D F.
Theorem parallellogram_construction_2 : forall A B C D I : Point, is_midpoint I A C -> on_line_d D I B (-(1)) -> parallel C D A B /\ parallel A D B C.
Lemma field_prop_1 : forall a b : F, a + b = a -> b = 0.
Lemma field_prop_3 : forall a : F, a = 0 -> - a = 0.
Lemma field_prop_4 : forall a : F, - a = 0 -> a = 0.
Lemma field_prop_5 : forall a b : F, - a = - b -> a = b.
Lemma nonzeromult : forall a b : F, a <> 0 -> b <> 0 -> a * b <> 0.
Lemma nonzerodiv : forall a b : F, a <> 0 -> b <> 0 -> a / b <> 0.
Lemma nonzeroinv : forall a : F, a <> 0 -> / a <> 0.
Lemma opzero : forall a : F, a <> 0 -> - a <> 0.
Theorem divnonzero: forall a b: F, a / b <> 0 -> a<>0.
Theorem multnonzero: forall a b: F, a*b<>0 -> a<>0 /\ b<>0.
Theorem multnonzero_l: forall a b: F, a*b<>0 -> a<>0.
Theorem multnonzero_r: forall a b: F, a*b<>0 -> b<>0.
Lemma inverse_ratio : forall a b, a<>0 -> b<>0 -> a/b = 1 / (b/a).
Theorem Pappus : forall A B C A' B' C' P Q R :Point, on_line C A B -> on_line C' A' B' -> inter_ll P A' B A B' -> inter_ll Q A C' A' C -> inter_ll R B' C B C' -> Col P Q R.
Lemma perp4_perp : forall A B P, perp A B P A -> Py P A B = 0.
Lemma perp_not_eq_not_perp : forall A B P D, perp A B P D -> Col A D B -> A <> B -> B <> D -> A <> D -> Py P A B <> 0.
Lemma per_col_eq : forall A B C, per A B C -> Col A B C -> A = B \/ B = C.
Lemma perp_col_perp : forall P Q B C, Q<>B -> per P Q B -> Col Q B C -> per P Q C.
Lemma per_dec : forall A B C, per A B C \/ ~ per A B C.
Lemma test_area_on_line_1 : forall I B C, on_line I B C -> S I B C = 0.
Lemma test_area_on_line_2 : forall I B C, on_line I B C -> S B C I = 0.
Lemma test_area_on_line_3 : forall I B C, on_line I B C -> S B I C = 0.
Lemma test_area_on_line_d_1 : forall I B C, forall x:F, on_line_d I B C x -> S B I C = 0.
Lemma test_area_on_line_d_2 : forall I B C, forall x:F, on_line_d I B C x -> S I B C = 0.
Lemma test_area_on_line_d_3 : forall I B C, forall x:F, on_line_d I B C x -> S B C I = 0.
Lemma test_area_inter_ll_1 : forall I A B C D X Y, inter_ll I A B C D -> S X Y I = 1 / S4 A C B D * (S A C D * S X Y B + S B D C * S X Y A) .
Lemma test_area_inter_ll_2 : forall I A B C D X Y, inter_ll I A B C D -> S I X Y = 1 / S4 A C B D * (S A C D * S X Y B + S B D C * S X Y A) .
Lemma test_area_inter_ll_3 : forall I A B C D X Y, inter_ll I A B C D -> S Y I X = 1 / S4 A C B D * (S A C D * S X Y B + S B D C * S X Y A) .
Lemma test_area_on_parallel_d_1 : forall I B C D X Y r, on_parallel_d I B C D r -> S I X Y = S X Y B + r * S4 X C Y D.
Lemma test_area_on_parallel_d_2 : forall I B C D X Y r, on_parallel_d I B C D r -> S X Y I = S X Y B + r * S4 X C Y D.
Lemma test_area_on_parallel_d_3 : forall I B C D X Y r, on_parallel_d I B C D r -> S Y I X = S X Y B + r * S4 X C Y D.
Lemma test_area_on_inter_line_parallel_1 : forall I A B C D E X Y, on_inter_line_parallel I A B C D E -> False -> S X Y I = (S4 D B E A * S X Y C - S4 D C E A * S X Y B) / S4 D B E C .
Lemma test_area_on_inter_parallel_parallel_1 : forall I A B C D E F X Y, on_inter_parallel_parallel I A B C D E F -> False -> S X Y I = S4 B D C A / S4 B E C F * S4 X E Y F + S X Y D.
Lemma test_area_on_foot_1 : forall I X Y Z A B, on_foot I X Y Z -> S A B I = (Py X Y Z * S A B Z + Py X Z Y * S A B Y) / (Py Y Z Y).
Lemma test_area_on_foot_2 : forall I X Y Z A B, on_foot I X Y Z -> S I A B = (Py X Y Z * S A B Z + Py X Z Y * S A B Y) / (Py Y Z Y).
Lemma test_area_on_perp_d_1 : forall I X Y A B r, on_perp_d I X Y r -> S A B I = S A B X - r / (2 + 2) * (Py X A B - Py Y A B).
Lemma test_area_on_perp_d_2 : forall I X Y A B r, on_perp_d I X Y r -> S I A B = S A B X - r / (2 + 2) * (Py X A B - Py Y A B).
Lemma test_area_on_perp_1 : forall I X Y A B, on_perp I X Y -> S I A B = S I A B.
Lemma test_area_on_perp_2 : forall I X Y A B, on_perp I X Y -> S A B I = S I A B.
Lemma l6_15 : forall A B O C D r, is_midpoint O A B -> on_line_d C O A r -> on_line_d D O A (1/r) -> r <> 0 -> parallel A C C B -> parallel D A D B -> C<>B -> D<>B -> A<>D -> A<>C -> r+1 <> 0 -> harmonic A B C D.
Lemma l_6_295 : forall A B C D F P Q R S, on_foot F B A C -> on_line D B F -> is_midpoint P A B -> is_midpoint Q B C -> is_midpoint R C D -> is_midpoint S D A -> eq_distance S Q P R.
Lemma l6_63 : forall A B C D E H, on_foot D C A B -> on_foot E B A C -> inter_ll H C D B E -> Py C H D = Py B H E.
Lemma l_6_273 : forall B C X A A1 C1, on_perp_d A B C 1 -> on_foot A1 A B X -> on_foot C1 C B X -> eq_distance A A1 B C1.
Lemma l6_144 : forall A B I A1 A2 B1 B2 C, on_foot A1 B I A -> on_line_d A2 A1 B (0-1) -> on_foot B1 A I B -> on_line_d B2 B1 A (0-1) -> inter_ll C A A2 B B2 -> eq_angle A C I I C B.
Lemma l_6_191 : forall A B C E F G O1 O2 O3 r, 1+2<>0 -> r*r = (2+1) -> is_midpoint E A C -> on_perp_d O2 E A (r / (2+1)) -> is_midpoint F B C -> on_perp_d O1 F C (r / (2+1)) -> is_midpoint G A B -> on_perp_d O3 G B (r/ (2+1)) -> eq_distance O1 O2 O2 O3.
Theorem field_prop1 : forall a : F, -a=0 -> a=0.
Theorem col_1 : forall A B C : Point, Col A B C -> Col B A C.
Theorem col_2 : forall A B C : Point, Col A B C -> Col A C B.
Theorem col_3 : forall A B C : Point, Col A B C -> Col B C A.
Theorem col_4 : forall A B C : Point, Col A B C -> Col C B A.
Theorem col_5 : forall A B C : Point, Col A B C -> Col C A B.
Theorem egalcol : forall A B C : Point, A = B -> Col A B C.
Theorem notcolnotegal_1 : forall A B C : Point, ~ Col A B C -> A <> B.
Theorem notcolnotegal_2 : forall A B C : Point, ~ Col A B C -> B <> C.
Theorem notcolnotegal_3 : forall A B C : Point, ~ Col A B C -> A <> C.
Theorem notparallelnotegal_1 : forall A B C D, ~ parallel A B C D -> A<>B.
Theorem notparallelnotegal_2 : forall A B C D, ~ parallel A B C D -> C<>D.
Theorem dirsur_1 : forall A B C D E F : Point, ~ Col D E F -> S A B C / S D E F = S A C B / S D F E.
Theorem col_trans_1 : forall A B C D : Point, A <> B -> Col A B C -> Col A B D -> Col A C D.
Lemma build_point_not_collinear_1 : forall A B, A<>B -> exists C, ~ Col A B C.
Lemma build_point_not_collinear_2 : forall A, exists B, exists C, ~ Col A B C.
Theorem col_not_col_1 : forall A B O P : Point, A <> O -> Col A P O -> ~ Col P A B -> ~ Col O A B.
Theorem par_aux_1 : forall P Q U V : Point, ~ parallel P Q U V -> P <> Q.
Theorem par_not_all_col : forall P Q U V : Point, ~ parallel P Q U V -> ~ Col P U Q \/ ~ Col P Q V.
Theorem inter_unicity : forall A B P Q M : Point, ~ parallel P Q A B -> Col A B M -> Col P Q M -> A = Q -> A = M.
Theorem inter_unicity_2 : forall A B P Q M N: Point, ~ parallel P Q A B -> Col A B M -> Col P Q M -> Col A B N -> Col P Q N -> M = N.
Theorem mid_point_ex : forall A B : Point, {O : Point | mid_point O A B}.
Lemma mid_point_comm : forall A B C, mid_point A B C -> mid_point A C B.
Theorem diag_mid_point_parallel : forall O A P B Q, mid_point O A P -> mid_point O B Q -> parallel A B P Q.
Theorem euclid_parallel_existence_strong : forall A B P : Point, A<>B -> {Q : Point | parallel A B P Q /\ P<>Q}.
Theorem euclid_parallel_existence : forall A B P : Point, {Q : Point | parallel A B P Q}.
Theorem par_1 : forall A B C D : Point, parallel A B C D -> parallel B A C D.
Theorem par_2 : forall A B C D : Point, parallel A B C D -> parallel C D A B.
Theorem not_parallel_not_eq_1 : forall A B C D, ~ parallel A B C D -> A<>B.
Theorem not_parallel_not_eq_2 : forall A B C D, ~ parallel A B C D -> C<>D.
Lemma mid_point_degenerated_1 : forall A B, mid_point A A B -> A=B.
Lemma mid_point_degenerated_2 : forall A B, mid_point A B B -> A=B.
Lemma mid_point_degenerated_3 : forall A B, mid_point A B A -> A=B.
Theorem non_zero_denom_on_line_d_1_length_ratio : forall (Y P Q : Point) (l : F), on_line_d Y P Q l -> P<>Q.
Theorem non_zero_denom_on_line_1_length_ratio : forall (Y P Q : Point), on_line Y P Q -> P<>Q.
Lemma invariant_par_on_line_d_1_length_ratio : forall (A C D P Q Y : Point) (lambda : F), on_line_d Y P Q lambda -> S A P Q = 0 -> parallel A Y C D -> parallel A P P Q.
Lemma invariant_par_on_line_1_length_ratio : forall (A C D P Q Y : Point), on_line Y P Q -> S A P Q = 0 -> parallel A Y C D -> parallel A P P Q.
Lemma invariant_par_on_line_d_1_length_ratio_2 : forall (A C D P Q Y : Point) (lambda : F), on_line_d Y P Q lambda -> S A P Q = 0 -> A<>Y -> parallel A Y C D -> parallel C D P Q.
Lemma invariant_par_on_line_1_length_ratio_2 : forall (A C D P Q Y : Point), on_line Y P Q -> S A P Q = 0 -> Y<>A -> parallel A Y C D -> parallel C D P Q.
Lemma invariant_par_on_line_1_length_ratio_3 : forall (A C D P Q Y : Point), on_line Y P Q -> S A P Q = 0 -> parallel A Y C D -> parallel P Y P Q.
Lemma invariant_par_on_line_d_1_length_ratio_3 : forall (A C D P Q Y : Point) (lambda:F), on_line_d Y P Q lambda -> S A P Q = 0 -> parallel A Y C D -> parallel P Y P Q.
Lemma non_zero_denom_on_line_d_2_length_ratio : forall (A C D P Q Y : Point) (lambda : F), on_line_d Y P Q lambda -> S A P Q <> 0 -> parallel A Y C D -> C<>D -> S4 C P D Q <> 0.
Lemma non_zero_denom_on_line_2_length_ratio : forall (A C D P Q Y : Point), on_line Y P Q -> S A P Q <> 0 -> parallel A Y C D -> C <> D -> S4 C P D Q <> 0.
Lemma non_zero_denom_inter_ll_1_length_ratio : forall A C D U V P Q Y : Point, inter_ll Y P Q U V -> S A U V <> 0 -> parallel A Y C D -> C <> D -> S4 C U D V <> 0.
Lemma non_zero_denom_inter_ll_2_length_ratio : forall A C D U V P Q Y : Point, inter_ll Y P Q U V -> S A U V = 0 -> C<>D -> A<>Y -> parallel A Y C D -> S4 C P D Q <> 0.
Lemma non_zero_denom_on_parallel_d_1_length_ratio : forall (A C D P Q R Y : Point) (l : F), on_parallel_d Y R P Q l -> S A R Y = 0 -> P <> Q.
Lemma non_zero_denom_on_parallel_d_2_length_ratio : forall (A C D P Q R Y : Point) (l : F), on_parallel_d Y R P Q l -> parallel A Y C D -> C <> D -> S A R Y <> 0 -> S4 C P D Q <> 0.
Lemma lambda_zero_on_parallel_d : forall Y R P Q lambda, on_parallel_d Y R P Q lambda -> (R=Y <-> lambda = 0).
Lemma invariant_par_on_parallel_d_1_length_ratio : forall (A C D P Q R Y : Point) (lambda : F), on_parallel_d Y R P Q lambda -> S A R Y = 0 -> R <> Y -> parallel A Y C D -> parallel A R P Q.
Lemma invariant_par_on_parallel_d_1_length_ratio_2 : forall (A C D P Q R Y : Point) (lambda : F), on_parallel_d Y R P Q lambda -> S A R Y = 0 -> R<>Y -> A<>Y -> parallel A Y C D -> parallel C D P Q.
Lemma elim_area_on_inter_parallel_parallel : forall P Q R U V W Y A B : Point, on_inter_parallel_parallel Y R P Q W U V -> R <> Y -> S A B Y = S4 P W Q R / S4 P U Q V * S4 A U B V + S A B W.
Theorem aux_co_side_1 : forall A B P Q M : Point, Q <> M -> inter_ll M A B P Q -> S Q A B <> 0.
Lemma inter_ll_comm1 : forall P A B C D : Point, inter_ll P A B C D -> inter_ll P A B D C.
Lemma inter_ll_comm2 : forall P A B C D : Point, inter_ll P A B C D -> inter_ll P B A C D.
Lemma inter_ll_comm3 : forall P A B C D : Point, inter_ll P A B C D -> inter_ll P B A D C.
Lemma inter_ll_comm4 : forall P A B C D : Point, inter_ll P A B C D -> inter_ll P C D A B.
Theorem aux_co_side_2 : forall A B P Q M : Point, P <> M -> inter_ll M A B P Q -> S P A B <>0.
Theorem aux_co_side_3 : forall A B P Q M : Point, B <> M -> inter_ll M A B P Q -> S B P Q <>0.
Theorem aux_co_side_4 : forall A B P Q M : Point, A <> M -> inter_ll M A B P Q -> S A P Q <>0.
Lemma l3_44: forall O A X P Q U R G r N, on_line_d P O A r -> inversion Q P O A -> is_midpoint U P O -> inter_lc R O X U N -> inversion G R O A -> perp G Q O A.
Lemma th6_232 : forall A B C D P Q, on_parallel_d D A B C 1 -> is_midpoint P B D -> is_midpoint Q A C -> parallel P Q A B.
Lemma th6_234_1 : forall A B C D O E F, on_parallel D A B C -> inter_ll O A C B D -> on_inter_line_parallel E O B C A B -> on_inter_line_parallel F O A D A B -> Col O E F.
Lemma exercice2_38_3 : forall Y P Q U V A B, inter_ll Y P Q U V -> on_line A U V -> S4 U P V Q <>0 -> ~Col U V Q -> S A B Y = (S U B V) * (S A P Q) / S4 U P V Q.
Lemma parallel_dec : forall A B C D, parallel A B C D \/ ~ parallel A B C D.
Lemma check_circumcenter : forall A B C A' O, is_circumcenter O A B C -> is_midpoint A' B C -> perp O A' B C.
Lemma l6_196 : forall A B C E F G O, is_circumcenter O A B C -> on_foot E O B C -> on_foot F O A C -> on_foot G O A B -> S A B C= 2*2 * S E F G.
Lemma l6_86 : forall A B C O D, is_circumcenter O A B C -> on_foot D A B C -> eq_angle B A D O A C.
Lemma l6_87 : forall A B C O F, is_circumcenter O A B C -> on_foot F C A B -> Py A C A * Py B C B = 2*2*Py O A O * Py C F C.
Lemma l6_88 : forall A B C O A1 B1 C1, is_circumcenter O A B C -> is_midpoint A1 B C -> is_midpoint B1 A C -> is_midpoint C1 A B -> perp O A1 B1 C1.
Lemma l6_90 : forall A B C E F O, is_circumcenter O A B C -> on_foot F C A B -> on_foot E B A C -> perp E F A O.
Lemma l6_95 : forall A B C H O, is_circumcenter O A B C -> is_orthocenter H A B C -> Py A H A + Py B C B = 2*2*Py A O A.
Lemma on_perp_d_ex : forall U V r, U<>V -> r<> 0 -> exists Y, on_perp_d Y U V r.
Theorem elim_py_on_parallel_d_middle : forall (A B W U V Y : Point) (r : F), on_parallel_d Y W U V r -> Py A Y B = Py A W B + r* (Py A V B - Py A U B + 2* Py W U V )-r*(1-r)*(Py U V U).
Theorem elim_py_on_parallel_d_right : forall (A B W U V Y : Point) (r : F), on_parallel_d Y W U V r -> Py A B Y = Py A B W + r * (Py A B V - Py A B U).
Theorem elim_py_on_parallel_d_left_right : forall (B W U V Y : Point) (r : F), on_parallel_d Y W U V r -> Py Y B Y = Py W B W + r * r * Py V B V - 2 * r * r * Py V B U + r * r * Py U B U + 2 * r * Py V B W - 2 * r * Py U B W.
Theorem elim_py_on_line_d_right : forall (A B P Q Y : Point) (f : F), on_line_d Y P Q f -> Py A B Y = f * Py A B Q + (1 - f) * Py A B P.
Theorem elim_py_on_line_d_left_right : forall (A P Q Y : Point) (f : F), on_line_d Y P Q f -> Py Y A Y = f* (f * Py Q A Q + (1 - f) * Py Q A P) + (1 - f) * (f * Py P A Q + (1 - f) * Py P A P) .
Lemma elim_py_midpoint_left_right : forall A B C M : Point, on_line_d M B C (1 / 2) -> Py M A M = - (1)/(2+2) * (Py B C B - 2* Py A C A - 2 *Py A B A).
Theorem elim_py_on_line_d_middle : forall A B P Q Y r, on_line_d Y P Q r -> Py A Y B = - Py A P B * r + Py A P B + r * r * Py Q P Q + r * Py A Q B- r * Py Q P Q .
Theorem elim_py_inter_ll_right : forall A B P Q U V Y : Point, inter_ll Y P Q U V -> Py A B Y = 1 / S4 P U Q V * (S P U V * Py A B Q + S Q V U * Py A B P).
Theorem elim_py_inter_ll_right_invariant : forall A B P Q U V Y : Point, inter_ll Y P Q U V -> S4 P U Q V <> 0.
Theorem elim_py_inter_ll_left_right : forall B P Q U V Y : Point, inter_ll Y P Q U V -> Py Y B Y = 1 / S4 P U Q V * (S P U V * (1 / S4 P U Q V * (S P U V * Py Q B Q + S Q V U * Py Q B P)) + S Q V U * (1 / S4 P U Q V * (S P U V * Py P B Q + S Q V U * Py P B P))).
Theorem elim_py_inter_ll_left_right_invariant : forall B P Q U V Y : Point, inter_ll Y P Q U V -> S4 P U Q V <> 0.
Theorem elim_py_inter_ll_middle : forall A B P Q U V Y : Point, inter_ll Y P Q U V -> Py A Y B = - (S P V U / S4 P U Q V) * Py A Q B + - (S Q U V / S4 P U Q V) * Py A P B - - (S P V U / S4 P U Q V) * - (S Q U V / S4 P U Q V) * Py P Q P.
Theorem elim_py_inter_ll_middle_invariant : forall A B P Q U V Y : Point, inter_ll Y P Q U V -> S4 P U Q V <> 0.
Theorem elim_py_on_foot_right : forall A B P U V Y : Point, on_foot Y P U V -> Py A B Y = (Py P U V * Py A B V + Py P V U * Py A B U) / (Py U V U).
Theorem elim_py_on_foot_left_right : forall B P U V Y : Point, on_foot Y P U V -> Py Y B Y = (Py P U V * Py P U V * Py V B V + Py P U V * Py P V U * Py V B U + Py P U V * Py P V U * Py U B V + Py P V U * Py P V U * Py U B U) / (Py U V U * Py U V U).
Theorem elim_py_on_foot_left_right_invariant : forall B P U V Y : Point, on_foot Y P U V -> (Py U V U * Py U V U) <> 0.
Theorem elim_py_on_foot_right_invariant : forall A B P U V Y : Point, on_foot Y P U V -> Py U V U <> 0.
Theorem elim_py_on_foot_middle : forall A B P U V Y : Point, on_foot Y P U V -> Py A Y B = (Py P U V / Py U V U) * Py A V B + (Py P V U) / (Py U V U) * Py A U B - (Py P U V * Py P V U) / Py U V U.
Theorem elim_py_on_foot_middle_invariant : forall A B P U V Y : Point, on_foot Y P U V -> Py U V U <> 0.
Theorem elim_py_on_perp_d_right : forall A B P Q Y : Point, forall r: F, on_perp_d Y P Q r -> Py A B Y = Py A B P - (2+2) * r * S4 P A Q B.
Theorem elim_py_on_perp_d_middle : forall A B U V Y : Point, forall r: F, on_perp_d Y U V r -> Py A Y B = Py A U B + r * r * Py U V U - (2+2)*r*(S A U V + S B U V).
Theorem elim_area_on_perp_d : forall A B U V Y : Point, forall r: F, on_perp_d Y U V r -> S A B Y = S A B U - r / (2+2) * Py4 U A V B.
Theorem elim_py_on_perp_d_left_right : forall B U V Y : Point, forall r: F, on_perp_d Y U V r -> Py Y B Y = Py U B U - (2 + 2) * r * S U V B - (2 + 2) * r * (0 - r / (2 + 2) * Py U V U + S U V B).
Theorem elim_area_on_foot : forall A B P U V Y : Point, on_foot Y P U V -> S A B Y = (Py P U V * S A B V + Py P V U * S A B U) / (Py U V U).
Theorem elim_area_on_foot_invariant : forall A B P U V Y : Point, on_foot Y P U V -> Py U V U <> 0.
Theorem elim_ratio_on_foot_a_invariant : forall C D, C<>D -> Py C D C <> 0.
Theorem elim_ratio_on_foot_b_invariant : forall Y P U V A C D : Point, on_foot Y P U V -> ~ Col A U V -> parallel A Y C D -> C<>D -> S4 C U D V <> 0.
Theorem elim_ratio_on_perp_d_a_invariant : forall Y P Q A C D : Point, forall r: F, on_perp_d Y P Q r-> Col A P Y -> parallel A Y C D -> A<>Y -> C<>D -> S4 C P D Q <> 0.
Lemma elim_ratio_on_perp_d_b_auxi : forall A Y C D P Q : Point, on_parallel_d Y A C D 1 -> Py C P Q - Py D P Q = Py A P Q - Py Y P Q.
Theorem elim_ratio_on_perp_d_b_invariant : forall Y P Q A C D : Point, forall r: F, on_perp_d Y P Q r -> ~ Col A P Y -> parallel A Y C D -> C<>D -> Py4 C P D Q <> 0.
Theorem on_inter_line_parallel_ex: forall P Q R U V:Point, ~(parallel P Q U V) -> exists Y:Point, (parallel Y R P Q) /\ (Col Y U V).
Theorem on_inter_parallel_parallel_ex_aux: forall P Q R U V W:Point, ~(parallel P Q U V) -> {Y:Point | (parallel Y R P Q) /\ (parallel Y W U V)}.
Lemma on_inter_parallel_parallel_ex : forall P Q R U V W:Point, ~ parallel P Q U V -> ~ Col R U V -> {Y :Point | (on_inter_parallel_parallel Y R P Q W U V)}.