(* Specifications: *)
Lemma PermWdOK : forall (cp1 cp2 : cartesianPower COINCpoint (S (S n))), app wd cp1 -> Permutation.Permutation (CPToList cp1) (CPToList cp2) -> app wd cp2.
Lemma PermCoincOK : forall (cp1 cp2 : cartesianPower COINCpoint (S (S (S n)))), app coinc cp1 -> Permutation.Permutation (CPToList cp1) (CPToList cp2) -> app coinc cp2.
Lemma line_extension_symmetry : forall {Tm : Tarski_neutral_dimensionless} (f : @Tpoint Tn -> @Tpoint Tm) P Q, line_extension f P Q -> line_extension f Q P.
Lemma line_extension_stability : forall {Tm: Tarski_neutral_dimensionless} (f : @Tpoint Tn -> @Tpoint Tm) P Q R, Col P Q R -> P <> R -> line_extension f P Q -> line_extension f P R.
Lemma line_extension_reverse_bet : forall {Tm: Tarski_neutral_dimensionless} {Tm2: Tarski_neutral_dimensionless_with_decidable_point_equality Tm} (f : @Tpoint Tn -> @Tpoint Tm) P Q, line_extension f P Q -> forall A B C, Col P Q A -> Col P Q B -> Col P Q C -> Bet (f A) (f B) (f C) -> Bet A B C.
Lemma pres_bet_line__col : forall {Tm: Tarski_neutral_dimensionless} f (P Q : @Tpoint Tn), P <> Q -> pres_bet_line f P Q -> forall A B C, Col P Q A -> Col P Q B -> Col P Q C -> Col (f A) (f B) (f C).
Lemma extension_grad : forall {Tm: Tarski_neutral_dimensionless} {Tm2 : Tarski_neutral_dimensionless_with_decidable_point_equality Tm} P Q (f : @Tpoint Tn -> @Tpoint Tm), line_extension f P Q -> forall A B X, Col P Q A -> Col P Q B -> Grad (f A) (f B) X -> exists C, Col P Q C /\ Grad A B C /\ f C = X.
Lemma extension_gradexp : forall {Tm: Tarski_neutral_dimensionless} {Tm2 : Tarski_neutral_dimensionless_with_decidable_point_equality Tm} P Q (f : @Tpoint Tn -> @Tpoint Tm), line_extension f P Q -> forall A B X, Col P Q A -> Col P Q B -> GradExp (f A) X (f B) -> exists C, Col P Q C /\ GradExp A C B /\ f C = X.
Lemma extension_image_density_aux : forall {Tm: Tarski_neutral_dimensionless} {Tm2 : Tarski_neutral_dimensionless_with_decidable_point_equality Tm} P Q (f : @Tpoint Tn -> @Tpoint Tm), @archimedes_axiom Tm -> line_extension f P Q -> forall A B, A <> B -> Lt (f P) (f Q) A B -> Bet (f P) (f Q) A -> Bet (f P) A B -> exists X, Col P Q X /\ Bet A (f X) B /\ f X <> A /\ f X <> B.
Lemma extension_image_density_aux2 : forall {Tm: Tarski_neutral_dimensionless} {Tm2 : Tarski_neutral_dimensionless_with_decidable_point_equality Tm} P Q (f : @Tpoint Tn -> @Tpoint Tm), @archimedes_axiom Tm -> line_extension f P Q -> forall A B, A <> B -> Col (f P) (f Q) A -> Col (f P) (f Q) B -> Lt (f P) (f Q) A B -> Bet (f P) A B -> exists X, Col P Q X /\ Bet A (f X) B /\ f X <> A /\ f X <> B.
Lemma extension_image_density : forall {Tm: Tarski_neutral_dimensionless} {Tm2 : Tarski_neutral_dimensionless_with_decidable_point_equality Tm} P Q (f : @Tpoint Tn -> @Tpoint Tm), @archimedes_axiom Tm -> line_extension f P Q -> forall A B, Col (f P) (f Q) A -> Col (f P) (f Q) B -> A <> B -> exists X, Col P Q X /\ Bet A (f X) B /\ f X <> A /\ f X <> B.
Lemma dedekind__completeness : dedekind_s_axiom -> line_completeness.
Lemma circle_circle_aux : (forall A B C D P Q, OnCircle P C D -> OnCircle Q C D -> InCircleS P A B -> OutCircleS Q A B -> OS A C P Q \/ (Col P A C /\ ~ Col Q A C) \/ (~ Col P A C /\ Col Q A C ) -> exists Z : Tpoint, OnCircle Z A B /\ OnCircle Z C D) -> circle_circle.
Lemma fod__circle_circle : first_order_dedekind -> circle_circle.
Lemma extension__line_extension : forall {Tm: Tarski_neutral_dimensionless} (f : @Tpoint Tn -> @Tpoint Tm) P Q, P <> Q -> extension f -> line_extension f P Q.
Lemma extension_reverse_bet : forall {Tm: Tarski_neutral_dimensionless} {Tm2 : Tarski_neutral_dimensionless_with_decidable_point_equality Tm} (f : @Tpoint Tn -> @Tpoint Tm), extension f -> forall A B C, Bet (f A) (f B) (f C) -> Bet A B C.
Lemma extension_reverse_col : forall {Tm: Tarski_neutral_dimensionless} {Tm2 : Tarski_neutral_dimensionless_with_decidable_point_equality Tm} (f : @Tpoint Tn -> @Tpoint Tm), extension f -> forall A B C, Col (f A) (f B) (f C) -> Col A B C.
Lemma line_completeness_aux : line_completeness -> forall (Tm: Tarski_neutral_dimensionless) (Tm2 : Tarski_neutral_dimensionless_with_decidable_point_equality Tm) (f : @Tpoint Tn -> @Tpoint Tm), @archimedes_axiom Tm -> extension f -> forall A P Q R, ~ Col P Q R -> Coplanar (f P) (f Q) (f R) A -> exists B, Coplanar P Q R B /\ f B = A.
Lemma line_completeness__completeness_for_planes : line_completeness -> completeness_for_planes.
Lemma completeness_aux : forall {Tm: Tarski_neutral_dimensionless} P Q R (f : @Tpoint Tn -> @Tpoint Tm) A, (exists B, Coplanar P Q R B /\ f B = A) -> exists B, f B = A.
Lemma line_completeness__completeness_for_3d_spaces : (exists P Q R S, ~ Coplanar P Q R S) -> line_completeness -> completeness_for_3d_spaces.
Lemma extension_to_plane__plane : forall {Tm: Tarski_neutral_dimensionless} {Tm2 : Tarski_neutral_dimensionless_with_decidable_point_equality Tm} {M : Tarski_2D Tm2} (f : @Tpoint Tn -> @Tpoint Tm), extension f -> @upper_dim_axiom Tn.
Lemma nupper_dim__completeness_for_planes : ~ upper_dim_axiom -> completeness_for_planes.
Lemma extension_to_3d__upper_dim_3 : forall {Tm: Tarski_neutral_dimensionless} {Tm2 : Tarski_neutral_dimensionless_with_decidable_point_equality Tm} {M : Tarski_3D Tm2} (f : @Tpoint Tn -> @Tpoint Tm), extension f -> @upper_dim_3_axiom Tn.
Lemma nupper_dim_3__completeness_for_3d_spaces : ~ upper_dim_3_axiom -> completeness_for_3d_spaces.
Lemma ncompleteness_for_planes__upper_dim : ~ completeness_for_planes -> upper_dim_axiom.
Lemma ncompleteness_for_3d_spaces__upper_dim_3 : ~ completeness_for_3d_spaces -> upper_dim_3_axiom.
Lemma grada_distincts : forall A B C D E F, GradA A B C D E F -> A <> B /\ C <> B /\ D <> E /\ F <> E.
Lemma conga2_grada__grada : forall A B C D E F A' B' C' D' E' F', GradA A B C D E F -> CongA A B C A' B' C' -> CongA D E F D' E' F' -> GradA A' B' C' D' E' F'.
Lemma grada__lea : forall A B C D E F, GradA A B C D E F -> LeA A B C D E F.
Lemma grada_out__out : forall A B C D E F, Out E D F -> GradA A B C D E F -> Out B A C.
Lemma grada2_sams_suma__grada : forall A B C D E F G H I K L M, GradA A B C D E F -> GradA A B C G H I -> SAMS D E F G H I -> SumA D E F G H I K L M -> GradA A B C K L M.
Lemma gradaexp__grada : forall A B C D E F, GradAExp A B C D E F -> GradA A B C D E F.
Lemma acute_archi_aux : forall O A B C D E, Per O A B -> O <> A -> B <> A -> C <> D -> D <> E -> Bet A C D -> Bet C D E -> Bet D E B -> CongA C O D D O E -> Lt C D D E.
Lemma acute_archi_aux1 : forall O A0 A1 B P Q R, Per O A0 B -> B <> A0 -> Bet A0 A1 B -> GradA A0 O A1 P Q R -> A0 <> A1 -> LeA A0 O B P Q R \/ exists A, Bet A0 A1 A /\ Bet A0 A B /\ CongA P Q R A0 O A.
Lemma acute_archi_aux2 : forall O A0 A1 B C, Per O A0 B -> O <> A0 -> B <> A0 -> Bet A0 A1 B -> A0 <> A1 -> Grad A0 A1 C -> exists P, exists Q, exists R, GradA A0 O A1 P Q R /\ (LeA A0 O B P Q R \/ exists A', Bet A0 A1 A' /\ Bet A0 A' B /\ CongA P Q R A0 O A' /\ Le A0 C A0 A' /\ exists A, Bet A0 A A' /\ CongA A O A' A0 O A1 /\ Le A0 A1 A A').
Lemma archi_in_acute_angles : archimedes_axiom -> forall A B C D E F, ~ Col A B C -> Acute D E F -> exists P Q R, GradA A B C P Q R /\ LeA D E F P Q R.
Lemma angles_archi_aux : forall A B C D E F G H I, GradA A B C D E F -> GradA A B C G H I -> ~ SAMS D E F G H I -> exists P Q R, GradA A B C P Q R /\ ~ SAMS P Q R A B C.
Lemma angles_archi_aux1 : archimedes_axiom -> forall A B C D E F, ~ Col A B C -> ~ Bet D E F -> exists P Q R, GradA A B C P Q R /\ (LeA D E F P Q R \/ ~ SAMS P Q R A B C).
Lemma archi_in_angles : archimedes_axiom -> forall A B C D E F, ~ Col A B C -> D <> E -> F <> E -> exists P Q R, GradA A B C P Q R /\ (LeA D E F P Q R \/ ~ SAMS P Q R A B C).
Lemma archi__grada_destruction : archimedes_axiom -> forall A B C, ~ Col A B C -> exists P Q R, GradA A B C P Q R /\ ~ SAMS P Q R A B C.
Lemma gradaexp_destruction_aux : forall A B C P Q R, GradA A B C P Q R -> exists S T U, GradAExp A B C S T U /\ (Obtuse S T U \/ LeA P Q R S T U).
Lemma archi__gradaexp_destruction : archimedes_axiom -> forall A B C, ~ Col A B C -> exists P Q R, GradAExp A B C P Q R /\ Obtuse P Q R.
Lemma grad__bet : forall A B C, Grad A B C -> Bet A B C.
Lemma grad__col : forall A B C, Grad A B C -> Col A B C.
Lemma grad_neq__neq13 : forall A B C, Grad A B C -> A <> B -> A <> C.
Lemma grad_neq__neq12 : forall A B C, Grad A B C -> A <> C -> A <> B.
Lemma grad112__eq : forall A B, Grad A A B -> A = B.
Lemma grad121__eq : forall A B, Grad A B A -> A = B.
Lemma grad__le : forall A B C, Grad A B C -> Le A B A C.
Lemma grad2__grad123 : forall A B C D E F, Grad2 A B C D E F -> Grad A B C.
Lemma grad2__grad456 : forall A B C D E F, Grad2 A B C D E F -> Grad D E F.
Lemma grad_sum : forall A B C D E, Grad A B C -> Grad A B D -> Bet A C E -> Cong A D C E -> Grad A B E.
Lemma gradexp__grad : forall A B C, GradExp A B C -> Grad A B C.
Lemma gradexp_le__reach : forall A B C D B', GradExp A B B' -> Le C D A B' -> Reach A B C D.
Lemma grad__ex_gradexp_le : forall A B C, Grad A B C -> exists D, GradExp A B D /\ Le A C A D.
Lemma reach__ex_gradexp_le : forall A B C D, Reach A B C D -> exists B', GradExp A B B' /\ Le C D A B'.
Lemma gradexp2__gradexp123 : forall A B C D E F, GradExp2 A B C D E F -> GradExp A B C.
Lemma gradexp2__gradexp456 : forall A B C D E F, GradExp2 A B C D E F -> GradExp D E F.
Lemma archimedes_aux : (forall A B C, Out A B C -> Reach A B A C) -> archimedes_axiom.
Lemma dedekind__archimedes : (forall A B C D, ~ ~ Reach A B C D -> Reach A B C D) -> dedekind_s_axiom -> archimedes_axiom.
Lemma aristotle__greenberg : aristotle_s_axiom -> greenberg_s_axiom.
Lemma aristotle__obtuse_case_elimination : aristotle_s_axiom -> ~ hypothesis_of_obtuse_saccheri_quadrilaterals.
Lemma aristotle__acute_or_right : aristotle_s_axiom -> hypothesis_of_acute_saccheri_quadrilaterals \/ hypothesis_of_right_saccheri_quadrilaterals.
Lemma segment_circle__one_point_line_circle : segment_circle <-> one_point_line_circle.
Lemma one_point_line_circle__two_points_line_circle : one_point_line_circle <-> two_points_line_circle.
Lemma circle_circle_bis__circle_circle_axiom : circle_circle_bis <-> circle_circle_axiom.
Lemma circle_circle__circle_circle_bis : circle_circle -> circle_circle_bis.
Lemma circle_circle_bis__one_point_line_circle : circle_circle_bis -> one_point_line_circle.
Lemma circle_circle__circle_circle_two : circle_circle <-> circle_circle_two.
Lemma euclid_22_aux : forall A B C D E F A' B' E' F' C1 C2 E1, SumS A B C D E' F' -> SumS C D E F A' B' -> Le E F E' F' -> Le A B A' B' -> Out A B C1 -> Cong A C1 C D -> Bet B A C2 -> Cong A C2 C D -> Out B A E1 -> Cong B E1 E F -> Bet C1 E1 C2.
Lemma circle_circle_bis__euclid_22 : circle_circle_bis -> euclid_s_prop_1_22.
Lemma triangle_inequality1 : forall A B C D E, SumS A B B C D E -> Le A C D E.
Lemma euclid_22__circle_circle : euclid_s_prop_1_22 -> circle_circle.
Theorem equivalent_variants_of_circle_circle : all_equiv (circle_circle:: circle_circle_two:: circle_circle_bis:: circle_circle_axiom:: euclid_s_prop_1_22:: nil).
Theorem equivalent_variants_of_line_circle : all_equiv (segment_circle:: one_point_line_circle:: two_points_line_circle:: nil).
Lemma t22_18_aux1 : forall A0 A1 E0 E1 D1 D, Bet A0 D1 A1 -> Cong E0 E1 A1 D1 -> Grad A0 D1 D -> exists A E, Grad2 A0 A1 A E0 E1 E /\ Cong E0 E A D /\ Bet A0 D A.
Lemma t22_18_aux2 : forall A0 A1 B0 B1 A B E, Saccheri A0 B0 B1 A1 -> Grad2 A0 A1 A B0 B1 E -> Saccheri A0 B0 B A -> Le B0 B B0 E.
Lemma t22_18 : archimedes_axiom -> forall A0 B0 B1 A1, Saccheri A0 B0 B1 A1 -> ~ Lt B0 B1 A1 A0.
Lemma t22_19 : archimedes_axiom -> forall A B C D, Saccheri A B C D -> ~ Obtuse A B C.
Lemma archi__obtuse_case_elimination : archimedes_axiom -> ~ hypothesis_of_obtuse_saccheri_quadrilaterals.
Lemma t22_23_aux : forall A B C M N L, ~ Col A M N -> Per B C A -> A <> C -> Midpoint M A B -> Per M N A -> Col A C N -> Midpoint M N L -> Bet A N C /\ Lambert N L B C /\ Cong B L A N.
Lemma t22_23 : ~ hypothesis_of_obtuse_saccheri_quadrilaterals -> forall A B C M N L, ~ Col A M N -> Per B C A -> A <> C -> Midpoint M A B -> Per M N A -> Col A C N -> Midpoint M N L -> Bet A N C /\ Le N C A N /\ Le L N B C.
Lemma t22_24_aux : ~ hypothesis_of_obtuse_saccheri_quadrilaterals -> forall A B0 B00 C0 B C E, ~ Col A B0 C0 -> Perp A C0 B0 C0 -> B0 = B00 -> GradExp2 A B0 B B00 C0 E -> Perp A C0 B C -> Col A C0 C -> Le B0 E B C.
Lemma t22_24_aux1 : forall A B0 C0 E, ~ Col A B0 C0 -> Perp A C0 B0 C0 -> GradExp B0 C0 E -> exists B C, GradExp2 A B0 B B0 C0 E /\ Perp A C0 B C /\ Col A C0 C.
Lemma t22_24 : archimedes_axiom -> aristotle_s_axiom.
Lemma dedekind__fod : dedekind_s_axiom -> first_order_dedekind.
Lemma rectangle_existence__rah : postulate_of_existence_of_a_right_lambert_quadrilateral -> postulate_of_right_saccheri_quadrilaterals.
Lemma original_spp__inverse_projection_postulate : alternative_strong_parallel_postulate -> inverse_projection_postulate.
Lemma consecutive_interior__alternate_interior : consecutive_interior_angles_postulate -> alternate_interior_angles_postulate.
Lemma rah__posidonius_aux : postulate_of_right_saccheri_quadrilaterals -> forall A1 A2 A3 B1 B2 B3, Per A2 A1 B1 -> Per A1 A2 B2 -> Cong A1 B1 A2 B2 -> OS A1 A2 B1 B2 -> Col A1 A2 A3 -> Col B1 B2 B3 -> Perp A1 A2 A3 B3 -> Cong A3 B3 A1 B1.
Lemma rah__posidonius : postulate_of_right_saccheri_quadrilaterals -> posidonius_postulate.
Lemma impossible_case_5 : forall P Q R S T U I, BetS P T Q -> BetS R T S -> BetS Q U R -> ~ Col P Q S -> ~ Col P R U -> Par P R Q S -> Par P S Q R -> Bet S Q I -> Bet U I P -> False.
Lemma impossible_case_6 : forall P Q R S T U I, BetS P T Q -> BetS R T S -> BetS Q U R -> ~ Col P Q S -> ~ Col P R U -> Par P R Q S -> Par P S Q R -> Bet S Q I -> Bet I P U -> False.
Lemma impossible_case_7 : forall P Q R S T U I, BetS P T Q -> BetS R T S -> BetS Q U R -> ~ Col P Q S -> ~ Col P R U -> Par P R Q S -> Par P S Q R -> Col P U I -> Bet Q I S -> False.
Lemma impossible_case_8 : forall P Q R S T U I, BetS P T Q -> BetS R T S -> BetS Q U R -> ~ Col P Q S -> ~ Col P R U -> Par P R Q S -> Par P S Q R -> Col P U I -> Bet I S Q -> False.
Lemma strong_parallel_postulate_implies_tarski_s_euclid_aux : strong_parallel_postulate -> (forall A B C D T, A <> B -> A <> C -> A <> D -> A <> T -> B <> C -> B <> D -> B <> T -> C <> D -> C <> T -> D <> T -> ~ Col A B C -> Bet A D T -> Bet B D C -> exists B', exists B'', exists MB, exists X, Bet A B X /\ Par_strict B C T X /\ BetS B MB T /\ BetS B' MB B'' /\ Cong B MB T MB /\ Cong B' MB B'' MB /\ Col B B' D /\ Bet B'' T X /\ B <> B' /\ B'' <> T).
Lemma strong_parallel_postulate_implies_tarski_s_euclid : strong_parallel_postulate -> tarski_s_parallel_postulate.
Lemma midpoint_converse_postulate_implies_playfair : midpoint_converse_postulate -> playfair_s_postulate.
Lemma playfair__alternate_interior : playfair_s_postulate -> alternate_interior_angles_postulate.
Lemma playfair_bis__playfair : alternative_playfair_s_postulate -> playfair_s_postulate.
Lemma proclus_bis__proclus : alternative_proclus_postulate -> proclus_postulate.
Lemma thales_converse_postulate__thales_existence : thales_converse_postulate -> existential_thales_postulate.
Lemma weak_inverse_projection_postulate__weak_tarski_s_parallel_postulate_aux : forall A B C P T, Per A B C -> InAngle T A B C -> CongA P B A P B C -> Per B P T -> Coplanar A B C P -> InAngle P A B C.
Lemma weak_inverse_projection_postulate__weak_tarski_s_parallel_postulate : weak_inverse_projection_postulate -> weak_tarski_s_parallel_postulate.
Lemma alternate_interior__proclus : greenberg_s_axiom -> alternate_interior_angles_postulate -> proclus_postulate.
Lemma playfair_s_postulate_implies_midpoint_converse_postulate : playfair_s_postulate -> midpoint_converse_postulate.
Lemma original_euclid__original_spp : euclid_s_parallel_postulate -> alternative_strong_parallel_postulate.
Lemma par_perp_2_par_implies_par_perp_perp : postulate_of_parallelism_of_perpendicular_transversals -> perpendicular_transversal_postulate.
Lemma alternate_interior__consecutive_interior : alternate_interior_angles_postulate -> consecutive_interior_angles_postulate.
Lemma impossible_case_1 : forall A B C D T x y, A <> B -> A <> C -> A <> D -> A <> T -> B <> C -> B <> D -> B <> T -> C <> D -> C <> T -> D <> T -> x <> y -> ~ Col A B C -> Bet A D T -> ~ Col B C T -> Bet B D C -> Bet A B x -> Bet C y A -> Bet x T y -> Par_strict B C x y -> False.
Lemma impossible_case_2 : forall A B C D T x y, A <> B -> A <> C -> A <> D -> A <> T -> B <> C -> B <> D -> B <> T -> C <> D -> C <> T -> D <> T -> x <> y -> ~ Col A B C -> Col A B x -> Bet A D T -> ~ Col B C T -> Bet B D C -> Bet y A C -> Bet x T y -> False.
Lemma impossible_case_3 : forall A B C D T x y, A <> B -> A <> C -> A <> D -> A <> T -> B <> C -> B <> D -> B <> T -> C <> D -> C <> T -> D <> T -> x <> y -> ~ Col A B C -> Bet A D T -> ~ Col B C T -> Bet B D C -> Bet B x A -> Bet x T y -> Par_strict B C x y -> False.
Lemma impossible_case_4_1 : forall A B C D T x y, A <> B -> A <> C -> A <> D -> A <> T -> B <> C -> B <> D -> B <> T -> C <> D -> C <> T -> D <> T -> x <> y -> ~ Col A B C -> Col A C y -> Bet A D T -> ~ Col B C T -> Bet B D C -> Bet A x B \/ Bet A B x -> Bet T y x -> False.
Lemma impossible_case_4_2 : forall A B C D T x y, A <> B -> A <> C -> A <> D -> A <> T -> B <> C -> B <> D -> B <> T -> C <> D -> C <> T -> D <> T -> x <> y -> ~ Col A B C -> Col A C y -> Bet A D T -> ~ Col B C T -> Bet B D C -> Bet B A x -> Bet T y x -> Par_strict B C x y -> False.
Lemma impossible_case_4 : forall A B C D T x y, A <> B -> A <> C -> A <> D -> A <> T -> B <> C -> B <> D -> B <> T -> C <> D -> C <> T -> D <> T -> x <> y -> ~ Col A B C -> Col A C y -> Bet A D T -> ~ Col B C T -> Bet B D C -> Col A B x -> Bet T y x -> Par_strict B C x y -> False.
Lemma impossible_two_sides_not_col : forall A B C D T Y, A <> B -> A <> C -> A <> D -> A <> T -> A <> Y -> B <> C -> B <> D -> B <> T -> B <> Y -> C <> D -> C <> T -> C <> Y -> D <> T -> T <> Y -> ~ Col A B C -> Bet A D T -> ~ Col B C T -> Bet B D C -> Bet B Y T -> ~ Col A C Y.
Lemma triangle_circumscription_implies_tarski_s_euclid_aux : forall A B C D T X Y Z M1 Z1 M2 Z2, triangle_circumscription_principle -> A <> B -> A <> C -> A <> D -> A <> T -> A <> Y -> B <> C -> B <> D -> B <> T -> B <> Y -> C <> D -> C <> T -> C <> Y -> D <> T -> T <> X -> T <> Y -> X <> Y -> Y <> Z1 -> Y <> Z2 -> ~ Col A B C -> Col A B M1 -> Col A C M2 -> Bet A D T -> ~ Col B C T -> Bet B D C -> Col T Y Z -> Bet Y T X -> Bet Y M1 Z1 -> Bet Y M2 Z2 -> Cong Y T T X -> Cong Y M1 M1 Z1 -> Cong Y M2 M2 Z2 -> Perp B C T Z -> Perp A B Y Z1 -> Perp A C Y Z2 -> exists x, exists y, Bet A B x /\ Bet A C y /\ Bet x T y.
Lemma triangle_circumscription_implies_tarski_s_euclid : triangle_circumscription_principle -> tarski_s_parallel_postulate.
Lemma par_perp_perp_implies_playfair : perpendicular_transversal_postulate -> playfair_s_postulate.
Lemma rah__triangle : postulate_of_right_saccheri_quadrilaterals -> triangle_postulate.
Lemma legendre_aux1 : greenberg_s_axiom -> triangle_postulate -> forall A1 A2 B1 B2 C1 C2 P, Perp2 A1 A2 B1 B2 P -> ~ Col A1 A2 P -> Col P B1 B2 -> Coplanar A1 A2 B1 B2 -> Par A1 A2 C1 C2 -> Col P C1 C2 -> ~ TS B1 B2 A1 C1 -> Col C1 B1 B2.
Lemma legendre_aux2 : greenberg_s_axiom -> triangle_postulate -> forall A1 A2 B1 B2 C1 C2 P, Perp2 A1 A2 B1 B2 P -> ~ Col A1 A2 P -> Col P B1 B2 -> Coplanar A1 A2 B1 B2 -> Par A1 A2 C1 C2 -> Col P C1 C2 -> Col C1 B1 B2.
Lemma triangle__playfair_bis : greenberg_s_axiom -> triangle_postulate -> alternative_playfair_s_postulate.
Lemma rah__rectangle_principle : postulate_of_right_saccheri_quadrilaterals -> postulate_of_right_lambert_quadrilaterals.
Theorem equivalent_postulates_without_decidability_of_intersection_of_lines : all_equiv (alternate_interior_angles_postulate:: alternative_playfair_s_postulate:: consecutive_interior_angles_postulate:: midpoint_converse_postulate:: perpendicular_transversal_postulate:: playfair_s_postulate:: universal_posidonius_postulate:: postulate_of_parallelism_of_perpendicular_transversals:: postulate_of_transitivity_of_parallelism:: nil).
Theorem equivalent_postulates_without_any_continuity : all_equiv (existential_thales_postulate:: posidonius_postulate:: postulate_of_existence_of_a_right_lambert_quadrilateral:: postulate_of_existence_of_a_right_saccheri_quadrilateral:: postulate_of_existence_of_a_triangle_whose_angles_sum_to_two_rights:: postulate_of_existence_of_similar_triangles:: postulate_of_right_lambert_quadrilaterals:: postulate_of_right_saccheri_quadrilaterals:: thales_postulate:: thales_converse_postulate:: triangle_postulate:: nil).
Theorem equivalent_postulates_with_decidability_of_intersection_of_lines : decidability_of_intersection -> all_equiv (alternate_interior_angles_postulate:: alternative_playfair_s_postulate:: alternative_proclus_postulate:: alternative_strong_parallel_postulate:: consecutive_interior_angles_postulate:: euclid_5:: euclid_s_parallel_postulate:: inverse_projection_postulate:: midpoint_converse_postulate:: perpendicular_transversal_postulate:: playfair_s_postulate:: universal_posidonius_postulate:: postulate_of_parallelism_of_perpendicular_transversals:: postulate_of_transitivity_of_parallelism:: proclus_postulate:: strong_parallel_postulate:: tarski_s_parallel_postulate:: triangle_circumscription_principle:: nil).
Theorem equivalent_postulates_without_decidability_of_intersection_of_lines_bis : all_equiv (alternative_strong_parallel_postulate:: alternative_proclus_postulate:: euclid_5:: euclid_s_parallel_postulate:: inverse_projection_postulate:: proclus_postulate:: strong_parallel_postulate:: tarski_s_parallel_postulate:: triangle_circumscription_principle:: nil).
Theorem stronger_postulates : stronger (alternative_strong_parallel_postulate:: alternative_proclus_postulate:: euclid_5:: euclid_s_parallel_postulate:: inverse_projection_postulate:: proclus_postulate:: strong_parallel_postulate:: tarski_s_parallel_postulate:: triangle_circumscription_principle:: nil) (alternate_interior_angles_postulate:: alternative_playfair_s_postulate:: consecutive_interior_angles_postulate:: midpoint_converse_postulate:: perpendicular_transversal_postulate:: playfair_s_postulate:: universal_posidonius_postulate:: postulate_of_parallelism_of_perpendicular_transversals:: postulate_of_transitivity_of_parallelism:: nil).
Theorem stronger_postulates_bis : stronger (alternate_interior_angles_postulate:: alternative_playfair_s_postulate:: consecutive_interior_angles_postulate:: midpoint_converse_postulate:: perpendicular_transversal_postulate:: playfair_s_postulate:: universal_posidonius_postulate:: postulate_of_parallelism_of_perpendicular_transversals:: postulate_of_transitivity_of_parallelism:: nil) (existential_thales_postulate:: posidonius_postulate:: postulate_of_existence_of_a_right_lambert_quadrilateral:: postulate_of_existence_of_a_right_saccheri_quadrilateral:: postulate_of_existence_of_a_triangle_whose_angles_sum_to_two_rights:: postulate_of_existence_of_similar_triangles:: postulate_of_right_lambert_quadrilaterals:: postulate_of_right_saccheri_quadrilaterals:: thales_postulate:: thales_converse_postulate:: triangle_postulate:: nil).
Theorem equivalence_of_aristotle_greenberg_and_decidability_of_intersection : all_equiv_under (alternate_interior_angles_postulate:: alternative_playfair_s_postulate:: alternative_proclus_postulate:: alternative_strong_parallel_postulate:: consecutive_interior_angles_postulate:: euclid_5:: euclid_s_parallel_postulate:: inverse_projection_postulate:: midpoint_converse_postulate:: perpendicular_transversal_postulate:: playfair_s_postulate:: universal_posidonius_postulate:: postulate_of_parallelism_of_perpendicular_transversals:: postulate_of_transitivity_of_parallelism:: proclus_postulate:: strong_parallel_postulate:: tarski_s_parallel_postulate:: triangle_circumscription_principle:: nil) (aristotle_s_axiom:: greenberg_s_axiom:: decidability_of_intersection:: nil).
Theorem equivalent_postulates_assuming_greenberg_s_axiom : greenberg_s_axiom -> all_equiv (alternate_interior_angles_postulate:: alternative_playfair_s_postulate:: alternative_proclus_postulate:: alternative_strong_parallel_postulate:: consecutive_interior_angles_postulate:: euclid_5:: euclid_s_parallel_postulate:: existential_playfair_s_postulate:: existential_thales_postulate:: inverse_projection_postulate:: midpoint_converse_postulate:: perpendicular_transversal_postulate:: postulate_of_transitivity_of_parallelism:: playfair_s_postulate:: posidonius_postulate:: universal_posidonius_postulate:: postulate_of_existence_of_a_right_lambert_quadrilateral:: postulate_of_existence_of_a_right_saccheri_quadrilateral:: postulate_of_existence_of_a_triangle_whose_angles_sum_to_two_rights:: postulate_of_existence_of_similar_triangles:: postulate_of_parallelism_of_perpendicular_transversals:: postulate_of_right_lambert_quadrilaterals:: postulate_of_right_saccheri_quadrilaterals:: postulate_of_transitivity_of_parallelism:: proclus_postulate:: strong_parallel_postulate:: tarski_s_parallel_postulate:: thales_postulate:: thales_converse_postulate:: triangle_circumscription_principle:: triangle_postulate:: nil).
Theorem equivalent_postulates_without_any_continuity_bis : all_equiv (bachmann_s_lotschnittaxiom:: weak_inverse_projection_postulate:: weak_tarski_s_parallel_postulate:: weak_triangle_circumscription_principle:: nil).
Theorem stronger_postulates_ter : stronger (existential_thales_postulate:: posidonius_postulate:: postulate_of_existence_of_a_right_lambert_quadrilateral:: postulate_of_existence_of_a_right_saccheri_quadrilateral:: postulate_of_existence_of_a_triangle_whose_angles_sum_to_two_rights:: postulate_of_existence_of_similar_triangles:: postulate_of_right_lambert_quadrilaterals:: postulate_of_right_saccheri_quadrilaterals:: thales_postulate:: thales_converse_postulate:: triangle_postulate:: nil) (legendre_s_parallel_postulate:: bachmann_s_lotschnittaxiom:: weak_inverse_projection_postulate:: weak_tarski_s_parallel_postulate:: weak_triangle_circumscription_principle:: nil).
Theorem equivalent_postulates_assuming_archimedes_axiom : archimedes_axiom -> all_equiv (alternate_interior_angles_postulate:: alternative_playfair_s_postulate:: alternative_proclus_postulate:: alternative_strong_parallel_postulate:: bachmann_s_lotschnittaxiom:: consecutive_interior_angles_postulate:: euclid_5:: euclid_s_parallel_postulate:: existential_playfair_s_postulate:: existential_thales_postulate:: inverse_projection_postulate:: legendre_s_parallel_postulate:: midpoint_converse_postulate:: perpendicular_transversal_postulate:: postulate_of_transitivity_of_parallelism:: playfair_s_postulate:: posidonius_postulate:: universal_posidonius_postulate:: postulate_of_existence_of_a_right_lambert_quadrilateral:: postulate_of_existence_of_a_right_saccheri_quadrilateral:: postulate_of_existence_of_a_triangle_whose_angles_sum_to_two_rights:: postulate_of_existence_of_similar_triangles:: postulate_of_parallelism_of_perpendicular_transversals:: postulate_of_right_lambert_quadrilaterals:: postulate_of_right_saccheri_quadrilaterals:: postulate_of_transitivity_of_parallelism:: proclus_postulate:: strong_parallel_postulate:: tarski_s_parallel_postulate:: thales_postulate:: thales_converse_postulate:: triangle_circumscription_principle:: triangle_postulate:: weak_inverse_projection_postulate:: weak_tarski_s_parallel_postulate:: weak_triangle_circumscription_principle:: nil).
Lemma inter_dec : forall A B C D, (exists I, Col I A B /\ Col I C D) \/ ~ (exists I, Col I A B /\ Col I C D).
Lemma aristotle : forall P Q A B C, ~ Col A B C -> Acute A B C -> exists X Y, Out B A X /\ Out B C Y /\ Per B X Y /\ Lt P Q X Y.
Lemma greenberg : forall P Q R A B C, ~ Col A B C -> Acute A B C -> Q <> R -> Per P Q R -> exists S, LtA P S Q A B C /\ Out Q S R.
Theorem postulates_in_euclidean_context : forall P, List.In P (alternate_interior_angles_postulate:: alternative_playfair_s_postulate:: alternative_proclus_postulate:: alternative_strong_parallel_postulate:: bachmann_s_lotschnittaxiom:: consecutive_interior_angles_postulate:: euclid_5:: euclid_s_parallel_postulate:: existential_playfair_s_postulate:: existential_thales_postulate:: inverse_projection_postulate:: legendre_s_parallel_postulate:: midpoint_converse_postulate:: perpendicular_transversal_postulate:: postulate_of_transitivity_of_parallelism:: playfair_s_postulate:: posidonius_postulate:: universal_posidonius_postulate:: postulate_of_existence_of_a_right_lambert_quadrilateral:: postulate_of_existence_of_a_right_saccheri_quadrilateral:: postulate_of_existence_of_a_triangle_whose_angles_sum_to_two_rights:: postulate_of_existence_of_similar_triangles:: postulate_of_parallelism_of_perpendicular_transversals:: postulate_of_right_lambert_quadrilaterals:: postulate_of_right_saccheri_quadrilaterals:: postulate_of_transitivity_of_parallelism:: proclus_postulate:: strong_parallel_postulate:: tarski_s_parallel_postulate:: thales_postulate:: thales_converse_postulate:: triangle_circumscription_principle:: triangle_postulate:: weak_inverse_projection_postulate:: weak_tarski_s_parallel_postulate:: weak_triangle_circumscription_principle:: nil) -> P.
Lemma strong_parallel_postulate_implies_inter_dec : strong_parallel_postulate -> decidability_of_intersection.
Lemma rah__similar : postulate_of_right_saccheri_quadrilaterals -> postulate_of_existence_of_similar_triangles.
Lemma rectangle_principle__rectangle_existence : postulate_of_right_lambert_quadrilaterals -> postulate_of_existence_of_a_right_lambert_quadrilateral.
Lemma bachmann_s_lotschnittaxiom__weak_inverse_projection_postulate : bachmann_s_lotschnittaxiom -> weak_inverse_projection_postulate.
Lemma alternate_interior__triangle : alternate_interior_angles_postulate -> triangle_postulate.
Lemma tarski_s_euclid_implies_playfair : tarski_s_parallel_postulate -> playfair_s_postulate.
Lemma weak_tarski_s_parallel_postulate__weak_inverse_projection_postulate_aux : weak_tarski_s_parallel_postulate -> forall A B C P T, Per A B C -> InAngle T A B C -> P <> T -> CongA P B A P B C -> Per B P T -> Coplanar A B C P -> (exists X, Out B A X /\ Col T P X) \/ (exists Y, Out B C Y /\ Col T P Y).
Lemma weak_tarski_s_parallel_postulate__weak_inverse_projection_postulate : weak_tarski_s_parallel_postulate -> weak_inverse_projection_postulate.
Lemma thales_existence__rah : existential_thales_postulate -> postulate_of_right_saccheri_quadrilaterals.
Lemma thales_converse_postulate__weak_triangle_circumscription_principle : thales_converse_postulate -> weak_triangle_circumscription_principle.
Lemma existential_playfair__rah : existential_playfair_s_postulate -> postulate_of_right_saccheri_quadrilaterals.
Lemma playfair_implies_par_trans : playfair_s_postulate -> postulate_of_transitivity_of_parallelism.
Lemma bachmann_s_lotschnittaxiom__legendre_s_parallel_postulate : bachmann_s_lotschnittaxiom -> legendre_s_parallel_postulate.
Lemma weak_triangle_circumscription_principle__bachmann_s_lotschnittaxiom : weak_triangle_circumscription_principle -> bachmann_s_lotschnittaxiom.
Lemma tarski_s_euclid_remove_degenerated_cases : (forall A B C D T, A <> B -> A <> C -> A <> D -> A <> T -> B <> C -> B <> D -> B <> T -> C <> D -> C <> T -> D <> T -> ~ Col A B C -> Bet A D T -> Bet B D C -> exists x y : Tpoint, Bet A B x /\ Bet A C y /\ Bet x T y) -> forall A B C D T, Bet A D T -> Bet B D C -> A <> D -> exists x y : Tpoint, Bet A B x /\ Bet A C y /\ Bet x T y.
Lemma euclid_5__original_euclid : euclid_5 -> euclid_s_parallel_postulate.
Lemma rah__existential_saccheri : postulate_of_right_saccheri_quadrilaterals -> postulate_of_existence_of_a_right_saccheri_quadrilateral.
Lemma proclus__aristotle : proclus_postulate -> aristotle_s_axiom.
Lemma similar__rah_aux : forall A B C D E F, ~ Col A B C -> CongA A B C D E F -> CongA B C A E F D -> CongA C A B F D E -> LeA B C A A B C -> Lt D E A B -> postulate_of_right_saccheri_quadrilaterals.
Lemma similar__rah : postulate_of_existence_of_similar_triangles -> postulate_of_right_saccheri_quadrilaterals.
Lemma inverse_projection_postulate__proclus_bis : inverse_projection_postulate -> alternative_proclus_postulate.
Theorem stronger_legendre_s_first_theorem : aristotle_s_axiom -> forall A B C D E F, SumA C A B A B C D E F -> SAMS D E F B C A.
Theorem legendre_s_first_theorem : archimedes_axiom -> forall A B C D E F, SumA C A B A B C D E F -> SAMS D E F B C A.
Theorem legendre_s_second_theorem : postulate_of_existence_of_a_triangle_whose_angles_sum_to_two_rights -> triangle_postulate.
Lemma legendre_s_third_theorem_aux : aristotle_s_axiom -> triangle_postulate -> euclid_s_parallel_postulate.
Theorem legendre_s_third_theorem : archimedes_axiom -> triangle_postulate -> euclid_s_parallel_postulate.
Lemma legendre_aux : ~ hypothesis_of_obtuse_saccheri_quadrilaterals -> forall A B C D B1 C1 P Q R S T U V W X, ~ Col A B C -> CongA A C B C B D -> Cong A C B D -> TS B C A D -> Out A B B1 -> Out A C C1 -> Bet B1 D C1 -> Defect A B C P Q R -> Defect A B1 C1 S T U -> SumA P Q R P Q R V W X -> SAMS P Q R P Q R /\ LeA V W X S T U.
Lemma legendre_aux1 : forall A B C B' C', ~ Col A B C -> Out A B B' -> Out A C C' -> exists D', InAngle D' B A C /\ CongA A C' B' C' B' D' /\ Cong A C' B' D' /\ TS B' C' A D'.
Lemma legendre_aux2 : ~ hypothesis_of_obtuse_saccheri_quadrilaterals -> forall A B C, ~ Col A B C -> Acute B A C -> (forall T, InAngle T B A C -> exists X Y : Tpoint, Out A B X /\ Out A C Y /\ Bet X T Y) -> forall P Q R S T U, Defect A B C P Q R -> GradAExp P Q R S T U -> exists B' C' P' Q' R', (Out A B B' /\ Out A C C' /\ Defect A B' C' P' Q' R' /\ LeA S T U P' Q' R').
Lemma legendre_s_fourth_theorem_aux : archimedes_axiom -> legendre_s_parallel_postulate -> postulate_of_right_saccheri_quadrilaterals.
Theorem legendre_s_fourth_theorem : archimedes_axiom -> legendre_s_parallel_postulate -> postulate_of_existence_of_a_triangle_whose_angles_sum_to_two_rights.
Lemma par_dec_NID : decidability_of_parallelism <-> decidability_of_not_intersection.
Lemma par_trans__par_dec : postulate_of_transitivity_of_parallelism -> decidability_of_parallelism.
Lemma col_int : forall A B C, Col A B C <-> ~ (~ Bet A B C /\ ~ Bet B C A /\ ~ Bet C A B).
Lemma existential_saccheri__rah : postulate_of_existence_of_a_right_saccheri_quadrilateral -> postulate_of_right_saccheri_quadrilaterals.
Lemma proclus_s_postulate_implies_strong_parallel_postulate : proclus_postulate -> strong_parallel_postulate.
Lemma rah__thales_postulate : postulate_of_right_saccheri_quadrilaterals -> thales_postulate.
Lemma playfair__universal_posidonius_postulate : playfair_s_postulate -> universal_posidonius_postulate.
Lemma triangle__existential_triangle : triangle_postulate -> postulate_of_existence_of_a_triangle_whose_angles_sum_to_two_rights.
Lemma playfair__existential_playfair : playfair_s_postulate -> existential_playfair_s_postulate.
Lemma par_perp_perp_implies_par_perp_2_par : perpendicular_transversal_postulate -> postulate_of_parallelism_of_perpendicular_transversals.
Lemma existential_triangle__rah : postulate_of_existence_of_a_triangle_whose_angles_sum_to_two_rights -> postulate_of_right_saccheri_quadrilaterals.
Lemma inter_dec_plus_par_perp_perp_imply_triangle_circumscription : decidability_of_intersection -> perpendicular_transversal_postulate -> triangle_circumscription_principle.
Lemma thales_postulate__thales_converse_postulate : thales_postulate -> thales_converse_postulate.
Lemma tarski_s_euclid_implies_euclid_5 : tarski_s_parallel_postulate -> euclid_5.
Lemma posidonius_postulate__rah : posidonius_postulate -> postulate_of_right_saccheri_quadrilaterals.
Lemma par_trans_implies_playfair : postulate_of_transitivity_of_parallelism -> playfair_s_postulate.
Lemma universal_posidonius_postulate__perpendicular_transversal_postulate : universal_posidonius_postulate -> perpendicular_transversal_postulate.
Lemma bachmann_s_lotschnittaxiom__weak_triangle_circumscription_principle : bachmann_s_lotschnittaxiom -> weak_triangle_circumscription_principle.
Lemma weak_inverse_projection_postulate__bachmann_s_lotschnittaxiom : weak_inverse_projection_postulate -> bachmann_s_lotschnittaxiom.
Lemma alternate_interior__playfair_aux : alternate_interior_angles_postulate -> forall A1 A2 B1 B2 C1 C2 P, Perp2 A1 A2 B1 B2 P -> ~ Col A1 A2 P -> Col P B1 B2 -> Coplanar A1 A2 B1 B2 -> Par A1 A2 C1 C2 -> Col P C1 C2 -> Col C1 B1 B2.
Lemma alternate_interior__playfair_bis : alternate_interior_angles_postulate -> alternative_playfair_s_postulate.
Lemma g2_1 : forall A B, CongG A B A B.
Lemma g2_2 : forall A B C D, CongG A B C D -> CongG C D A B.
Lemma cong_inner_transitivityT : forall A B C D E F, CongG A B C D -> CongG A B E F -> CongG C D E F.
Lemma g2_3 : forall A B C D, CongG A B C D -> CongG B A C D.
Lemma g2_4 : forall A B C D, CongG A B C D -> CongG A B D C.
Lemma g2_5 : forall A B C D, CongG A B C D -> (A = B <-> C = D).
Lemma g2_6 : forall A B, BetG A B B /\ CongG B B A A.
Lemma g2_7 : forall A B C A' B' C', CongG A B A' B' -> CongG B C B' C' -> BetG A B C -> BetG A' B' C' -> CongG A C A' C'.
Lemma g2_8 : forall A B C D, BetG A B C -> BetG A B D -> CongG B C B D -> A <> B -> C = D.
Lemma g2_9 : forall A B C, BetG A B A -> BetG C A B.
Lemma g2_10 : forall A B C, BetG A B A -> BetG C B A.
Lemma g2_11 : forall A B C, BetG A B A -> A <> B -> exists D, BetG C D C /\ BetG D C D /\ C <> D.
Lemma g2_12 : forall A B C, BetG A B A -> BetG A B C.
Lemma g2_13 : forall A B C, BetG A B A -> A <> B -> BetG C B C.
Lemma g2_14 : forall A B C D, BetG A B A -> A <> B -> BetG C D C /\ BetG D C D.
Lemma g2_15 : forall A B C D E, BetG A B A -> A <> B -> BetG C D E.
Lemma g2_16 : forall A B C D E, ~ BetG C D E -> BetG A B A -> A = B.
Lemma between_identityT : forall A B, BetG A B A -> A = B.
Lemma cong_trivial_identityT : forall A B, CongG A A B B.
Lemma l2_11T : forall A B C A' B' C', BetG A B C -> BetG A' B' C' -> CongG A B A' B' -> CongG B C B' C' -> CongG A C A' C'.
Lemma construction_uniquenessT : forall Q A B C X Y, Q <> A -> BetG Q A X -> CongG A X B C -> BetG Q A Y -> CongG A Y B C -> X = Y.
Lemma between_trivialT : forall A B, BetG A B B.
Lemma bet_decG : forall A B C, BetG A B C \/ ~ BetG A B C.
Lemma five_segment' : forall A A' B B' C C' D D', Cong A B A' B' -> Cong B C B' C' -> Cong A D A' D' -> Cong B D B' D' -> Bet A B C -> Bet A' B' C' -> A <> B -> Cong D C C' D'.
Lemma lower_dim_ex : exists A B C, ~ (Bet A B C \/ Bet B C A \/ Bet C A B).
Lemma cong_stability : forall A B C D, ~ ~ Cong A B C D -> Cong A B C D.
Lemma cong_stability_eq_stability : forall A B : ITpoint, ~ A <> B -> A = B.
Lemma col_dec : forall A B C, ICol A B C \/ ~ ICol A B C.
Lemma eq_dec : forall A B :ITpoint, A=B \/ A<>B.
Lemma cong_inner_transitivity' : forall A B C D E F, Cong A B E F -> Cong C D E F -> Cong A B C D.
Lemma inner_pasch' : forall A B C P Q, Bet A P C -> Bet B Q C -> A <> P -> P <> C -> B <> Q -> Q <> C -> ~ (Bet A B C \/ Bet B C A \/ Bet C A B) -> exists x : Tpoint, Bet P x B /\ Bet Q x A.
Lemma cong_dec_eq_dec : (forall A B C D, Cong A B C D \/ ~ Cong A B C D) -> (forall A B:Tpoint, A=B \/ A<>B).
Lemma eq_dec_implies_l2_11 : (forall A B:Tpoint, A=B \/ A<>B) -> forall A B C A' B' C', Bet A B C -> Bet A' B' C' -> Cong A B A' B' -> Cong B C B' C' -> Cong A C A' C'.
Lemma eq_dec_implies_construction_uniqueness : (forall A B:Tpoint, A=B \/ A<>B) -> forall Q A B C X Y, Q <> A -> Bet Q A X -> Cong A X B C -> Bet Q A Y -> Cong A Y B C -> X=Y.
Lemma eq_dec_implies_outer_transitivity_between2 : (forall A B:Tpoint, A=B \/ A<>B) -> forall A B C D, Bet A B C -> Bet B C D -> B<>C -> Bet A C D.
Lemma eq_dec_implies_between_exchange4 : (forall A B:Tpoint, A=B \/ A<>B) -> forall A B C D, Bet A B C -> Bet A C D -> Bet A B D.
Lemma eq_dec_implies_two_distinct_points : (forall A B:Tpoint, A=B \/ A<>B) -> exists X, exists Y: Tpoint, X <> Y.
Lemma eq_dec_implies_point_construction_different : (forall A B:Tpoint, A=B \/ A<>B) -> forall A B, exists C, Bet A B C /\ B <> C.
Lemma eq_dec_implies_l4_2 : (forall A B:Tpoint, A=B \/ A<>B) -> forall A B C D A' B' C' D', IFSC A B C D A' B' C' D' -> Cong B D B' D'.
Lemma eq_dec_implies_l4_5 : (forall A B:Tpoint, A=B \/ A<>B) -> forall A B C A' C', Bet A B C -> Cong A C A' C' -> exists B', Bet A' B' C' /\ Cong_3 A B C A' B' C'.
Lemma eq_dec_implies_l4_6 : (forall A B:Tpoint, A=B \/ A<>B) -> forall A B C A' B' C', Bet A B C -> Cong_3 A B C A' B' C' -> Bet A' B' C'.
Lemma eq_dec_implies_l4_16 : (forall A B:Tpoint, A=B \/ A<>B) -> forall A B C D A' B' C' D', FSC A B C D A' B' C' D' -> A<>B -> Cong C D C' D'.
Lemma eq_dec_implies_l4_17 : (forall A B:Tpoint, A=B \/ A<>B) -> forall A B C P Q, A<>B -> Col A B C -> Cong A P A Q -> Cong B P B Q -> Cong C P C Q.
Lemma eq_dec_implies_l5_1 : (forall A B:Tpoint, A=B \/ A<>B) -> forall A B C D, A<>B -> Bet A B C -> Bet A B D -> Bet A C D \/ Bet A D C.
Lemma eq_dec_implies_l5_2 : (forall A B:Tpoint, A=B \/ A<>B) -> forall A B C D, A<>B -> Bet A B C -> Bet A B D -> Bet B C D \/ Bet B D C.
Lemma eq_dec_implies_segment_construction_2 : (forall A B:Tpoint, A=B \/ A<>B) -> forall A Q B C, A<>Q -> exists X, (Bet Q A X \/ Bet Q X A) /\ Cong Q X B C.
Lemma eq_dec_implies_between_cong : (forall A B:Tpoint, A=B \/ A<>B) -> forall A B C, Bet A C B -> Cong A C A B -> C=B.
Lemma eq_dec_cong_dec : (forall A B:Tpoint, A=B \/ A<>B) -> (forall A B C D, Cong A B C D \/ ~ Cong A B C D).
Lemma bet_dec_eq_dec : (forall A B C, Bet A B C \/ ~ Bet A B C) -> (forall A B:Tpoint, A=B \/ A<>B).
Lemma eq_dec_implies_between_cong_3 : (forall A B:Tpoint, A=B \/ A<>B) -> forall A B D E, A <> B -> Bet A B D -> Bet A B E -> Cong B D B E -> D = E.
Lemma eq_dec_bet_dec : (forall A B:Tpoint, A=B \/ A<>B) -> (forall A B C, Bet A B C \/ ~ Bet A B C).
Lemma minus_n_0 : forall n, n-0 = n.
Lemma plus_0_n : forall n, 0+n = n.
Lemma plus_n_0 : forall n, n+0 = n.
Lemma plus_n_1 : forall n, n+1 = S n.
Lemma minus_n1_n2_0 : forall n1 n2, n1+n2-0 = n1+n2.
Lemma lemma_tarskiparallelflip : forall A B C D, TP A B C D -> TP B A C D /\ TP A B D C /\ TP B A D C.
Lemma proposition_44 : forall A B D J N R a b c, Triangle a b c -> nCol J D N -> nCol A B R -> exists X Y Z, PG A B X Y /\ CongA A B X J D N /\ EF a b Z c A B X Y /\ Midpoint b Z c /\ TS X A B R.
Lemma lemma_collinearbetween : forall A B C D E F H, Col A E B -> Col C F D -> neq A B -> neq C D -> neq A E -> neq F D -> ~ Meet A B C D -> BetS A H D -> Col E F H -> BetS E H F.
Lemma lemma_Euclid4 : forall A B C a b c, Per A B C -> Per a b c -> CongA A B C a b c.
Lemma lemma_NCorder : forall A B C, nCol A B C -> nCol B A C /\ nCol B C A /\ nCol C A B /\ nCol A C B /\ nCol C B A.
Lemma lemma_inequalitysymmetric : forall A B, neq A B -> neq B A.
Lemma proposition_25 : forall A B C D E F, Triangle A B C -> Triangle D E F -> Cong A B D E -> Cong A C D F -> Lt E F B C -> LtA E D F B A C.
Lemma lemma_3_7a : forall A B C D, BetS A B C -> BetS B C D -> BetS A C D.
Lemma proposition_28C : forall B D G H, RT B G H G H D -> OS B D G H -> Par G B H D.
Lemma lemma_rightangleNC : forall A B C, Per A B C -> nCol A B C.
Lemma proposition_31short : forall A B C D, BetS B D C -> nCol B C A -> exists X Y Z, BetS X A Y /\ CongA X A D A D C /\ Par X Y B C /\ BetS X Z C /\ BetS A Z D.
Lemma proposition_21 : forall A B C D E, Triangle A B C -> BetS A E C -> BetS B D E -> TT B A A C B D D C /\ LtA B A C B D C.
Lemma lemma_TTorder : forall A B C D E F G H, TT A B C D E F G H -> TT C D A B E F G H.
Lemma lemma_angletrichotomy : forall A B C D E F, LtA A B C D E F -> ~ LtA D E F A B C.
Lemma proposition_40 : forall A B C D E H, Cong B C H E -> ET A B C D H E -> Triangle A B C -> Triangle D H E -> Col B C H -> Col B C E -> OS A D B C -> neq A D -> Par A D B C.
Lemma lemma_ETreflexive : forall A B C, Triangle A B C -> ET A B C A B C.
Lemma proposition_30A : forall A B C D E F G H K, Par A B E F -> Par C D E F -> BetS G H K -> BetS A G B -> BetS E H F -> BetS C K D -> TS A G H F -> TS F H K C -> Par A B C D.
Lemma lemma_equalanglesreflexive : forall A B C, nCol A B C -> CongA A B C A B C.
Lemma proposition_04 : forall A B C a b c, Cong A B a b -> Cong A C a c -> CongA B A C b a c -> Cong B C b c /\ CongA A B C a b c /\ CongA A C B a c b.
Lemma lemma_congruencetransitive : forall A B C D E F, Cong A B C D -> Cong C D E F -> Cong A B E F.
Lemma lemma_equalanglestransitive : forall A B C D E F P Q R, CongA A B C D E F -> CongA D E F P Q R -> CongA A B C P Q R.
Lemma lemma_RTsymmetric : forall A B C D E F, RT A B C D E F -> RT D E F A B C.
Lemma lemma_angletrichotomy2 : forall A B C D E F, nCol A B C -> nCol D E F -> ~ CongA A B C D E F -> ~ LtA D E F A B C -> LtA A B C D E F.
Lemma lemma_linereflectionisometry : forall A B C D E F, Per B A C -> Per A B D -> BetS C A E -> BetS D B F -> Cong A C A E -> Cong B D B F -> Cong C D E F.
Lemma proposition_31 : forall A B C D, BetS B D C -> nCol B C A -> exists X Y Z, BetS X A Y /\ CongA Y A D A D B /\ CongA Y A D B D A /\ CongA D A Y B D A /\ CongA X A D A D C /\ CongA X A D C D A /\ CongA D A X C D A /\ Par X Y B C /\ Cong X A D C /\ Cong A Y B D /\ Cong A Z Z D /\ Cong X Z Z C /\ Cong B Z Z Y /\ BetS X Z C /\ BetS B Z Y /\ BetS A Z D.
Lemma lemma_angleordertransitive : forall A B C D E F P Q R, LtA A B C D E F -> LtA D E F P Q R -> LtA A B C P Q R.
Lemma lemma_crossbar : forall A B C E U V, Triangle A B C -> BetS A E C -> Out B A U -> Out B C V -> exists X, Out B E X /\ BetS U X V.
Lemma proposition_44A : forall A B D E F G J N, PG B E F G -> CongA E B G J D N -> BetS A B E -> exists X Y, PG A B X Y /\ CongA A B X J D N /\ EF B E F G Y X B A /\ BetS G B X.
Lemma lemma_samesidetransitive : forall A B P Q R, OS P Q A B -> OS Q R A B -> OS P R A B.
Lemma lemma_lessthancongruence : forall A B C D E F, Lt A B C D -> Cong C D E F -> Lt A B E F.
Lemma lemma_Playfairhelper : forall A B C D E, Par A B C D -> Par A B C E -> CR A D B C -> CR A E B C -> Col C D E.
Lemma lemma_TTflip2 : forall A B C D E F G H, TT A B C D E F G H -> TT A B C D H G F E.
Lemma lemma_notperp : forall A B C P, BetS A C B -> nCol A B P -> exists X, nCol A B X /\ OS X P A B /\ ~ Per A C X.
Lemma proposition_14 : forall A B C D E, RT A B C D B E -> Out B C D -> TS E D B A -> Supp A B C D E /\ BetS A B E.
Lemma lemma_subtractequals : forall A B C D E, BetS A B C -> BetS A D E -> Cong B C D E -> BetS A C E -> BetS A B D.
Lemma lemma_8_7 : forall A B C, Per C B A -> ~ Per A C B.
Lemma lemma_supplementsymmetric : forall A B C D E, Supp A B C E D -> Supp D B E C A.
Lemma lemma_supplements : forall A B C D F a b c d f, CongA A B C a b c -> Supp A B C D F -> Supp a b c d f -> CongA D B F d b f.
Lemma lemma_8_3 : forall A B C D, Per A B C -> Out B C D -> Per A B D.
Lemma lemma_parallelNC : forall A B C D, Par A B C D -> nCol A B C /\ nCol A C D /\ nCol B C D /\ nCol A B D.
Lemma proposition_10 : forall A B, neq A B -> exists X, BetS A X B /\ Cong X A X B.
Lemma lemma_ray2 : forall A B C, Out A B C -> neq A B.
Lemma lemma_differenceofparts : forall A B C a b c, Cong A B a b -> Cong A C a c -> BetS A B C -> BetS a b c -> Cong B C b c.
Lemma lemma_lessthannotequal : forall A B C D, Lt A B C D -> neq A B /\ neq C D.
Lemma proposition_35A : forall A B C D E F, PG A B C D -> PG E B C F -> BetS A D F -> Col A E F -> EF A B C D E B C F.
Lemma proposition_35 : forall A B C D E F, PG A B C D -> PG E B C F -> Col A D E -> Col A D F -> EF A B C D E B C F.
Lemma proposition_29C : forall B D E G H, Par G B H D -> OS B D G H -> BetS E G H -> CongA E G B G H D /\ RT B G H G H D.
Lemma lemma_3_6a : forall A B C D, BetS A B C -> BetS A C D -> BetS B C D.
Lemma proposition_47 : forall A B C D E F G H K, Triangle A B C -> Per B A C -> SQ A B F G -> TS G B A C -> SQ A C K H -> TS H C A B -> SQ B C E D -> TS D C B A -> exists X Y, PG B X Y D /\ BetS B X C /\ PG X C E Y /\ BetS D Y E /\ EF A B F G B X Y D /\ EF A C K H X C E Y.
Lemma lemma_fiveline : forall A B C D a b c d, Col A B C -> Cong A B a b -> Cong B C b c -> Cong A D a d -> Cong C D c d -> Cong A C a c -> neq A C -> Cong B D b d.
Lemma lemma_parallelPasch : forall A B C D E, PG A B C D -> BetS A D E -> exists X, BetS B X E /\ BetS C X D.
Lemma lemma_3_7b : forall A B C D, BetS A B C -> BetS B C D -> BetS A B D.
Lemma lemma_supplementinequality : forall A B C D F a b c d f, Supp A B C D F -> Supp a b c d f -> LtA a b c A B C -> LtA D B F d b f.
Lemma lemma_squareparallelogram : forall A B C D, SQ A B C D -> PG A B C D.
Lemma proposition_09 : forall A B C, nCol B A C -> exists X, CongA B A X X A C /\ InAngle B A C X.
Lemma lemma_TGsymmetric : forall A B C a b c, TG A a B b C c -> TG B b A a C c.
Lemma lemma_samesidereflexive : forall A B P, nCol A B P -> OS P P A B.
Lemma proposition_03 : forall A B C D E F, Lt C D A B -> Cong E F A B -> exists X, BetS E X F /\ Cong E X C D.
Lemma lemma_lessthanadditive : forall A B C D E F, Lt A B C D -> BetS A B E -> BetS C D F -> Cong B E D F -> Lt A E C F.
Lemma lemma_diagonalsbisect : forall A B C D, PG A B C D -> exists X, Midpoint A X C /\ Midpoint B X D.
Lemma lemma_collinearparallel2 : forall A B C D E F, Par A B C D -> Col C D E -> Col C D F -> neq E F -> Par A B E F.
Lemma proposition_30B : forall A B C D E F G H K, Par A B E F -> Par C D E F -> BetS G K H -> BetS A G B -> BetS E H F -> BetS C K D -> TS A G H F -> TS C K H F -> Par A B C D.
Lemma proposition_07 : forall A B C D, neq A B -> Cong C A D A -> Cong C B D B -> OS C D A B -> eq C D.
Lemma lemma_doublereverse : forall A B C D, Cong A B C D -> Cong D C B A /\ Cong B A D C.
Lemma lemma_tworays : forall A B C, Out A B C -> Out B A C -> BetS A C B.
Lemma lemma_righttogether : forall A B C G, Per G A B -> Per B A C -> TS G B A C -> RT G A B B A C /\ BetS G A C.
Lemma lemma_togethera : forall A B C D F G P Q a b c : Point, TG A a B b C c -> Cong D F A a -> Cong F G B b -> BetS D F G -> Cong P Q C c -> Lt P Q D G.
Lemma proposition_22 : forall A B C E F a b c, TG A a B b C c -> TG A a C c B b -> TG B b C c A a -> neq F E -> exists X Y, Cong F X B b /\ Cong F Y A a /\ Cong X Y C c /\ Out F E X /\ Triangle F X Y.
Lemma proposition_28D : forall B D E G H, BetS E G H -> CongA E G B G H D -> OS B D G H -> Par G B H D.
Lemma lemma_21helper : forall A B C E, TG B A A E B E -> BetS A E C -> TT B A A C B E E C.
Lemma proposition_43 : forall A B C D E F G H K, PG A B C D -> BetS A H D -> BetS A E B -> BetS D F C -> BetS B G C -> BetS A K C -> PG E A H K -> PG G K F C -> EF K G B E D F K H.
Lemma lemma_oppositesidesymmetric : forall A B P Q, TS P A B Q -> TS Q A B P.
Lemma lemma_crisscross : forall A B C D, Par A C B D -> ~ CR A B C D -> CR A D B C.
Lemma lemma_equaltorightisright : forall A B C a b c, Per A B C -> CongA a b c A B C -> Per a b c.
Lemma lemma_lessthantransitive : forall A B C D E F, Lt A B C D -> Lt C D E F -> Lt A B E F.
Lemma lemma_parallelflip : forall A B C D, Par A B C D -> Par B A C D /\ Par A B D C /\ Par B A D C.
Lemma proposition_05b : forall A B C F G, isosceles A B C -> BetS A B F -> BetS A C G -> CongA C B F B C G.
Lemma proposition_17 : forall A B C, Triangle A B C -> exists X Y Z, SumA A B C B C A X Y Z.
Lemma lemma_lessthanbetween : forall A B C, Lt A B A C -> Out A B C -> BetS A B C.
Lemma proposition_32 : forall A B C D, Triangle A B C -> BetS B C D -> SumA C A B A B C A C D.
Lemma lemma_angleorderrespectscongruence2 : forall A B C D E F a b c, LtA A B C D E F -> CongA a b c A B C -> LtA a b c D E F.
Lemma lemma_PGrectangle : forall A B C D, PG A C D B -> Per B A C -> RE A C D B.
Lemma lemma_ray5 : forall A B C, Out A B C -> Out A C B.
Lemma proposition_38 : forall A B C D E F P Q, Par P Q B C -> Col P Q A -> Col P Q D -> Cong B C E F -> Col B C E -> Col B C F -> ET A B C D E F.
Lemma lemma_extensionunique : forall A B E F, BetS A B E -> BetS A B F -> Cong B E B F -> eq E F.
Lemma lemma_30helper : forall A B E F G H, Par A B E F -> BetS A G B -> BetS E H F -> ~ CR A F G H -> CR A E G H.
Lemma lemma_samesideflip : forall A B P Q, OS P Q A B -> OS P Q B A.
Lemma lemma_pointreflectionisometry : forall A B C P Q, Midpoint A B C -> Midpoint P B Q -> neq A P -> Cong A P C Q.
Lemma lemma_oppositesideflip : forall A B P Q, TS P A B Q -> TS P B A Q.
Lemma lemma_ray1 : forall A B P, Out A B P -> (BetS A P B \/ eq B P \/ BetS A B P).
Lemma lemma_rectangleparallelogram : forall A B C D, RE A B C D -> PG A B C D.
Lemma lemma_collinear4 : forall A B C D, Col A B C -> Col A B D -> neq A B -> Col B C D.
Lemma lemma_TTflip : forall A B C D E F G H, TT A B C D E F G H -> TT B A D C E F G H.
Lemma lemma_3_6b : forall A B C D, BetS A B C -> BetS A C D -> BetS A B D.
Lemma lemma_sameside2 : forall A B C E F G, OS E F A C -> Col A B C -> Out B F G -> OS E G A C.
Lemma proposition_36 : forall A B C D E F G H, PG A B C D -> PG E F G H -> Col A D E -> Col A D H -> Col B C F -> Col B C G -> Cong B C F G -> EF A B C D E F G H.
Lemma lemma_TCreflexive : forall A B C, Triangle A B C -> Cong_3 A B C A B C.
Lemma proposition_23C : forall A B C D E P, neq A B -> nCol D C E -> nCol A B P -> exists X Y, Out A B Y /\ CongA X A Y D C E /\ OS X P A B.
Lemma lemma_equalanglesNC : forall A B C a b c, CongA A B C a b c -> nCol a b c.
Lemma lemma_trapezoiddiagonals : forall A B C D E, PG A B C D -> BetS A E D -> exists X, BetS B X D /\ BetS C X E.
Lemma proposition_19 : forall A B C, Triangle A B C -> LtA B C A A B C -> Lt A B A C.
Lemma lemma_collinearorder : forall A B C, Col A B C -> Col B A C /\ Col B C A /\ Col C A B /\ Col A C B /\ Col C B A.
Lemma lemma_interior5 : forall A B C D a b c d, BetS A B C -> BetS a b c -> Cong A B a b -> Cong B C b c -> Cong A D a d -> Cong C D c d -> Cong B D b d.
Lemma proposition_13 : forall A B C D, BetS D B C -> nCol A B C -> RT C B A A B D.
Lemma proposition_11B : forall A B C P, BetS A C B -> nCol A B P -> exists X, Per A C X /\ TS X A B P.
Lemma lemma_Playfair : forall A B C D E, Par A B C D -> Par A B C E -> Col C D E.
Lemma lemma_squareflip : forall A B C D, SQ A B C D -> SQ B A D C.
Lemma lemma_twolines2 : forall A B C D P Q, neq A B -> neq C D -> Col P A B -> Col P C D -> Col Q A B -> Col Q C D -> ~ (Col A C D /\ Col B C D) -> eq P Q.
Lemma lemma_altitudeofrighttriangle : forall A B C M p, Per B A C -> Per A M p -> Col B C p -> Col B C M -> BetS B M C.
Lemma lemma_ondiameter : forall D F K M N P Q, CI K F P Q -> Cong F D P Q -> Cong F M P Q -> BetS D F M -> BetS D N M -> InCirc N K.
Lemma proposition_27 : forall A B C D E F, BetS A E B -> BetS C F D -> CongA A E F E F D -> TS A E F D -> Par A B C D.
Lemma lemma_parallelsymmetric : forall A B C D, Par A B C D -> Par C D A B.
Lemma proposition_28A : forall A B C D E G H, BetS A G B -> BetS C H D -> BetS E G H -> CongA E G B G H D -> OS B D G H -> Par A B C D.
Lemma proposition_46 : forall A B R, neq A B -> nCol A B R -> exists X Y, SQ A B X Y /\ TS Y A B R /\ PG A B X Y.
Lemma lemma_squareunique : forall A B C D E, SQ A B C D -> SQ A B C E -> eq E D.
Lemma proposition_02 : forall A B C, neq A B -> neq B C -> exists X, Cong A X B C.
Lemma lemma_Playfairhelper2 : forall A B C D E, Par A B C D -> Par A B C E -> CR A D B C -> Col C D E.
Lemma lemma_ray : forall A B P, Out A B P -> neq P B -> ~ BetS A P B -> BetS A B P.
Lemma lemma_squaresequal : forall A B C D a b c d, Cong A B a b -> SQ A B C D -> SQ a b c d -> EF A B C D a b c d.
Lemma proposition_08 : forall A B C D E F, Triangle A B C -> Triangle D E F -> Cong A B D E -> Cong A C D F -> Cong B C E F -> CongA B A C E D F /\ CongA C B A F E D /\ CongA A C B D F E.
Lemma proposition_47B : forall A B C D E F G, Triangle A B C -> Per B A C -> SQ A B F G -> TS G B A C -> SQ B C E D -> TS D C B A -> exists X Y, PG B X Y D /\ BetS B X C /\ PG X C E Y /\ BetS D Y E /\ BetS Y X A /\ Per D Y A /\ EF A B F G B X Y D.
Lemma lemma_parallelbetween : forall B H K L M, BetS H B K -> Par M B H L -> Col L M K -> BetS L M K.
Lemma lemma_betweennotequal : forall A B C, BetS A B C -> neq B C /\ neq A B /\ neq A C.
Lemma lemma_layoff : forall A B C D, neq A B -> neq C D -> exists X, Out A B X /\ Cong A X C D.
Lemma lemma_collinearparallel : forall A B C c d, Par A B c d -> Col c d C -> neq C d -> Par A B C d.
Lemma lemma_rectanglereverse : forall A B C D, RE A B C D -> RE D C B A.
Lemma proposition_06 : forall A B C, Triangle A B C -> CongA A B C A C B -> Cong A B A C.
Lemma lemma_3_5b : forall A B C D, BetS A B D -> BetS B C D -> BetS A C D.
Lemma lemma_35helper : forall A B C D E F, PG A B C D -> PG E B C F -> BetS A D F -> Col A E F -> BetS A E F.
Lemma lemma_trichotomy2 : forall A B C D, Lt A B C D -> ~ Lt C D A B.
Lemma lemma_NChelper : forall A B C P Q, nCol A B C -> Col A B P -> Col A B Q -> neq P Q -> nCol P Q C.
Lemma proposition_29 : forall A B C D E G H, Par A B C D -> BetS A G B -> BetS C H D -> BetS E G H -> TS A G H D -> CongA A G H G H D /\ CongA E G B G H D /\ RT B G H G H D.
Lemma proposition_42 : forall A B C D E J K, Triangle A B C -> nCol J D K -> Midpoint B E C -> exists X Z, PG X E C Z /\ EF A B E C X E C Z /\ CongA C E X J D K /\ Col X Z A.
Lemma proposition_26B : forall A B C D E F, Triangle A B C -> Triangle D E F -> CongA A B C D E F -> CongA B C A E F D -> Cong A B D E -> Cong B C E F /\ Cong A C D F /\ CongA B A C E D F.
Lemma lemma_9_5a : forall A B C P Q R, TS P A B C -> BetS R P Q -> nCol R Q C -> Col A B R -> TS Q A B C.
Lemma proposition_48 : forall A B C D E F G H K L M, Triangle A B C -> SQ A B F G -> SQ A C K H -> SQ B C E D -> BetS B M C -> BetS E L D -> EF A B F G B M L D -> EF A C K H M C E L -> RE M C E L -> Per B A C.
Lemma lemma_triangletoparallelogram : forall A C D E F, Par D C E F -> Col E F A -> exists X, PG A X C D /\ Col E F X.
Lemma proposition_43B : forall A B C D E F G H K, PG A B C D -> BetS A H D -> BetS A E B -> BetS D F C -> BetS B G C -> PG E A H K -> PG G K F C -> PG E K G B.
Lemma proposition_23 : forall A B C D E, neq A B -> nCol D C E -> exists X Y, Out A B Y /\ CongA X A Y D C E.
Lemma lemma_twoperpsparallel : forall A B C D, Per A B C -> Per B C D -> OS A D B C -> Par A B C D.
Lemma proposition_48A : forall A B C D a b c d, SQ A B C D -> SQ a b c d -> EF A B C D a b c d -> Cong A B a b.
Lemma lemma_TTtransitive : forall A B C D E F G H P Q R S, TT A B C D E F G H -> TT E F G H P Q R S -> TT A B C D P Q R S.
Lemma proposition_16 : forall A B C D, Triangle A B C -> BetS B C D -> LtA B A C A C D /\ LtA C B A A C D.
Lemma lemma_rectanglerotate : forall A B C D, RE A B C D -> RE B C D A.
Lemma lemma_localextension : forall A B Q, neq A B -> neq B Q -> exists X, BetS A B X /\ Cong B X B Q.
Lemma lemma_supplementofright : forall A B C D F, Supp A B C D F -> Per A B C -> Per F B D /\ Per D B F.
Lemma lemma_collinear1 : forall A B C, Col A B C -> Col B A C.
Lemma lemma_EFreflexive : forall a b c d p, BetS a p c -> BetS b p d -> nCol a b c -> EF a b c d a b c d.
Lemma lemma_crossbar2 : forall A G H P S T, LtA H G A H G P -> OS A P G H -> Out G H S -> Out G P T -> exists X, BetS T X S /\ Out G A X.
Lemma proposition_39 : forall A B C D, Triangle A B C -> Triangle D B C -> OS A D B C -> ET A B C D B C -> neq A D -> Par A D B C.
Lemma lemma_raystrict : forall A B C, Out A B C -> neq A C.
Lemma lemma_ray4 : forall A B E, (BetS A E B \/ eq E B \/ BetS A B E) -> neq A B -> Out A B E.
Lemma proposition_27B : forall A D E F, CongA A E F E F D -> TS A E F D -> Par A E F D.
Lemma proposition_42B : forall B C D E J K R a b c e, Triangle a b c -> Midpoint b e c -> nCol J D K -> Midpoint B E C -> Cong E C e c -> nCol R E C -> exists X Z, PG X E C Z /\ EF a b e c X E C Z /\ CongA C E X J D K /\ OS R X E C.
Lemma lemma_9_5 : forall A B C P Q R, TS P A B C -> Out R Q P -> Col A B R -> TS Q A B C.
Lemma proposition_33 : forall A B C D M, Par A B C D -> Cong A B C D -> BetS A M D -> BetS B M C -> Par A C B D /\ Cong A C B D.
Lemma proposition_33B : forall A B C D, Par A B C D -> Cong A B C D -> OS A C B D -> Par A C B D /\ Cong A C B D.
Lemma lemma_samenotopposite : forall A B C D, OS A B C D -> ~ TS A C D B.
Lemma lemma_equalanglessymmetric : forall A B C a b c, CongA A B C a b c -> CongA a b c A B C.
Lemma lemma_twolines : forall A B C D E F, Cut A B C D E -> Cut A B C D F -> nCol B C D -> eq E F.
Lemma proposition_37 : forall A B C D, Par A D B C -> ET A B C D B C.
Lemma lemma_collinear5 : forall A B C D E, neq A B -> Col A B C -> Col A B D -> Col A B E -> Col C D E.
Lemma lemma_rightreverse : forall A B C D, Per A B C -> BetS A B D -> Cong A B B D -> Cong A C D C.
Lemma lemma_together2 : forall A B C F G M N a b c, TG A a C c B b -> Cong F G B b -> Out F G M -> Cong F M A a -> Out G F N -> Cong G N C c -> Out M F N.
Lemma lemma_TGflip : forall A B C a b c, TG A a B b C c -> TG a A B b C c /\ TG A a B b c C.
Lemma lemma_paralleldef2B : forall A B C D, Par A B C D -> TP A B C D.
Lemma proposition_12 : forall A B C, nCol A B C -> exists X, Perp_at C X A B X.
Lemma lemma_ABCequalsCBA : forall A B C, nCol A B C -> CongA A B C C B A.
Lemma lemma_parallelcollinear1 : forall A B C c d, TP A B c d -> BetS C c d -> TP A B C d.
Lemma lemma_crossimpliesopposite : forall A B C D, CR A B C D -> nCol A C D -> TS A C D B /\ TS A D C B /\ TS B C D A /\ TS B D C A.
Lemma lemma_droppedperpendicularunique : forall A J M P, Per A M P -> Per A J P -> Col A M J -> eq M J.
Lemma proposition_18 : forall A B C, Triangle A B C -> Lt A B A C -> LtA B C A A B C.
Lemma proposition_39A : forall A B C D M, Triangle A B C -> ET A B C D B C -> BetS A M C -> Out B D M -> Par A D B C.
Lemma lemma_parallelcollinear : forall A B C c d, TP A B c d -> Col c d C -> neq C d -> TP A B C d.
Lemma lemma_collinearright : forall A B C D, Per A B D -> Col A B C -> neq C B -> Per C B D.
Lemma lemma_equalanglesflip : forall A B C D E F, CongA A B C D E F -> CongA C B A F E D.
Lemma lemma_outerconnectivity : forall A B C D, BetS A B C -> BetS A B D -> ~ BetS B C D -> ~ BetS B D C -> eq C D.
Lemma proposition_23B : forall A B C D E P, neq A B -> nCol D C E -> nCol A B P -> exists X Y, Out A B Y /\ CongA X A Y D C E /\ TS X A B P.
Lemma lemma_lessthancongruence2 : forall A B C D E F, Lt A B C D -> Cong A B E F -> Lt E F C D.
Lemma lemma_26helper : forall A B C D E F, Triangle A B C -> CongA A B C D E F -> CongA B C A E F D -> Cong A B D E -> ~ Lt E F B C.
Lemma proposition_01 : forall A B, neq A B -> exists X, equilateral A B X /\ Triangle A B X.
Lemma lemma_PGsymmetric : forall A B C D, PG A B C D -> PG C D A B.
Lemma lemma_RTcongruence : forall A B C D E F P Q R, RT A B C D E F -> CongA A B C P Q R -> RT P Q R D E F.
Lemma proposition_47A : forall A B C D E, Triangle A B C -> Per B A C -> SQ B C E D -> TS D C B A -> exists X Y, PG B X Y D /\ BetS B X C /\ PG X C E Y /\ BetS D Y E /\ BetS Y X A /\ Per D Y A.
Lemma lemma_NCdistinct : forall A B C, nCol A B C -> neq A B /\ neq B C /\ neq A C /\ neq B A /\ neq C B /\ neq C A.
Lemma lemma_collinearitypreserved : forall A B C a b c, Col A B C -> Cong A B a b -> Cong A C a c -> Cong B C b c -> Col a b c.
Lemma lemma_congruenceflip : forall A B C D, Cong A B C D -> Cong B A D C /\ Cong B A C D /\ Cong A B D C.
Lemma lemma_altitudebisectsbase : forall A B M P, BetS A M B -> Cong A P B P -> Per A M P -> Midpoint A M B.
Lemma proposition_28B : forall A B C D G H, BetS A G B -> BetS C H D -> RT B G H G H D -> OS B D G H -> Par A B C D.
Lemma proposition_24 : forall A B C D E F, Triangle A B C -> Triangle D E F -> Cong A B D E -> Cong A C D F -> LtA E D F B A C -> Lt E F B C.
Lemma proposition_06a : forall A B C, Triangle A B C -> CongA A B C A C B -> ~ Lt A C A B.
Lemma lemma_diagonalsmeet : forall A B C D, PG A B C D -> exists X, BetS A X C /\ BetS B X D.
Lemma proposition_45 : forall A B C D E J K N O R S, nCol J E N -> nCol A B D -> nCol C B D -> BetS A O C -> BetS B O D -> neq R K -> nCol K R S -> exists X Z U, PG X K Z U /\ CongA X K Z J E N /\ EF X K Z U A B C D /\ Out K R Z /\ OS X S K Z.
Lemma lemma_Pasch_outer2 : forall A B C P Q, BetS A P C -> BetS B C Q -> nCol B P A -> exists X, BetS A X Q /\ BetS B P X.
Lemma lemma_trichotomy1 : forall A B C D, ~ Lt A B C D -> ~ Lt C D A B -> neq A B -> neq C D -> Cong A B C D.
Lemma lemma_planeseparation : forall A B C D E, OS C D A B -> TS D A B E -> TS C A B E.
Lemma lemma_paste5 : forall B C D E L M b c d e l m, EF B M L D b m l d -> EF M C E L m c e l -> BetS B M C -> BetS b m c -> BetS E L D -> BetS e l d -> RE M C E L -> RE m c e l -> EF B C E D b c e d.
Lemma proposition_41 : forall A B C D E, PG A B C D -> Col A D E -> ET A B C E B C.
Lemma lemma_PGrotate : forall A B C D, PG A B C D -> PG B C D A.
Lemma lemma_9_5b : forall A B C P Q R, TS P A B C -> BetS R Q P -> nCol C P R -> Col A B R -> TS Q A B C.
Lemma proposition_26A : forall A B C D E F, Triangle A B C -> Triangle D E F -> CongA A B C D E F -> CongA B C A E F D -> Cong B C E F -> Cong A B D E /\ Cong A C D F /\ CongA B A C E D F.
Lemma proposition_20 : forall A B C, Triangle A B C -> TG B A A C B C.
Lemma lemma_layoffunique : forall A B C D, Out A B C -> Out A B D -> Cong A C A D -> eq C D.
Lemma lemma_angleaddition : forall A B C D E F P Q R a b c d e f p q r, SumA A B C D E F P Q R -> CongA A B C a b c -> CongA D E F d e f -> SumA a b c d e f p q r -> CongA P Q R p q r.
Lemma lemma_PGflip : forall A B C D, PG A B C D -> PG B A D C.
Lemma proposition_36A : forall A B C D E F G H M, PG A B C D -> PG E F G H -> Col A D E -> Col A D H -> Col B C F -> Col B C G -> Cong B C F G -> BetS B M H -> BetS C M E -> EF A B C D E F G H.
Lemma lemma_samesidecollinear : forall A B C P Q, OS P Q A B -> Col A B C -> neq A C -> OS P Q A C.
Lemma lemma_supplements2 : forall A B C D E F J K L P Q R, RT A B C P Q R -> CongA A B C J K L -> RT J K L D E F -> CongA P Q R D E F /\ CongA D E F P Q R.
Lemma proposition_05 : forall A B C, isosceles A B C -> CongA A B C A C B.
Lemma lemma_angledistinct : forall A B C a b c, CongA A B C a b c -> neq A B /\ neq B C /\ neq A C /\ neq a b /\ neq b c /\ neq a c.
Lemma lemma_rayimpliescollinear : forall A B C, Out A B C -> Col A B C.
Lemma lemma_extension : forall A B P Q, neq A B -> neq P Q -> exists X, BetS A B X /\ Cong B X P Q.
Lemma lemma_collinear2 : forall A B C, Col A B C -> Col B C A.
Lemma lemma_10_12 : forall A B C H, Per A B C -> Per A B H -> Cong B C B H -> Cong A C A H.
Lemma lemma_congruencesymmetric : forall A B C D, Cong B C A D -> Cong A D B C.
Lemma lemma_samesidesymmetric : forall A B P Q, OS P Q A B -> OS Q P A B /\ OS P Q B A /\ OS Q P B A.
Lemma lemma_betweennesspreserved : forall A B C a b c, Cong A B a b -> Cong A C a c -> Cong B C b c -> BetS A B C -> BetS a b c.
Lemma parnotmeet: forall A B C D, Par A B C D -> ~ Meet A B C D.
Lemma proposition_30 : forall A B C D E F G H K, Par A B E F -> Par C D E F -> BetS G H K -> Col A B G -> Col E F H -> Col C D K -> neq A G -> neq E H -> neq C K -> Par A B C D.
Lemma lemma_angleorderrespectscongruence : forall A B C D E F P Q R, LtA A B C D E F -> CongA P Q R D E F -> LtA A B C P Q R.
Lemma lemma_erectedperpendicularunique : forall A B C E, Per A B C -> Per A B E -> OS C E A B -> Out B C E.
Lemma lemma_squarerectangle : forall A B C D, SQ A B C D -> RE A B C D.
Lemma proposition_15 : forall A B C D E, BetS A E B -> BetS C E D -> nCol A E C -> CongA A E C D E B /\ CongA C E B A E D.
Lemma proposition_15a : forall A B C D E : Point, BetS A E B -> BetS C E D -> nCol A E C -> CongA A E C D E B.
Lemma proposition_15b : forall A B C D E : Point, BetS A E B -> BetS C E D -> nCol A E C -> CongA C E B A E D.
Lemma lemma_partnotequalwhole : forall A B C, BetS A B C -> ~ Cong A B A C.
Lemma proposition_11 : forall A B C, BetS A C B -> exists X, Per A C X.
Lemma lemma_midpointunique : forall A B C D, Midpoint A B C -> Midpoint A D C -> eq B D.
Lemma lemma_legsmallerhypotenuse : forall A B C, Per A B C -> Lt A B A C /\ Lt B C A C.
Lemma lemma_paralleldef2A : forall A B C D, TP A B C D -> Par A B C D.
Lemma lemma_parallelcollinear2 : forall A B C c d, TP A B c d -> BetS c C d -> TP A B C d.
Lemma lemma_8_2 : forall A B C, Per A B C -> Per C B A.
Lemma lemma_equalitysymmetric : forall A B, eq B A -> eq A B.
Lemma lemma_together : forall A B C D F G P Q a b c, TG A a B b C c -> Cong D F A a -> Cong F G B b -> BetS D F G -> Cong P Q C c -> Lt P Q D G /\ neq A a /\ neq B b /\ neq C c.
Lemma proposition_29B : forall A D G H, Par A G H D -> TS A G H D -> CongA A G H G H D.
Lemma proposition_34 : forall A B C D, PG A C D B -> Cong A B C D /\ Cong A C B D /\ CongA C A B B D C /\ CongA A B D D C A /\ Cong_3 C A B B D C.
Lemma lemma_equalangleshelper : forall A B C a b c p q, CongA A B C a b c -> Out b a p -> Out b c q -> CongA A B C p b q.
Lemma lemma_ray3 : forall B C D V, Out B C D -> Out B C V -> Out B D V.
Lemma prop_1_euclidean : forall A B, exists C, Cong A B A C /\ Cong A B B C.
Lemma prop_1_circle_circle : circle_circle -> forall A B, exists C, Cong A B A C /\ Cong A B B C.
Lemma prop_2 : forall A B C, exists L, Cong A L B C.
Lemma prop_3 : forall A B C1 C2, Le C1 C2 A B -> exists E, Bet A E B /\ Cong C1 C2 A E.
Lemma prop_4 : forall A B C D E F, CongA C A B F D E -> Cong A C D F -> Cong A B D E -> Cong C B F E /\ (C <> B -> CongA A C B D F E /\ CongA A B C D E F).
Lemma prop_5_1 : forall A B C, A <> B -> B <> C -> Cong A B A C -> CongA A B C A C B.
Lemma prop_5_2 : forall A B C F G, A <> B -> B <> C -> Cong A B A C -> Bet A B F -> B <> F -> Bet A C G -> C <> G -> CongA F B C G C B.
Lemma prop_6 : forall A B C, ~ Col A B C -> CongA A B C A C B -> Cong A B A C.
Lemma prop_7 : forall A B C C', Cong A C A C' -> Cong B C B C' -> OS A B C C' -> C = C'.
Lemma prop_8 : forall A B C D E F, A <> B -> A <> C -> B <> C -> Cong A B D E -> Cong A C D F -> Cong B C E F -> CongA B A C E D F /\ CongA A B C D E F /\ CongA B C A E F D.
Lemma prop_9 : forall A B C, A <> B -> A <> C -> exists F, InAngle F B A C /\ CongA F A B F A C.
Lemma prop_10 : forall A B, exists D, Midpoint D A B.
Lemma prop_11 : forall A B C, A <> B -> Col A B C -> exists F, Perp C F A B.
Lemma prop_12 : forall A B C, ~ Col A B C -> exists H, Col A B H /\ Perp A B C H.
Lemma prop_13 : forall A B C D P Q R, A <> B -> B <> C -> B <> D -> Bet C B D -> P <> Q -> Q <> R -> Per P Q R -> SumA C B A A B D C B D /\ SumA P Q R P Q R C B D.
Lemma prop_14 : forall A B C D P Q R S T U, TS A B C D -> Per P Q R -> SumA A B C A B D S T U -> SumA P Q R P Q R S T U -> Bet C B D.
Lemma prop_15 : forall A B C D E, Bet A E B -> A <> E -> B <> E -> Bet C E D -> C <> E -> D <> E -> CongA A E C B E D.
Lemma prop_16 : forall A B C D, ~ Col A B C -> Bet B C D -> C <> D -> LtA C A B A C D /\ LtA C B A A C D.
Lemma prop_17 : forall A B C P Q R, ~ Col A B C -> SumA A B C B C A P Q R -> SAMS A B C B C A /\ ~ Bet P Q R.
Lemma prop_18 : forall A B C, ~ Col A B C -> Lt A B A C -> Lt B C A C -> LtA B C A A B C /\ LtA C A B A B C.
Lemma prop_19 : forall A B C, ~ Col A B C -> LtA B C A A B C -> LtA C A B A B C -> Lt A B A C /\ Lt B C A C.
Lemma prop_20 : forall A B C P Q, ~ Bet B A C -> SumS A B A C P Q -> Lt B C P Q.
Lemma prop_21_1 : forall A B C D, OS A B C D -> OS B C A D -> OS A C B D -> LtA B A C B D C.
Lemma prop_21_2 : forall A B C D A1 A2 D1 D2, OS A B C D -> OS B C A D -> OS A C B D -> SumS A B A C A1 A2 -> SumS D B D C D1 D2 -> Lt D1 D2 A1 A2.
Lemma prop_22 : circle_circle -> forall A1 A2 B1 B2 C1 C2 A1' A2' B1' B2' C1' C2', SumS A1 A2 B1 B2 C1' C2' -> SumS A1 A2 C1 C2 B1' B2' -> SumS B1 B2 C1 C2 A1' A2' -> Le C1 C2 C1' C2' -> Le B1 B2 B1' B2' -> Le A1 A2 A1' A2' -> exists F G K, Cong F G A1 A2 /\ Cong F K B1 B2 /\ Cong G K C1 C2.
Lemma prop_23 : forall A B C D E, A <> B -> C <> D -> C <> E -> exists F, CongA D C E B A F.
Lemma prop_24 : forall A B C D E F, Cong A B D E -> Cong A C D F -> LtA F D E C A B -> Lt E F B C.
Lemma prop_25 : forall A B C D E F, A <> B -> A <> C -> Cong A B D E -> Cong A C D F -> Lt E F B C -> LtA F D E C A B.
Lemma prop_26_1 : forall A B C D E F, ~ Col A B C -> CongA B A C E D F -> CongA A B C D E F -> Cong A B D E -> Cong A C D F /\ Cong B C E F /\ CongA A C B D F E.
Lemma prop_26_2 : forall A B C D E F, ~ Col A B C -> CongA B C A E F D -> CongA A B C D E F -> Cong A B D E -> Cong A C D F /\ Cong B C E F /\ CongA C A B F D E.
Lemma prop_27 : forall A D E F, TS E F A D -> CongA A E F D F E -> Par E A F D.
Lemma prop_28_1 : forall B D E G H, Out E G H -> OS E G B D -> CongA B G E D H E -> Par G B H D.
Lemma prop_28_2 : forall A C G H P Q R, OS G H A C -> SumA A G H G H C P Q R -> Bet P Q R -> Par A G C H.
Lemma prop_29_1 : forall A D G H, TS G H A D -> Par G A H D -> CongA A G H D H G.
Lemma prop_29_2 : forall B D E G H, Out E G H -> OS E G B D -> Par G B H D -> CongA B G E D H E.
Lemma prop_29_3 : forall A C G H P Q R, OS G H A C -> Par A G H C -> SumA A G H G H C P Q R -> Bet P Q R.
Lemma prop_30 : forall A B C D E F, Par A B C D -> Par C D E F -> Par A B E F.
Lemma prop_31 : forall A B C, B <> C -> exists E, Par B C A E.
Lemma prop_32_1 : forall A B C D E F, TriSumA A B C D E F -> Bet D E F.
Lemma prop_32_2 : forall A B C D, A <> B -> B <> C -> A <> C -> Bet B C D -> C <> D -> SumA C A B A B C A C D.
Lemma prop_33 : forall A B C D, TS B C A D -> Par A B C D -> Cong A B C D -> Cong A C B D /\ Par A C B D.
Lemma prop_34_1 : forall A B D C, A <> B /\ A <> D /\ B <> D -> Parallelogram A B D C -> (CongA A B D D C A /\ CongA B D C C A B) /\ (Cong A B D C /\ Cong A C B D).
Lemma prop_46 : forall A B, A<>B -> exists E D, Square A B E D.
Lemma prop_47 : forall O E E' A B C AC BC AB AC2 BC2 AB2, O <> E -> Per B A C -> Length O E E' A B AB -> Length O E E' A C AC -> Length O E E' B C BC -> Prod O E E' AC AC AC2 -> Prod O E E' BC BC BC2 -> Prod O E E' AB AB AB2 -> Sum O E E' AB2 AC2 BC2.
Lemma prop_2 : forall O P U V X, X <> U -> X <> V -> Bet U X V -> OnCircle U O P -> OnCircle V O P -> InCircleS X O P.
Lemma prop_3_1 : forall O P A B X, O <> X -> A <> B -> OnCircle A O P -> OnCircle B O P -> Midpoint X A B -> Perp O X A B.
Lemma prop_3_2 : forall O P A B X, O<>X -> A<>B -> Col A B X -> OnCircle A O P -> OnCircle B O P -> Perp O X A B -> Midpoint X A B.
Lemma prop_4 : forall O P A B C D X, B <> C -> A <> B -> OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> OnCircle D O P -> Midpoint X A C -> Midpoint X B D -> X = O.
Lemma prop_5 : forall A B C D, InterCC A B C D -> A <> C.
Lemma prop_6: forall A B C D, A <> B -> TangentCC A B C D -> A <> C.
Lemma prop_9 : forall O P X A B C, A <> B -> A <> C -> B <> C -> OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> Cong X A X B -> Cong X A X C -> X = O.
Lemma prop_11_12 : forall A B C D X, TangentCC A B C D -> OnCircle X A B -> OnCircle X C D -> Col X A C.
Lemma prop_18 : forall A B O P T, O <> P -> TangentAt A B O P T -> Perp A B O T.
Lemma concyclic_not_col_or_eq_aux : forall A B C D, Concyclic A B C D -> A = B \/ A = C \/ B = C \/ ~ Col A B C.
Lemma concyclic_not_col_or_eq : forall A B C A', Concyclic A B C A' -> A'=C \/ A'=B \/ A=B \/ A=C \/ A=A' \/ (~ Col A B A' /\ ~ Col A C A').
Lemma Euler_line_special_case : forall A B C G H O, Per A B C -> is_gravity_center G A B C -> is_orthocenter H A B C -> is_circumcenter O A B C -> Col G H O.
Lemma gravity_center_change_triangle: forall A B C G I B' C', is_gravity_center G A B C -> Midpoint I B C -> Midpoint I B' C' -> ~ Col A B' C' -> is_gravity_center G A B' C'.
Lemma Euler_line : forall A B C G H O, ~ Col A B C -> is_gravity_center G A B C -> is_orthocenter H A B C -> is_circumcenter O A B C -> Col G H O.
Lemma sesamath_4ieme_G2_ex35 : forall G A Z F E R, ~ Col G A Z -> Per G A Z -> Midpoint F A Z -> Midpoint E G Z -> Midpoint R G A -> Rectangle F E R A.
Lemma sesamath_4ieme_G2_ex36_aux : forall A B C I J K, ~ Col A B C -> Midpoint I A B -> Midpoint J A C -> Midpoint K B C -> Plg I J K B.
Lemma sesamath_4ieme_G2_ex36 : forall A B C H I J, isosceles B A C -> Perp A H B C -> Col B H C -> Midpoint I A B -> Midpoint J A C -> Rhombus A I H J.
Lemma sesamath_4ieme_G2_ex37 : forall S E L I M A O, ~Col S E L -> Midpoint I L S -> Midpoint M S E -> Midpoint A E L -> Perp_bisect A O L E -> Coplanar S E L O -> Perp A O I M.
Lemma sesamath_4ieme_G2_ex38 : forall E A U M N L, ~ Col E A U -> Midpoint N E A -> Midpoint M E U -> Midpoint L U A -> exists O : Tpoint, Col O E L /\ Midpoint O M N.
Lemma sesamath_4ieme_G2_ex39: forall S C T H A, ~Col A C T -> is_circumcenter S C T A-> Midpoint S C T -> Col C H A -> Perp S H A C -> Midpoint H A C.
Lemma sesamath_4ieme_G2_ex40 : forall A B C M R N S T, ~Col A B C -> Bet C R B -> Midpoint M A B -> Midpoint N A C -> Midpoint S B R -> Midpoint T R C -> Par M S N T /\ Parallelogram M S T N.
Lemma sesamath_4ieme_G2_ex41 : forall (T L H O E S A: Tpoint) (a b : Tpoint ->Tpoint ->Tpoint -> Prop), ~ Col T L H -> Midpoint E T L -> Midpoint O T H -> A <> T -> A <> O -> A <> E -> A <> S -> Bet T A S -> Bet O A E -> Bet H S L -> S <> H -> S <> L -> CongA S A E T S H /\ Midpoint A T S.
Lemma sesamath_4ieme_G2_ex42 : forall A B C I K L J G, ~Col A B C -> is_gravity_center G A B C -> Midpoint I A C -> Midpoint J A B -> Midpoint K B G -> Midpoint L C G -> Parallelogram I J K L.
Lemma sesamath_4ieme_G2_ex44_1 : forall A B C D I J E F, Parallelogram_strict A B C D -> Midpoint I A D -> Midpoint J B C -> Bet A E C -> Bet I E B -> Bet A F C -> Bet D F J -> Parallelogram B J D I.
Lemma sesamath_4ieme_G2_ex45 : forall A B C I K J M G, ~ Col A B C -> Midpoint I B C -> Col I A M -> Midpoint A I M -> Midpoint J A I -> Par J K A C -> Col K I C -> Col G C A /\ Col G M K -> Midpoint K I C /\ Par A K M C /\ is_gravity_center G C M I.
Lemma sesamath_4ieme_G2_ex47 : forall A B C A' B' C', ~Col A C C' -> ~Col A A' C'-> Col B' A' C' -> Midpoint B A C-> Par A A' B B' -> Par A A' C C' -> Midpoint B' A' C'.
Lemma midpoint_thales : forall O A B C : Tpoint, ~ Col A B C -> Midpoint O A B -> Cong O A O C -> Per A C B.
Lemma midpoint_thales_reci : forall a b c o: Tpoint, Per a c b -> Midpoint o a b -> Cong o a o b /\ Cong o b o c.
Lemma bisector_existence : forall A B C, A <> B -> B <> C -> exists E, InAngle E A B C /\ CongA A B E E B C.
Lemma not_col_bfoot_not_equality : forall A B C I H1 H2, ~ Col A B C -> Coplanar A B C I -> Col A B H1 -> Col B C H2 -> CongA A B I I B C-> Perp A B I H1 -> Perp B C I H2 -> H1 <> B /\ H2 <> B.
Lemma bisector_foot_out_out : forall A B C I H1 H2, ~ Col A B C -> Coplanar A B C I -> Col A B H1 -> Col B C H2-> CongA A B I I B C-> Perp A B I H1 -> Perp B C I H2 -> (Out B H1 A -> Out B H2 C).
Lemma not_col_efoot_not_equality : forall A B C I H1 H2, ~ Col A B C -> Coplanar A B C I -> Col A B H1 -> Col B C H2-> Cong I H1 I H2-> Perp A B I H1 -> Perp B C I H2 -> H1 <> B /\ H2 <> B.
Lemma Per_mid_rectangle : forall A B C I J K, A <> B -> B <> C -> Per B A C -> Midpoint I B C -> Midpoint J A C -> Midpoint K A B -> Rectangle A J I K.
Lemma varignon : forall A B C D I J K L, A<>C -> B<>D -> ~ Col I J K -> Midpoint I A B -> Midpoint J B C -> Midpoint K C D -> Midpoint L A D -> Parallelogram I J K L.
Lemma varignon_aux_aux : forall A B C D I J K L, A<>C -> J<>L -> Midpoint I A B -> Midpoint J B C -> Midpoint K C D -> Midpoint L A D -> Parallelogram I J K L.
Lemma varignon_aux : forall A B C D I J K L, (A<>C \/ B<>D) -> J<>L -> Midpoint I A B -> Midpoint J B C -> Midpoint K C D -> Midpoint L A D -> Parallelogram I J K L.
Lemma varignon' : forall A B C D I J K L, (A<>C \/ B<>D) -> Midpoint I A B -> Midpoint J B C -> Midpoint K C D -> Midpoint L A D -> Parallelogram I J K L.
Lemma intersection_two_medians_exist : forall A B C I J, ~Col A B C -> Midpoint I B C -> Midpoint J A C -> exists G, Col G A I /\ Col G B J.
Lemma intersection_two_medians_exist_unique : forall A B C I J, ~Col A B C -> Midpoint I B C -> Midpoint J A C -> exists! G, Col G A I /\ Col G B J.
Lemma par_reflexivity : forall A B, A<>B -> Par A B A B.
Lemma par_strict_irreflexivity : forall A B, ~ Par_strict A B A B.
Lemma not_par_strict_id : forall A B C, ~ Par_strict A B A C.
Lemma par_id : forall A B C, Par A B A C -> Col A B C.
Lemma par_strict_not_col_1 : forall A B C D, Par_strict A B C D -> ~ Col A B C.
Lemma par_strict_not_col_2 : forall A B C D, Par_strict A B C D -> ~ Col B C D.
Lemma par_strict_not_col_3 : forall A B C D, Par_strict A B C D -> ~ Col C D A.
Lemma par_strict_not_col_4 : forall A B C D, Par_strict A B C D -> ~ Col A B D.
Lemma par_strict_not_cols : forall A B C D, Par_strict A B C D -> ~ Col A B C /\ ~ Col B C D /\ ~ Col C D A /\ ~ Col A B D.
Lemma par_id_1 : forall A B C, Par A B A C -> Col B A C.
Lemma par_id_2 : forall A B C, Par A B A C -> Col B C A.
Lemma par_id_3 : forall A B C, Par A B A C -> Col A C B.
Lemma par_id_4 : forall A B C, Par A B A C -> Col C B A.
Lemma par_id_5 : forall A B C, Par A B A C -> Col C A B.
Lemma par_strict_symmetry :forall A B C D, Par_strict A B C D -> Par_strict C D A B.
Lemma par_symmetry :forall A B C D, Par A B C D -> Par C D A B.
Lemma par_left_comm : forall A B C D, Par A B C D -> Par B A C D.
Lemma par_right_comm : forall A B C D, Par A B C D -> Par A B D C.
Lemma par_comm : forall A B C D, Par A B C D -> Par B A D C.
Lemma par_strict_left_comm : forall A B C D, Par_strict A B C D -> Par_strict B A C D.
Lemma par_strict_right_comm : forall A B C D, Par_strict A B C D -> Par_strict A B D C.
Lemma par_strict_comm : forall A B C D, Par_strict A B C D -> Par_strict B A D C.
Lemma par_strict_neq1 : forall A B C D, Par_strict A B C D -> A <> B.
Lemma par_strict_neq2 : forall A B C D, Par_strict A B C D -> C <> D.
Lemma par_neq1 : forall A B C D, Par A B C D -> A <> B.
Lemma par_neq2 : forall A B C D, Par A B C D -> C <> D.
Lemma l13_10_aux1 : forall O A B P Q la lb lp lq, Col O A B -> Col O P Q -> Perp O P P A -> Perp O Q Q B -> Q_Cong la -> Q_Cong lb -> Q_Cong lp -> Q_Cong lq -> la O A -> lb O B -> lp O P -> lq O Q -> exists a, Q_CongA_Acute a /\ Lcos lp la a /\ Lcos lq lb a.
Lemma l13_10_aux2 : forall O A B la lla lb llb, Col O A B -> Q_Cong la -> Q_Cong lla -> Q_Cong lb -> Q_Cong llb -> la O A -> lla O A -> lb O B -> llb O B -> A <> O -> B <> O -> exists a, Q_CongA_Acute a /\ Lcos lla la a /\ Lcos llb lb a.
Lemma l13_6_bis : forall lp l1 l2 a, Lcos lp l1 a -> Lcos lp l2 a -> EqL l1 l2.
Lemma lcos3_lcos2 : forall l1 l2 a b c d n, Eq_Lcos3 l1 a b n l2 c d n -> Eq_Lcos2 l1 a b l2 c d.
Lemma lcos2_lcos : forall l1 l2 a b c, Eq_Lcos2 l1 a c l2 b c -> Eq_Lcos l1 a l2 b.
Lemma lcos_per_anga : forall O A P la lp a, Lcos lp la a -> la O A -> lp O P -> Per A P O -> a A O P.
Lemma lcos_lcos_cop__col : forall la lb lp a b O A B P, Lcos lp la a -> Lcos lp lb b -> la O A -> lb O B -> lp O P -> a A O P -> b B O P -> Coplanar O A B P -> Col A B P.
Lemma per13_preserves_bet_inv : forall A B C A' C', Bet A' B C' -> B <> A' -> B <> C' -> Col A B C -> Per B A' A -> Per B C' C -> Bet A B C.
Lemma l13_10_aux3 : forall A B C A' B' C' O, ~ Col O A A' -> B <> O -> C <> O -> Col O A B -> Col O B C -> B' <> O -> C' <> O -> Col O A' B' -> Col O B' C' -> Perp2 B C' C B' O -> Perp2 C A' A C' O -> Bet A O B -> Bet A' O B'.
Lemma l13_10_aux4 : forall A B C A' B' C' O, ~ Col O A A' -> B <> O -> C <> O -> Col O A B -> Col O B C -> B' <> O -> C' <> O -> Col O A' B' -> Col O B' C' -> Perp2 B C' C B' O -> Perp2 C A' A C' O -> Bet O A B -> Out O A' B'.
Lemma l13_10_aux5 : forall A B C A' B' C' O, ~ Col O A A' -> B <> O -> C <> O -> Col O A B -> Col O B C -> B' <> O -> C' <> O -> Col O A' B' -> Col O B' C'-> Perp2 B C' C B' O -> Perp2 C A' A C' O -> Out O A B -> Out O A' B'.
Lemma cop_per2__perp : forall A B X Y, A <> B -> X <> Y -> (B <> X \/ B <> Y) -> Coplanar A B X Y -> Per A B X -> Per A B Y -> Perp A B X Y.
Lemma l13_10 : forall A B C A' B' C' O, ~ Col O A A' -> B <> O -> C <> O -> Col O A B -> Col O B C -> B' <> O -> C' <> O -> Col O A' B' -> Col O B' C' -> Perp2 B C' C B' O -> Perp2 C A' A C' O -> Perp2 A B' B A' O.
Lemma par__perp2 : forall A B C D P, Par A B C D -> Perp2 A B C D P.
Lemma l13_11 : forall A B C A' B' C' O, ~ Col O A A' -> B <> O -> C <> O -> Col O A B -> Col O B C -> B' <> O -> C' <> O -> Col O A' B' -> Col O B' C' -> Par B C' C B' -> Par C A' A C' -> Par A B' B A'.
Lemma l13_14 : forall O A B C O' A' B' C', Par_strict O A O' A' -> Col O A B -> Col O B C -> Col O A C -> Col O' A' B' -> Col O' B' C' -> Col O' A' C' -> Par A C' A' C -> Par B C' B' C -> Par A B' A' B.
Lemma Ps_Col : forall O E A, Ps O E A -> Col O E A.
Lemma PythRel_exists : forall O E E', ~ Col O E E' -> forall A B, Col O E A -> Col O E B -> exists C, PythRel O E E' A B C.
Lemma opp_same_square : forall O E E' A B A2, Opp O E E' A B -> Prod O E E' A A A2 -> Prod O E E' B B A2.
Lemma PythOK : forall O E E' A B C A2 B2 C2, PythRel O E E' A B C -> Prod O E E' A A A2 -> Prod O E E' B B B2 -> Prod O E E' C C C2 -> Sum O E E' A2 B2 C2.
Lemma PythRel_uniqueness : forall O E E' A B C1 C2, PythRel O E E' A B C1 -> PythRel O E E' A B C2 -> ((Ps O E C1 /\ Ps O E C2) \/ C1 = O)-> C1 = C2.
Lemma Pj_exists : forall A B C, exists D, Pj A B C D.
Lemma sum_to_sump : forall O E E' A B C, Sum O E E' A B C -> Sump O E E' A B C.
Lemma sump_to_sum : forall O E E' A B C, Sump O E E' A B C -> Sum O E E' A B C.
Lemma project_col_project : forall A B C P P' X Y, A <> C -> Col A B C -> Proj P P' A B X Y -> Proj P P' A C X Y.
Lemma project_trivial : forall P A B X Y, A <> B -> X <> Y -> Col A B P -> ~ Par A B X Y -> Proj P P A B X Y.
Lemma pj_col_project : forall P P' A B X Y, A <> B -> X <> Y -> Col P' A B -> ~ Par A B X Y -> Pj X Y P P' -> Proj P P' A B X Y.
Lemma sum_exists : forall A B, Col O E A -> Col O E B -> exists C, Sum O E E' A B C.
Lemma sum_uniqueness : forall A B C1 C2, Sum O E E' A B C1 -> Sum O E E' A B C2 -> C1 = C2.
Lemma opp_exists : forall A, Col O E A -> exists MA, Opp O E E' A MA.
Lemma opp0 : Opp O E E' O O.
Lemma pj_trivial : forall A B C, Pj A B C C.
Lemma sum_O_O : Sum O E E' O O O.
Lemma sum_A_O : forall A, Col O E A -> Sum O E E' A O A.
Lemma sum_O_B : forall B, Col O E B -> Sum O E E' O B B.
Lemma opp0_uniqueness : forall M, Opp O E E' O M -> M = O.
Lemma proj_pars : forall A A' C' , A <> O -> Col O E A -> Par O E A' C' -> Proj A A' O E' E E' -> Par_strict O E A' C'.
Lemma proj_col : forall A A' C' , A = O -> Col O E A -> Par O E A' C' -> Proj A A' O E' E E' -> A' = O.
Lemma grid_not_par : ~Par O E E E' /\ ~Par O E O E' /\ ~Par O E' E E' /\ O <> E /\ O <> E' /\ E <> E'.
Lemma proj_id : forall A A', Proj A A' O E' E E' -> Col O E A -> Col O E A' -> A = O.
Lemma sum_O_B_eq : forall B C, Sum O E E' O B C -> B = C.
Lemma sum_A_O_eq : forall A C, Sum O E E' A O C -> A = C.
Lemma sum_par_strict : forall A B C A' C', Ar2 O E E' A B C -> A <> O -> Pj E E' A A' -> Col O E' A' -> Pj O E A' C' -> Pj O E' B C' -> Pj E' E C' C -> A' <> O /\ (Par_strict O E A' C' \/ B = O).
Lemma sum_A_B_A : forall A B, Sum O E E' A B A -> B = O.
Lemma sum_A_B_B : forall A B, Sum O E E' A B B -> A = O.
Lemma sum_uniquenessB : forall A X Y C, Sum O E E' A X C -> Sum O E E' A Y C -> X = Y.
Lemma sum_uniquenessA : forall B X Y C, Sum O E E' X B C -> Sum O E E' Y B C -> X = Y.
Lemma sum_B_null : forall A B, Sum O E E' A B A -> B = O.
Lemma sum_A_null : forall A B, Sum O E E' A B B -> A = O.
Lemma sum_plg : forall A B C, Sum O E E' A B C -> (A <> O ) \/ ( B <> O) -> exists A', exists C', Plg O B C' A' /\ Plg C' A' A C.
Lemma sum_cong : forall A B C, Sum O E E' A B C -> (A <> O \/ B <> O) -> Parallelogram_flat O A C B.
Lemma sum_cong2 : forall A B C, Sum O E E' A B C -> (A <> O \/ B <> O) -> (Cong O A B C /\ Cong O B A C).
Lemma sum_comm : forall A B C, Sum O E E' A B C -> Sum O E E' B A C.
Lemma cong_sum : forall A B C, O <> C \/ B <> A -> Ar2 O E E' A B C -> Cong O A B C -> Cong O B A C -> Sum O E E' A B C.
Lemma sum_iff_cong : forall A B C, Ar2 O E E' A B C -> (O <> C \/ B <> A) -> ((Cong O A B C /\ Cong O B A C) <-> Sum O E E' A B C).
Lemma opp_comm : forall X Y, Opp O E E' X Y -> Opp O E E' Y X.
Lemma opp_uniqueness : forall A MA1 MA2, Opp O E E' A MA1 -> Opp O E E' A MA2 -> MA1 = MA2.
Lemma pj_uniqueness : forall O E E' A A' A'', ~Col O E E' -> Col O E A -> Col O E' A' -> Col O E' A'' -> Pj E E' A A' -> Pj E E' A A'' -> A' = A''.
Lemma pj_right_comm : forall A B C D, Pj A B C D -> Pj A B D C.
Lemma pj_left_comm : forall A B C D, Pj A B C D -> Pj B A C D.
Lemma pj_comm : forall A B C D, Pj A B C D -> Pj B A D C.
Lemma proj_preserves_sum : forall O E E' A B C A' B' C', Sum O E E' A B C -> Ar1 O E' A' B' C' -> Pj E E' A A' -> Pj E E' B B' -> Pj E E' C C' -> Sum O E' E A' B' C'.
Lemma sum_assoc_1 : forall O E E' A B C AB BC ABC, Sum O E E' A B AB -> Sum O E E' B C BC -> Sum O E E' A BC ABC -> Sum O E E' AB C ABC.
Lemma sum_assoc_2 : forall O E E' A B C AB BC ABC, Sum O E E' A B AB -> Sum O E E' B C BC -> Sum O E E' AB C ABC -> Sum O E E' A BC ABC.
Lemma sum_assoc : forall O E E' A B C AB BC ABC, Sum O E E' A B AB -> Sum O E E' B C BC -> (Sum O E E' A BC ABC <-> Sum O E E' AB C ABC).
Lemma sum_y_axis_change : forall O E E' E'' A B C, Sum O E E' A B C -> ~ Col O E E'' -> Sum O E E'' A B C.
Lemma sum_x_axis_unit_change : forall O E E' U A B C, Sum O E E' A B C -> Col O E U -> U <> O -> Sum O U E' A B C.
Lemma change_grid_sum_0 : forall O E E' A B C O' A' B' C', Par_strict O E O' E' -> Ar1 O E A B C -> Ar1 O' E' A' B' C' -> Pj O O' E E' -> Pj O O' A A' -> Pj O O' B B' -> Pj O O' C C' -> Sum O E E' A B C -> A = O -> Sum O' E' E A' B' C'.
Lemma change_grid_sum : forall O E E' A B C O' A' B' C', Par_strict O E O' E' -> Ar1 O E A B C -> Ar1 O' E' A' B' C' -> Pj O O' E E' -> Pj O O' A A' -> Pj O O' B B' -> Pj O O' C C' -> Sum O E E' A B C -> Sum O' E' E A' B' C'.
Lemma double_null_null : forall O E E' A, Sum O E E' A A O -> A = O.
Lemma not_null_double_not_null : forall O E E' A C, Sum O E E' A A C -> A <> O -> C <> O.
Lemma double_not_null_not_nul : forall O E E' A C, Sum O E E' A A C -> C <> O -> A <> O.
Lemma diff_ar2 : forall O E E' A B AMB, Diff O E E' A B AMB -> Ar2 O E E' A B AMB.
Lemma diff_null : forall O E E' A, ~Col O E E' -> Col O E A -> Diff O E E' A A O.
Lemma diff_exists : forall O E E' A B, ~Col O E E' -> Col O E A -> Col O E B -> exists D, Diff O E E' A B D.
Lemma diff_uniqueness : forall O E E' A B D1 D2, Diff O E E' A B D1 -> Diff O E E' A B D2 -> D1 = D2.
Lemma sum_ar2 : forall O E E' A B C, Sum O E E' A B C -> Ar2 O E E' A B C.
Lemma diff_A_O : forall O E E' A, ~Col O E E' -> Col O E A -> Diff O E E' A O A.
Lemma diff_O_A : forall O E E' A mA, ~ Col O E E' -> Opp O E E' A mA -> Diff O E E' O A mA.
Lemma diff_O_A_opp : forall O E E' A mA, Diff O E E' O A mA -> Opp O E E' A mA.
Lemma diff_uniquenessA : forall O E E' A A' B C, Diff O E E' A B C -> Diff O E E' A' B C -> A = A'.
Lemma diff_uniquenessB : forall O E E' A B B' C, Diff O E E' A B C -> Diff O E E' A B' C -> B = B'.
Lemma diff_null_eq : forall O E E' A B, Diff O E E' A B O -> A = B.
Lemma midpoint_opp: forall O E E' A B, Ar2 O E E' O A B -> Midpoint O A B -> Opp O E E' A B.
Lemma sum_diff : forall O E E' A B S, Sum O E E' A B S -> Diff O E E' S A B.
Lemma diff_sum : forall O E E' A B S, Diff O E E' S A B -> Sum O E E' A B S.
Lemma diff_opp : forall O E E' A B AmB BmA, Diff O E E' A B AmB -> Diff O E E' B A BmA -> Opp O E E' AmB BmA.
Lemma sum_stable : forall O E E' A B C S1 S2 , A = B -> Sum O E E' A C S1 -> Sum O E E' B C S2 -> S1 = S2.
Lemma diff_stable : forall O E E' A B C D1 D2 , A = B -> Diff O E E' A C D1 -> Diff O E E' B C D2 -> D1 = D2.
Lemma plg_to_sum : forall O E E' A B C, Ar2 O E E' A B C ->Parallelogram_flat O A C B -> Sum O E E' A B C.
Lemma opp_midpoint : forall O E E' A MA, Opp O E E' A MA -> Midpoint O A MA.
Lemma diff_to_plg : forall O E E' A B dBA, A <> O \/ B <> O -> Diff O E E' B A dBA -> Parallelogram_flat O A B dBA.
Lemma sum3_col : forall O E E' A B C S, sum3 O E E' A B C S -> ~Col O E E' /\ Col O E A /\ Col O E B /\ Col O E C /\ Col O E S.
Lemma sum3_permut : forall O E E' A B C S, sum3 O E E' A B C S -> sum3 O E E' C A B S.
Lemma sum3_comm_1_2 : forall O E E' A B C S, sum3 O E E' A B C S -> sum3 O E E' B A C S.
Lemma sum3_comm_2_3 : forall O E E' A B C S, sum3 O E E' A B C S -> sum3 O E E' A C B S.
Lemma sum3_exists : forall O E E' A B C, Ar2 O E E' A B C -> exists S, sum3 O E E' A B C S.
Lemma sum3_uniqueness : forall O E E' A B C S1 S2, sum3 O E E' A B C S1 -> sum3 O E E' A B C S2 -> S1 = S2.
Lemma sum4_col : forall O E E' A B C D S, Sum4 O E E' A B C D S -> ~Col O E E' /\ Col O E A /\ Col O E B /\ Col O E C /\ Col O E D /\ Col O E S.
Lemma sum22_col : forall O E E' A B C D S, sum22 O E E' A B C D S -> ~Col O E E' /\ Col O E A /\ Col O E B /\ Col O E C /\ Col O E D /\ Col O E S.
Lemma sum_to_sum3 : forall O E E' A B AB X S, Sum O E E' A B AB -> Sum O E E' AB X S -> sum3 O E E' A B X S.
Lemma sum3_to_sum4 : forall O E E' A B C X ABC S , sum3 O E E' A B C ABC -> Sum O E E' ABC X S -> Sum4 O E E' A B C X S.
Lemma sum_A_exists : forall O E E' A AB, Ar2 O E E' A AB O -> exists B, Sum O E E' A B AB.
Lemma sum_B_exists : forall O E E' B AB, Ar2 O E E' B AB O -> exists A, Sum O E E' A B AB.
Lemma sum4_equiv : forall O E E' A B C D S, Sum4 O E E' A B C D S <-> sum22 O E E' A B C D S.
Lemma sum4_permut: forall O E E' A B C D S, Sum4 O E E' A B C D S -> Sum4 O E E' D A B C S.
Lemma sum22_permut : forall O E E' A B C D S, sum22 O E E' A B C D S -> sum22 O E E' D A B C S.
Lemma sum4_comm : forall O E E' A B C D S, Sum4 O E E' A B C D S -> Sum4 O E E' B A C D S.
Lemma sum22_comm : forall O E E' A B C D S, sum22 O E E' A B C D S -> sum22 O E E' B A C D S.
Lemma sum_abcd : forall O E E' A B C D AB CD BC AD S, Sum O E E' A B AB -> Sum O E E' C D CD -> Sum O E E' B C BC -> Sum O E E' A D AD -> Sum O E E' AB CD S -> Sum O E E' BC AD S.
Lemma sum_diff_diff_a : forall O E E' A B C dBA dCB dCA, Diff O E E' B A dBA -> Diff O E E' C B dCB -> Diff O E E' C A dCA -> Sum O E E' dCB dBA dCA.
Lemma sum_diff_diff_b : forall O E E' A B C dBA dCB dCA, Diff O E E' B A dBA -> Diff O E E' C B dCB -> Sum O E E' dCB dBA dCA -> Diff O E E' C A dCA.
Lemma sum_diff2_diff_sum2_a : forall O E E' A B C X Y Z dXA dYB dZC, Sum O E E' A B C -> Sum O E E' X Y Z -> Diff O E E' X A dXA -> Diff O E E' Y B dYB -> Sum O E E' dXA dYB dZC -> Diff O E E' Z C dZC.
Lemma sum_diff2_diff_sum2_b : forall O E E' A B C X Y Z dXA dYB dZC, Sum O E E' A B C -> Sum O E E' X Y Z -> Diff O E E' X A dXA -> Diff O E E' Y B dYB -> Diff O E E' Z C dZC -> Sum O E E' dXA dYB dZC .
Lemma sum_opp : forall O E E' X MX, Sum O E E' X MX O -> Opp O E E' X MX.
Lemma sum_diff_diff : forall O E E' AX BX CX AXMBX AXMCX BXMCX, Diff O E E' AX BX AXMBX -> Diff O E E' AX CX AXMCX -> Diff O E E' BX CX BXMCX -> Sum O E E' AXMBX BXMCX AXMCX.
Lemma cop__cong_on_bissect : forall A B M P X, Coplanar A B X P -> Midpoint M A B -> Perp_at M A B P M -> Cong X A X B -> Col M P X.
Lemma cong_cop_mid_perp__col : forall A B M P X, Coplanar A B X P -> Cong A X B X -> Midpoint M A B -> Perp A B P M -> Col M P X.
Lemma cop__image_in_col : forall A B P P' Q Q' M, Coplanar A B P Q -> ReflectL_at M P P' A B -> ReflectL_at M Q Q' A B -> Col M P Q.
Lemma l10_10_spec : forall A B P Q P' Q', ReflectL P' P A B -> ReflectL Q' Q A B -> Cong P Q P' Q'.
Lemma l10_10 : forall A B P Q P' Q', Reflect P' P A B -> Reflect Q' Q A B -> Cong P Q P' Q'.
Lemma image_preserves_bet : forall A B C A' B' C' X Y, ReflectL A A' X Y -> ReflectL B B' X Y -> ReflectL C C' X Y -> Bet A B C -> Bet A' B' C'.
Lemma image_gen_preserves_bet : forall A B C A' B' C' X Y, Reflect A A' X Y -> Reflect B B' X Y -> Reflect C C' X Y -> Bet A B C -> Bet A' B' C'.
Lemma image_preserves_col : forall A B C A' B' C' X Y, ReflectL A A' X Y -> ReflectL B B' X Y -> ReflectL C C' X Y -> Col A B C -> Col A' B' C'.
Lemma image_gen_preserves_col : forall A B C A' B' C' X Y, Reflect A A' X Y -> Reflect B B' X Y -> Reflect C C' X Y -> Col A B C -> Col A' B' C'.
Lemma image_gen_preserves_ncol : forall A B C A' B' C' X Y, Reflect A A' X Y -> Reflect B B' X Y -> Reflect C C' X Y -> ~ Col A B C -> ~ Col A' B' C'.
Lemma image_gen_preserves_inter : forall A B C D I A' B' C' D' I' X Y, Reflect A A' X Y -> Reflect B B' X Y -> Reflect C C' X Y -> Reflect D D' X Y -> ~ Col A B C -> C <> D -> Col A B I -> Col C D I -> Col A' B' I' -> Col C' D' I' -> Reflect I I' X Y.
Lemma intersection_with_image_gen : forall A B C A' B' X Y, Reflect A A' X Y -> Reflect B B' X Y -> ~ Col A B A' -> Col A B C -> Col A' B' C -> Col C X Y.
Lemma image_preserves_midpoint : forall A B C A' B' C' X Y, ReflectL A A' X Y -> ReflectL B B' X Y -> ReflectL C C' X Y -> Midpoint A B C -> Midpoint A' B' C'.
Lemma image_spec_preserves_per : forall A B C A' B' C' X Y, ReflectL A A' X Y -> ReflectL B B' X Y -> ReflectL C C' X Y -> Per A B C -> Per A' B' C'.
Lemma image_preserves_per : forall A B C A' B' C' X Y, Reflect A A' X Y -> Reflect B B' X Y -> Reflect C C' X Y -> Per A B C -> Per A' B' C'.
Lemma l10_12 : forall A B C A' B' C', Per A B C -> Per A' B' C' -> Cong A B A' B' -> Cong B C B' C' -> Cong A C A' C'.
Lemma cong4_cop2__eq : forall A B C P Q, ~ Col A B C -> Cong A P B P -> Cong A P C P -> Coplanar A B C P -> Cong A Q B Q -> Cong A Q C Q -> Coplanar A B C Q -> P = Q.
Lemma l10_16 : forall A B C A' B' P, ~ Col A B C -> ~ Col A' B' P -> Cong A B A' B' -> exists C', Cong_3 A B C A' B' C' /\ OS A' B' P C' .
Lemma cong_cop_image__col : forall A B P P' X, P <> P' -> Reflect P P' A B -> Cong P X P' X -> Coplanar A B P X -> Col A B X.
Lemma cong_cop_per2_1 : forall A B X Y, A <> B -> Per A B X -> Per A B Y -> Cong B X B Y -> Coplanar A B X Y -> X = Y \/ Midpoint B X Y.
Lemma cong_cop_per2 : forall A B X Y, A <> B -> Per A B X -> Per A B Y -> Cong B X B Y -> Coplanar A B X Y -> X = Y \/ ReflectL X Y A B.
Lemma cong_cop_per2_gen : forall A B X Y, A <> B -> Per A B X -> Per A B Y -> Cong B X B Y -> Coplanar A B X Y -> X = Y \/ Reflect X Y A B.
Lemma ex_perp_cop : forall A B C P, A <> B -> exists Q, Perp A B Q C /\ Coplanar A B P Q.
Lemma hilbert_s_version_of_pasch_aux : forall A B C I P, Coplanar A B C P -> ~ Col A I P -> ~ Col B C P -> Bet B I C -> B <> I -> I <> C -> B <> C -> exists X, Col I P X /\ ((Bet A X B /\ A <> X /\ X <> B /\ A <> B) \/ (Bet A X C /\ A <> X /\ X <> C /\ A <> C)).
Lemma hilbert_s_version_of_pasch : forall A B C P Q, Coplanar A B C P -> ~ Col C Q P -> ~ Col A B P -> BetS A Q B -> exists X, Col P Q X /\ (BetS A X C \/ BetS B X C).
Lemma two_sides_cases : forall O P A B, ~ Col O A B -> OS O P A B -> TS O A P B \/ TS O B P A.
Lemma not_par_two_sides : forall A B C D I, C <> D -> Col A B I -> Col C D I -> ~ Col A B C -> exists X, exists Y, Col C D X /\ Col C D Y /\ TS A B X Y.
Lemma cop_not_par_other_side : forall A B C D I P, C <> D -> Col A B I -> Col C D I -> ~ Col A B C -> ~ Col A B P -> Coplanar A B C P -> exists Q, Col C D Q /\ TS A B P Q.
Lemma cop_not_par_same_side : forall A B C D I P, C <> D -> Col A B I -> Col C D I -> ~ Col A B C -> ~ Col A B P -> Coplanar A B C P -> exists Q, Col C D Q /\ OS A B P Q.
Lemma all_coplanar : forall A B C D, Coplanar A B C D.
Lemma per2__col : forall A B C X, Per A X C -> X <> C -> Per B X C -> Col A B X.
Lemma perp2__col : forall X Y Z A B, Perp X Y A B -> Perp X Z A B -> Col X Y Z.
Lemma cong_on_bissect : forall A B M P X, Midpoint M A B -> Perp_at M A B P M -> Cong X A X B -> Col M P X.
Lemma cong_mid_perp__col : forall A B M P X, Cong A X B X -> Midpoint M A B -> Perp A B P M -> Col M P X.
Lemma image_in_col : forall A B P P' Q Q' M, ReflectL_at M P P' A B -> ReflectL_at M Q Q' A B -> Col M P Q.
Lemma cong_image__col : forall A B P P' X, P <> P' -> Reflect P P' A B -> Cong P X P' X -> Col A B X.
Lemma cong_per2_1 : forall A B X Y, A <> B -> Per A B X -> Per A B Y -> Cong B X B Y -> X = Y \/ Midpoint B X Y.
Lemma cong_per2 : forall A B X Y, A <> B -> Per A B X -> Per A B Y -> Cong B X B Y -> X = Y \/ ReflectL X Y A B.
Lemma cong_per2_gen : forall A B X Y, A <> B -> Per A B X -> Per A B Y -> Cong B X B Y -> X = Y \/ Reflect X Y A B.
Lemma not_two_sides_one_side : forall A B X Y, ~ Col X A B -> ~ Col Y A B -> ~ TS A B X Y -> OS A B X Y.
Lemma col_perp2__col : forall A B X Y P, Col A B P -> Perp A B X P -> Perp P A Y P -> Col Y X P.
Lemma hilbert_s_version_of_pasch_2D : forall A B C P Q, ~ Col C Q P -> ~ Col A B P -> BetS A Q B -> exists X, Col P Q X /\ (BetS A X C \/ BetS B X C).
Lemma not_one_side_two_sides : forall A B X Y, ~ Col X A B -> ~ Col Y A B -> ~ OS A B X Y -> TS A B X Y.
Lemma one_or_two_sides : forall A B X Y, ~ Col X A B -> ~ Col Y A B -> TS A B X Y \/ OS A B X Y.
Lemma not_par_other_side : forall A B C D I P, C <> D -> Col A B I -> Col C D I -> ~ Col A B C -> ~ Col A B P -> exists Q, Col C D Q /\ TS A B P Q.
Lemma not_par_same_side : forall A B C D I P, C <> D -> Col A B I -> Col C D I -> ~ Col A B C -> ~ Col A B P -> exists Q, Col C D Q /\ OS A B P Q.
Lemma l5_1 : forall A B C D, A<>B -> Bet A B C -> Bet A B D -> Bet A C D \/ Bet A D C.
Lemma l5_2 : forall A B C D, A<>B -> Bet A B C -> Bet A B D -> Bet B C D \/ Bet B D C.
Lemma segment_construction_2 : forall A Q B C, A<>Q -> exists X, (Bet Q A X \/ Bet Q X A) /\ Cong Q X B C.
Lemma l5_3 : forall A B C D, Bet A B D -> Bet A C D -> Bet A B C \/ Bet A C B.
Lemma bet3__bet : forall A B C D E, Bet A B E -> Bet A D E -> Bet B C D -> Bet A C E.
Lemma le_bet : forall A B C D, Le C D A B -> exists X, Bet A X B /\ Cong A X C D.
Lemma l5_5_1 : forall A B C D, Le A B C D -> exists x, Bet A B x /\ Cong A x C D.
Lemma l5_5_2 : forall A B C D, (exists x, Bet A B x /\ Cong A x C D) -> Le A B C D.
Lemma l5_6 : forall A B C D A' B' C' D', Le A B C D -> Cong A B A' B' -> Cong C D C' D' -> Le A' B' C' D'.
Lemma le_reflexivity : forall A B, Le A B A B.
Lemma le_transitivity : forall A B C D E F, Le A B C D -> Le C D E F -> Le A B E F.
Lemma between_cong : forall A B C, Bet A C B -> Cong A C A B -> C=B.
Lemma cong3_symmetry : forall A B C A' B' C' : Tpoint , Cong_3 A B C A' B' C' -> Cong_3 A' B' C' A B C.
Lemma between_cong_2 : forall A B D E, Bet A D B -> Bet A E B -> Cong A D A E -> D = E.
Lemma between_cong_3 : forall A B D E, A <> B -> Bet A B D -> Bet A B E -> Cong B D B E -> D = E.
Lemma le_anti_symmetry : forall A B C D, Le A B C D -> Le C D A B -> Cong A B C D.
Lemma cong_dec : forall A B C D, Cong A B C D \/ ~ Cong A B C D.
Lemma bet_dec : forall A B C, Bet A B C \/ ~ Bet A B C.
Lemma col_dec : forall A B C, Col A B C \/ ~ Col A B C.
Lemma le_trivial : forall A C D, Le A A C D .
Lemma le_cases : forall A B C D, Le A B C D \/ Le C D A B.
Lemma le_zero : forall A B C, Le A B C C -> A=B.
Lemma le_diff : forall A B C D, A <> B -> Le A B C D -> C <> D.
Lemma lt_diff : forall A B C D, Lt A B C D -> C <> D.
Lemma bet_cong_eq : forall A B C D, Bet A B C -> Bet A C D -> Cong B C A D -> C = D /\ A = B.
Lemma cong__le : forall A B C D, Cong A B C D -> Le A B C D.
Lemma cong__le3412 : forall A B C D, Cong A B C D -> Le C D A B.
Lemma le1221 : forall A B, Le A B B A.
Lemma le_left_comm : forall A B C D, Le A B C D -> Le B A C D.
Lemma le_right_comm : forall A B C D, Le A B C D -> Le A B D C.
Lemma le_comm : forall A B C D, Le A B C D -> Le B A D C.
Lemma ge_left_comm : forall A B C D, Ge A B C D -> Ge B A C D.
Lemma ge_right_comm : forall A B C D, Ge A B C D -> Ge A B D C.
Lemma ge_comm : forall A B C D, Ge A B C D -> Ge B A D C.
Lemma lt_right_comm : forall A B C D, Lt A B C D -> Lt A B D C.
Lemma lt_left_comm : forall A B C D, Lt A B C D -> Lt B A C D.
Lemma lt_comm : forall A B C D, Lt A B C D -> Lt B A D C.
Lemma gt_left_comm : forall A B C D, Gt A B C D -> Gt B A C D.
Lemma gt_right_comm : forall A B C D, Gt A B C D -> Gt A B D C.
Lemma gt_comm : forall A B C D, Gt A B C D -> Gt B A D C.
Lemma cong2_lt__lt : forall A B C D A' B' C' D', Lt A B C D -> Cong A B A' B' -> Cong C D C' D' -> Lt A' B' C' D'.
Lemma fourth_point : forall A B C P, A <> B -> B <> C -> Col A B P -> Bet A B C -> Bet P A B \/ Bet A P B \/ Bet B P C \/ Bet B C P.
Lemma third_point : forall A B P, Col A B P -> Bet P A B \/ Bet A P B \/ Bet A B P.
Lemma l5_12_a : forall A B C, Bet A B C -> Le A B A C /\ Le B C A C.
Lemma bet__le1213 : forall A B C, Bet A B C -> Le A B A C.
Lemma bet__le2313 : forall A B C, Bet A B C -> Le B C A C.
Lemma bet__lt1213 : forall A B C, B <> C -> Bet A B C -> Lt A B A C.
Lemma bet__lt2313 : forall A B C, A <> B -> Bet A B C -> Lt B C A C.
Lemma l5_12_b : forall A B C, Col A B C -> Le A B A C -> Le B C A C -> Bet A B C.
Lemma bet_le_eq : forall A B C, Bet A B C -> Le A C B C -> A = B.
Lemma or_lt_cong_gt : forall A B C D, Lt A B C D \/ Gt A B C D \/ Cong A B C D.
Lemma lt__le : forall A B C D, Lt A B C D -> Le A B C D.
Lemma le1234_lt__lt : forall A B C D E F, Le A B C D -> Lt C D E F -> Lt A B E F.
Lemma le3456_lt__lt : forall A B C D E F, Lt A B C D -> Le C D E F -> Lt A B E F.
Lemma lt_transitivity : forall A B C D E F, Lt A B C D -> Lt C D E F -> Lt A B E F.
Lemma not_and_lt : forall A B C D, ~ (Lt A B C D /\ Lt C D A B).
Lemma nlt : forall A B, ~ Lt A B A B.
Lemma le__nlt : forall A B C D, Le A B C D -> ~ Lt C D A B.
Lemma cong__nlt : forall A B C D, Cong A B C D -> ~ Lt A B C D.
Lemma nlt__le : forall A B C D, ~ Lt A B C D -> Le C D A B.
Lemma lt__nle : forall A B C D, Lt A B C D -> ~ Le C D A B.
Lemma nle__lt : forall A B C D, ~ Le A B C D -> Lt C D A B.
Lemma lt1123 : forall A B C, B<>C -> Lt A A B C.
Lemma bet2_le2__le : forall O o A B a b, Bet a o b -> Bet A O B -> Le o a O A -> Le o b O B -> Le a b A B.
Lemma cop_npar__inter_exists : forall A1 B1 A2 B2, Coplanar A1 B1 A2 B2 -> ~ Par A1 B1 A2 B2 -> exists X, Col X A1 B1 /\ Col X A2 B2.
Lemma cop_npar__inter : forall A1 B1 A2 B2, A1 <> B1 -> A2 <> B2 -> Coplanar A1 B1 A2 B2 -> ~ Par A1 B1 A2 B2 -> exists X, Inter A1 B1 A2 B2 X.
Lemma parallel_uniqueness : forall A1 A2 B1 B2 C1 C2 P : Tpoint, Par A1 A2 B1 B2 -> Col P B1 B2 -> Par A1 A2 C1 C2 -> Col P C1 C2 -> Col C1 B1 B2 /\ Col C2 B1 B2.
Lemma par_trans : forall A1 A2 B1 B2 C1 C2, Par A1 A2 B1 B2 -> Par B1 B2 C1 C2 -> Par A1 A2 C1 C2.
Lemma inter__npar : forall A1 A2 B1 B2 X, Inter A1 A2 B1 B2 X -> ~ Par A1 A2 B1 B2.
Lemma l12_16 : forall A1 A2 B1 B2 C1 C2 X, Par A1 A2 B1 B2 -> Coplanar B1 B2 C1 C2 -> Inter A1 A2 C1 C2 X -> exists Y, Inter B1 B2 C1 C2 Y.
Lemma par_dec : forall A B C D, Par A B C D \/ ~ Par A B C D.
Lemma par_not_par : forall A B C D P Q, Par A B C D -> ~Par A B P Q -> ~Par C D P Q.
Lemma cop_par__inter : forall A B C D P Q, Par A B C D -> ~Par A B P Q -> Coplanar C D P Q -> exists Y, Col P Q Y /\ Col C D Y.
Lemma l12_19 : forall A B C D , ~Col A B C -> Par A B C D -> Par B C D A -> Cong A B C D /\ Cong B C D A /\ TS B D A C /\ TS A C B D.
Lemma l12_20_bis : forall A B C D, Par A B C D -> Cong A B C D -> TS B D A C -> Par B C D A /\ Cong B C D A /\ TS A C B D.
Lemma l12_20 : forall A B C D, Par A B C D -> Cong A B C D -> TS A C B D -> Par B C D A /\ Cong B C D A /\ TS A C B D.
Lemma l12_21_a : forall A B C D, TS A C B D -> (Par A B C D -> CongA B A C D C A).
Lemma l12_21 : forall A B C D, TS A C B D -> (CongA B A C D C A <-> Par A B C D).
Lemma l12_22_a : forall A B C D P, Out P A C -> OS P A B D -> Par A B C D -> CongA B A P D C P.
Lemma l12_22 : forall A B C D P, Out P A C -> OS P A B D -> (CongA B A P D C P <-> Par A B C D).
Lemma l12_23 : forall A B C, ~Col A B C -> exists B', exists C', TS A C B B' /\ TS A B C C' /\ Bet B' A C' /\ CongA A B C B A C' /\ CongA A C B C A B'.
Lemma cop_npars__inter_exists : forall A1 B1 A2 B2, Coplanar A1 B1 A2 B2 -> ~ Par_strict A1 B1 A2 B2 -> exists X, Col X A1 B1 /\ Col X A2 B2.
Lemma cop2_npar__inter : forall A B A' B' X Y, Coplanar A B X Y -> Coplanar A' B' X Y -> ~ Par A B A' B' -> (exists P, Col P X Y /\ (Col P A B \/ Col P A' B')).
Lemma not_par_one_not_par : forall A B A' B' X Y, ~Par A B A' B' -> ~Par A B X Y \/ ~Par A' B' X Y.
Lemma col_par_par_col : forall A B C A' B' C', Col A B C -> Par A B A' B' -> Par B C B' C' -> Col A' B' C'.
Lemma cop_par_perp__perp : forall A B C D P Q, Par A B C D -> Perp A B P Q -> Coplanar C D P Q -> Perp C D P Q.
Lemma cop4_par_perp2__par : forall A B C D E F G H, Par A B C D -> Perp A B E F -> Perp C D G H -> Coplanar A B E G -> Coplanar A B E H -> Coplanar A B F G -> Coplanar A B F H -> Par E F G H.
Lemma not_par_inter_exists : forall A1 B1 A2 B2, ~ Par A1 B1 A2 B2 -> exists X, Col X A1 B1 /\ Col X A2 B2.
Lemma l12_16_2D : forall A1 A2 B1 B2 C1 C2 X, Par A1 A2 B1 B2 -> Inter A1 A2 C1 C2 X -> exists Y, Inter B1 B2 C1 C2 Y.
Lemma par_inter : forall A B C D P Q, Par A B C D -> ~Par A B P Q -> exists Y, Col P Q Y /\ Col C D Y.
Lemma not_par_strict_inter_exists : forall A1 B1 A2 B2, ~Par_strict A1 B1 A2 B2 -> exists X, Col X A1 B1 /\ Col X A2 B2.
Lemma not_par_inter : forall A B A' B' X Y, ~Par A B A' B' -> (exists P, Col P X Y /\ (Col P A B \/ Col P A' B')).
Lemma par_perp__perp : forall A B C D P Q, Par A B C D -> Perp A B P Q -> Perp C D P Q.
Lemma par_perp2__par : forall A B C D E F G H, Par A B C D -> Perp A B E F -> Perp C D G H -> Par E F G H.
Lemma lg_exists : forall A B, exists l, Q_Cong l /\ l A B.
Lemma lg_cong : forall l A B C D, Q_Cong l -> l A B -> l C D -> Cong A B C D.
Lemma lg_cong_lg : forall l A B C D, Q_Cong l -> l A B -> Cong A B C D -> l C D.
Lemma lg_sym : forall l A B, Q_Cong l -> l A B -> l B A.
Lemma ex_points_lg : forall l, Q_Cong l -> exists A, exists B, l A B.
Lemma prod_to_prodp : forall O E E' A B C, Prod O E E' A B C -> Prodp O E E' A B C.
Lemma project_pj : forall P P' A B X Y, Proj P P' A B X Y -> Pj X Y P P'.
Lemma prodp_to_prod : forall O E E' A B C, Prodp O E E' A B C -> Prod O E E' A B C.
Lemma prod_exists : forall A B, Col O E A -> Col O E B -> exists C, Prod O E E' A B C.
Lemma prod_uniqueness : forall A B C1 C2, Prod O E E' A B C1 -> Prod O E E' A B C2 -> C1 = C2.
Lemma prod_0_l : forall O E E' A, ~ Col O E E' -> Col O E A -> Prod O E E' O A O.
Lemma prod_0_r : forall O E E' A, ~ Col O E E' -> Col O E A -> Prod O E E' A O O.
Lemma prod_1_l : forall O E E' A, ~ Col O E E' -> Col O E A -> Prod O E E' E A A.
Lemma prod_1_r : forall O E E' A, ~ Col O E E' -> Col O E A -> Prod O E E' A E A.
Lemma inv_exists : forall O E E' A, ~ Col O E E' -> Col O E A -> A <> O -> exists IA, Prod O E E' IA A E.
Lemma prod_null : forall O E E' A B, Prod O E E' A B O -> A = O \/ B = O.
Lemma prod_y_axis_change : forall O E E' E'' A B C, Prod O E E' A B C -> ~ Col O E E'' -> Prod O E E'' A B C.
Lemma proj_preserves_prod : forall O E E' A B C A' B' C', Prod O E E' A B C -> Ar1 O E' A' B' C' -> Pj E E' A A' -> Pj E E' B B' -> Pj E E' C C' -> Prod O E' E A' B' C'.
Lemma prod_assoc1 : forall O E E' A B C AB BC ABC, Prod O E E' A B AB -> Prod O E E' B C BC -> (Prod O E E' A BC ABC -> Prod O E E' AB C ABC).
Lemma prod_assoc2 : forall O E E' A B C AB BC ABC, Prod O E E' A B AB -> Prod O E E' B C BC -> (Prod O E E' AB C ABC -> Prod O E E' A BC ABC).
Lemma prod_assoc : forall O E E' A B C AB BC ABC, Prod O E E' A B AB -> Prod O E E' B C BC -> (Prod O E E' A BC ABC <-> Prod O E E' AB C ABC).
Lemma prod_comm : forall O E E' A B C, Prod O E E' A B C -> Prod O E E' B A C.
Lemma prod_O_l_eq : forall O E E' B C, Prod O E E' O B C -> C = O.
Lemma prod_O_r_eq : forall O E E' A C, Prod O E E' A O C -> C = O.
Lemma prod_uniquenessA : forall O E E' A A' B C, B <> O -> Prod O E E' A B C -> Prod O E E' A' B C -> A = A'.
Lemma prod_uniquenessB : forall O E E' A B B' C, A <> O -> Prod O E E' A B C -> Prod O E E' A B' C -> B = B'.
Lemma distr_l : forall O E E' A B C D AB AC AD, Sum O E E' B C D -> Prod O E E' A B AB -> Prod O E E' A C AC -> (Prod O E E' A D AD -> Sum O E E' AB AC AD).
Lemma distr_r : forall O E E' A B C D AC BC DC, Sum O E E' A B D -> Prod O E E' A C AC -> Prod O E E' B C BC -> (Prod O E E' D C DC -> Sum O E E' AC BC DC).
Lemma prod_1_l_eq : forall O E E' A B, Prod O E E' A B B -> A = E \/ B = O.
Lemma prod_1_r_eq : forall O E E' A B, Prod O E E' A B A -> B = E \/ A = O.
Lemma change_grid_prod_l_O : forall O E E' B C O' A' B' C', Par_strict O E O' E' -> Ar1 O E O B C -> Ar1 O' E' A' B' C' -> Pj O O' E E' -> Pj O O' O A' -> Pj O O' B B' -> Pj O O' C C' -> Prod O E E' O B C -> Prod O' E' E A' B' C'.
Lemma change_grid_prod1 : forall O E E' B C O' A' B' C', Par_strict O E O' E' -> Ar1 O E E B C -> Ar1 O' E' A' B' C' -> Pj O O' E E' -> Pj O O' E A' -> Pj O O' B B' -> Pj O O' C C' -> Prod O E E' E B C -> Prod O' E' E A' B' C'.
Lemma change_grid_prod : forall O E E' A B C O' A' B' C', Par_strict O E O' E' -> Ar1 O E A B C -> Ar1 O' E' A' B' C' -> Pj O O' E E' -> Pj O O' A A' -> Pj O O' B B' -> Pj O O' C C' -> Prod O E E' A B C -> Prod O' E' E A' B' C'.
Lemma prod_sym : forall O E E' A B C, Prod O E E' A B C -> Prod O E E' B A C.
Lemma l14_31_1 : forall O E E' A B C D, Ar2_4 O E E' A B C D -> C <> O -> (exists X, Prod O E E' A B X /\ Prod O E E' C D X) -> Prod O C E' A B D.
Lemma l14_31_2 : forall O E E' A B C D , Ar2_4 O E E' A B C D -> C <> O -> Prod O C E' A B D -> (exists X, Prod O E E' A B X /\ Prod O E E' C D X).
Lemma prod_x_axis_unit_change : forall O E E' A B C D U, Ar2_4 O E E' A B C D -> Col O E U -> U <> O -> ( exists X, Prod O E E' A B X /\ Prod O E E' C D X) -> ( exists Y, Prod O U E' A B Y /\ Prod O U E' C D Y).
Lemma opp_prod : forall O E E' ME X MX, Opp O E E' E ME -> Opp O E E' X MX -> Prod O E E' X ME MX.
Lemma distr_l_diff : forall O E E' A B C BMC AB AC ABMC, Diff O E E' B C BMC -> Prod O E E' A B AB -> Prod O E E' A C AC -> Prod O E E' A BMC ABMC -> Diff O E E' AB AC ABMC.
Lemma diff_of_squares : forall O E E' A B A2 B2 A2MB2 APB AMB F, Prod O E E' A A A2 -> Prod O E E' B B B2 -> Diff O E E' A2 B2 A2MB2 -> Sum O E E' A B APB -> Diff O E E' A B AMB -> Prod O E E' APB AMB F -> A2MB2 = F.
Lemma eq_squares_eq_or_opp : forall O E E' A B A2, Prod O E E' A A A2 -> Prod O E E' B B A2 -> A = B \/ Opp O E E' A B.
Lemma diff_2_prod : forall O E E' A B AMB BMA ME, Opp O E E' E ME -> Diff O E E' A B AMB -> Diff O E E' B A BMA -> Prod O E E' AMB ME BMA.
Lemma bet_col : forall A B C, Bet A B C -> Col A B C.
Lemma between_trivial : forall A B : Tpoint, Bet A B B.
Lemma between_symmetry : forall A B C : Tpoint, Bet A B C -> Bet C B A.
Lemma Bet_cases : forall A B C, Bet A B C \/ Bet C B A -> Bet A B C.
Lemma Bet_perm : forall A B C, Bet A B C -> Bet A B C /\ Bet C B A.
Lemma between_trivial2 : forall A B : Tpoint, Bet A A B.
Lemma between_equality : forall A B C : Tpoint, Bet A B C -> Bet B A C -> A = B.
Lemma between_equality_2 : forall A B C : Tpoint, Bet A B C -> Bet A C B -> B = C.
Lemma between_exchange3 : forall A B C D, Bet A B C -> Bet A C D -> Bet B C D.
Lemma bet_neq12__neq : forall A B C, Bet A B C -> A <> B -> A <> C.
Lemma bet_neq21__neq : forall A B C, Bet A B C -> B <> A -> A <> C.
Lemma bet_neq23__neq : forall A B C, Bet A B C -> B <> C -> A <> C.
Lemma bet_neq32__neq : forall A B C, Bet A B C -> C <> B -> A <> C.
Lemma not_bet_distincts : forall A B C, ~ Bet A B C -> A <> B /\ B <> C.
Lemma grid_exchange_axes : forall O E S U1 U2, Cs O E S U1 U2 -> Cs O E S U2 U1.
Lemma Cs_not_Col : forall O E S U1 U2, Cs O E S U1 U2 -> ~ Col U1 S U2.
Lemma exists_grid : exists O E E' S U1 U2, ~ Col O E E' /\ Cs O E S U1 U2.
Lemma exists_grid_spec : exists S U1 U2, Cs PA PB S U1 U2.
Lemma coord_exchange_axes : forall O E S U1 U2 P X Y, Cd O E S U1 U2 P X Y -> Cd O E S U2 U1 P Y X.
Lemma Cd_Col : forall O E S U1 U2 P X Y, Cd O E S U1 U2 P X Y -> Col O E X /\ Col O E Y.
Lemma exists_projp : forall A B P, A <> B -> exists P', Projp P P' A B.
Lemma exists_coord : forall O E S U P, S <> U -> Cong O E S U -> exists PX, exists X, Projp P PX S U /\ Cong_3 O E X S U PX.
Lemma coordinates_of_point : forall O E S U1 U2 P, Cs O E S U1 U2 -> exists X, exists Y, Cd O E S U1 U2 P X Y.
Lemma point_of_coordinates_origin : forall O E S U1 U2, Cs O E S U1 U2 -> Cd O E S U1 U2 S O O.
Lemma point_of_coordinates_on_an_axis : forall O E S U1 U2 X, Cs O E S U1 U2 -> Col O E X -> O <> X -> exists P, Cd O E S U1 U2 P X O.
Lemma point_of_coordinates : forall O E S U1 U2 X Y, Cs O E S U1 U2 -> Col O E X -> Col O E Y -> exists P, Cd O E S U1 U2 P X Y.
Lemma eq_points_coordinates : forall O E S U1 U2 P1 X1 Y1 P2 X2 Y2, Cd O E S U1 U2 P1 X1 Y1 -> Cd O E S U1 U2 P2 X2 Y2 -> (P1 = P2 <-> (X1 = X2 /\ Y1 = Y2)).
Lemma l16_9_1 : forall O E E' X Y XY XMY, Col O E X -> Col O E Y -> Is_length O E E' X Y XY -> LeP O E E' Y X -> Diff O E E' X Y XMY -> XY = XMY.
Lemma length_eq_or_opp : forall O E E' A B L1 L2, Length O E E' A B L1 -> Diff O E E' A B L2 -> L1 = L2 \/ Opp O E E' L1 L2.
Lemma l16_9_2 : forall O E E' X Y XY XMY XY2 XMY2, Col O E X -> Col O E Y -> Is_length O E E' X Y XY -> Diff O E E' X Y XMY -> Prod O E E' XY XY XY2 -> Prod O E E' XMY XMY XMY2 -> XY2 = XMY2.
Lemma cong_3_2_cong_4 : forall O E I J S U X Y, O <> E -> Col O E I -> Col O E J -> Cong_3 O E I S U X -> Cong_3 O E J S U Y -> Cong_4 O E I J S U X Y.
Lemma cong_3_3_cong_5: forall O E I J K S U X Y Z, O <> E -> Col O E I -> Col O E J -> Col O E K -> Cong_3 O E I S U X -> Cong_3 O E J S U Y -> Cong_3 O E K S U Z -> Cong_5 O E I J K S U X Y Z.
Lemma square_distance_formula_aux : forall O E E' S U1 U2 P PX PY Q QX PXQX, Cd O E S U1 U2 P PX PY -> Cd O E S U1 U2 Q QX PY -> P <> Q -> ~ Col O E E' -> Col O E PX -> Col O E QX -> Col O E PY -> Cs O E S U1 U2 -> Length O E E' PX QX PXQX -> Length O E E' Q P PXQX.
Lemma square_distance_formula : forall O E E' S U1 U2 P Q PX PY QX QY PQ PQ2 PXMQX PYMQY PXMQX2 PYMQY2 F, Cd O E S U1 U2 P PX PY -> Cd O E S U1 U2 Q QX QY -> Is_length O E E' P Q PQ -> Prod O E E' PQ PQ PQ2 -> Diff O E E' PX QX PXMQX -> Prod O E E' PXMQX PXMQX PXMQX2 -> Diff O E E' PY QY PYMQY -> Prod O E E' PYMQY PYMQY PYMQY2 -> Sum O E E' PXMQX2 PYMQY2 F -> PQ2 = F.
Lemma characterization_of_congruence : forall O E E' S U1 U2 A AX AY B BX BY C CX CY D DX DY AXMBX AXMBX2 AYMBY AYMBY2 AB2 CXMDX CXMDX2 CYMDY CYMDY2 CD2, Cd O E S U1 U2 A AX AY -> Cd O E S U1 U2 B BX BY -> Cd O E S U1 U2 C CX CY -> Cd O E S U1 U2 D DX DY -> Diff O E E' AX BX AXMBX -> Prod O E E' AXMBX AXMBX AXMBX2 -> Diff O E E' AY BY AYMBY -> Prod O E E' AYMBY AYMBY AYMBY2 -> Sum O E E' AXMBX2 AYMBY2 AB2 -> Diff O E E' CX DX CXMDX -> Prod O E E' CXMDX CXMDX CXMDX2 -> Diff O E E' CY DY CYMDY -> Prod O E E' CYMDY CYMDY CYMDY2 -> Sum O E E' CXMDX2 CYMDY2 CD2 -> (Cong A B C D <-> AB2 = CD2).
Lemma bet_betCood_aux : forall O E S U1 U2 A AX AY B BX BY C CX CY, Cd O E S U1 U2 A AX AY -> Cd O E S U1 U2 B BX BY -> Cd O E S U1 U2 C CX CY -> Bet A B C -> Bet AX BX CX.
Lemma bet_betCood : forall O E S U1 U2 A AX AY B BX BY C CX CY, Cd O E S U1 U2 A AX AY -> Cd O E S U1 U2 B BX BY -> Cd O E S U1 U2 C CX CY -> Bet A B C -> Bet AX BX CX /\ Bet AY BY CY.
Lemma characterization_of_betweenness_aux : forall O E E' S U1 U2 A AX AY B BX BY C CX CY BXMAX CXMAX AB AC IAC T, Cd O E S U1 U2 A AX AY -> Cd O E S U1 U2 B BX BY -> Cd O E S U1 U2 C CX CY -> ~ Col O E E' -> Col O E AX -> Col O E BX -> Col O E CX -> Col O E BXMAX -> Col O E CXMAX -> Col O E T -> Col O E AB -> Col O E AC -> Col O E IAC -> Diff O E E' BX AX BXMAX -> Diff O E E' CX AX CXMAX -> Length O E E' A B AB -> Length O E E' A C AC -> Prod O E E' T AC AB -> Prod O E E' IAC AC E -> Bet A B C -> A <> B -> A <> C -> B <> C -> Prod O E E' T CXMAX BXMAX.
Lemma characterization_of_betweenness : forall O E E' S U1 U2 A AX AY B BX BY C CX CY BXMAX BYMAY CXMAX CYMAY, Cd O E S U1 U2 A AX AY -> Cd O E S U1 U2 B BX BY -> Cd O E S U1 U2 C CX CY -> Diff O E E' BX AX BXMAX -> Diff O E E' BY AY BYMAY -> Diff O E E' CX AX CXMAX -> Diff O E E' CY AY CYMAY -> (Bet A B C <-> exists T, O <> E /\ Col O E T /\ LeP O E E' O T /\ LeP O E E' T E /\ Prod O E E' T CXMAX BXMAX /\ Prod O E E' T CYMAY BYMAY).
Lemma same_abscissa_col : forall O E S U1 U2 A AX AY B BY C CY, Cd O E S U1 U2 A AX AY -> Cd O E S U1 U2 B AX BY -> Cd O E S U1 U2 C AX CY -> Col A B C.
Lemma characterization_of_collinearity : forall O E E' S U1 U2 A AX AY B BX BY C CX CY AXMBX AYMBY BXMCX BYMCY XProd YProd, Cd O E S U1 U2 A AX AY -> Cd O E S U1 U2 B BX BY -> Cd O E S U1 U2 C CX CY -> Diff O E E' AX BX AXMBX -> Diff O E E' AY BY AYMBY -> Diff O E E' BX CX BXMCX -> Diff O E E' BY CY BYMCY -> Prod O E E' AXMBX BYMCY XProd -> Prod O E E' AYMBY BXMCX YProd -> (Col A B C <-> XProd = YProd).
Lemma per2_col_eq : forall A P P' B, A <> P -> A <> P' -> Per A P B -> Per A P' B -> Col P A P' -> P = P'.
Lemma per2_preserves_diff : forall O A B A' B', O <> A' -> O <> B' -> Col O A' B' -> Per O A' A -> Per O B' B -> A' <> B' -> A <> B.
Lemma per23_preserves_bet : forall A B C B' C', Bet A B C -> A <> B' -> A <> C' -> Col A B' C' -> Per A B' B -> Per A C' C -> Bet A B' C'.
Lemma per23_preserves_bet_inv : forall A B C B' C', Bet A B' C' -> A <> B' -> Col A B C -> Per A B' B -> Per A C' C -> Bet A B C.
Lemma per13_preserves_bet : forall A B C A' C', Bet A B C -> B <> A' -> B <> C' -> Col A' B C' -> Per B A' A -> Per B C' C -> Bet A' B C'.
Lemma per13_preserves_bet_inv : forall A B C A' C', Bet A' B C' -> B <> A' -> B <> C' -> Col A B C -> Per B A' A -> Per B C' C -> Bet A B C.
Lemma per3_preserves_bet1 : forall O A B C A' B' C', Col O A B -> Bet A B C -> O <> A' -> O <> B' -> O <> C' -> Per O A' A -> Per O B' B -> Per O C' C -> Col A' B' C' -> Col O A' B' -> Bet A' B' C'.
Lemma per3_preserves_bet2_aux : forall O A B C B' C', Col O A C -> A <> C' -> Bet A B' C' -> O <> A -> O <> B' -> O <> C' -> Per O B' B -> Per O C' C -> Col A B C -> Col O A C' -> Bet A B C.
Lemma per3_preserves_bet2 : forall O A B C A' B' C', Col O A C -> A' <> C' -> Bet A' B' C' -> O <> A' -> O <> B' -> O <> C' -> Per O A' A -> Per O B' B -> Per O C' C -> Col A B C -> Col O A' C' -> Bet A B C.
Lemma symmetry_preserves_per : forall A P B A' P', Per B P A -> Midpoint B A A' -> Midpoint B P P' -> Per B P' A'.
Lemma l13_1_aux : forall A B C P Q R, ~ Col A B C -> Midpoint P B C -> Midpoint Q A C -> Midpoint R A B -> exists X, exists Y, Perp_at R X Y A B /\ Perp X Y P Q /\ Coplanar A B C X /\ Coplanar A B C Y.
Lemma l13_1 : forall A B C P Q R, ~ Col A B C -> Midpoint P B C -> Midpoint Q A C -> Midpoint R A B -> exists X, exists Y, Perp_at R X Y A B /\ Perp X Y P Q.
Lemma per_lt : forall A B C, A <> B -> C <> B -> Per A B C -> Lt A B A C /\ Lt C B A C.
Lemma cong_perp_conga : forall A B C P, Cong A B C B -> Perp A C B P -> CongA A B P C B P /\ TS B P A C.
Lemma perp_per_bet : forall A B C P, ~Col A B C -> Col A P C -> Per A B C -> Perp_at P P B A C -> Bet A P C.
Lemma ts_per_per_ts : forall A B C D, TS A B C D -> Per B C A -> Per B D A -> TS C D A B.
Lemma l13_2_1 : forall A B C D E, TS A B C D -> Per B C A -> Per B D A -> Col C D E -> Perp A E C D -> CongA C A B D A B -> CongA B A C D A E /\ CongA B A D C A E /\ Bet C E D.
Lemma triangle_mid_par : forall A B C P Q, ~Col A B C -> Midpoint P B C -> Midpoint Q A C -> Par_strict A B Q P.
Lemma cop4_perp_in2__col : forall A B A' B' X Y P, Coplanar X Y A A' -> Coplanar X Y A B' -> Coplanar X Y B A' -> Coplanar X Y B B' -> Perp_at P A B X Y -> Perp_at P A' B' X Y -> Col A B A'.
Lemma l13_2 : forall A B C D E, TS A B C D -> Per B C A -> Per B D A -> Col C D E -> Perp A E C D -> CongA B A C D A E /\ CongA B A D C A E /\ Bet C E D.
Lemma perp2_refl : forall A B P, A <> B -> Perp2 A B A B P.
Lemma perp2_sym : forall A B C D P, Perp2 A B C D P -> Perp2 C D A B P.
Lemma perp2_left_comm : forall A B C D P, Perp2 A B C D P -> Perp2 B A C D P.
Lemma perp2_right_comm : forall A B C D P, Perp2 A B C D P -> Perp2 A B D C P.
Lemma perp2_comm : forall A B C D P, Perp2 A B C D P -> Perp2 B A D C P.
Lemma perp2_pseudo_trans : forall A B C D E F P, Perp2 A B C D P -> Perp2 C D E F P -> ~ Col C D P -> Perp2 A B E F P.
Lemma perp2_preserves_bet23 : forall O A B A' B', Bet O A B -> Col O A' B' -> ~Col O A A' -> Perp2 A A' B B' O -> Bet O A' B'.
Lemma perp2_preserves_bet13 : forall O B C B' C', Bet B O C -> Col O B' C' -> ~Col O B B' -> Perp2 B C' C B' O -> Bet B' O C'.
Lemma is_image_perp_in : forall A A' X Y, A <> A' -> X <> Y -> Reflect A A' X Y -> exists P, Perp_at P A A' X Y.
Lemma perp_inter_perp_in_n : forall A B C D : Tpoint, Perp A B C D -> exists P : Tpoint, Col A B P /\ Col C D P /\ Perp_at P A B C D.
Lemma perp2_perp_in : forall A B C D O, Perp2 A B C D O -> ~Col O A B /\ ~Col O C D -> exists P, exists Q, Col A B P /\ Col C D Q /\ Col O P Q /\ Perp_at P O P A B /\ Perp_at Q O Q C D.
Lemma l13_8 : forall O P Q U V, U <> O -> V <> O -> Col O P Q -> Col O U V -> Per P U O -> Per Q V O -> (Out O P Q <-> Out O U V).
Lemma perp_in_rewrite : forall A B C D P, Perp_at P A B C D -> Perp_at P A P P C \/ Perp_at P A P P D \/ Perp_at P B P P C \/ Perp_at P B P P D.
Lemma gta_to_lta : forall A B C D E F, GtA A B C D E F -> LtA D E F A B C.
Lemma lta_to_gta : forall A B C D E F, LtA A B C D E F -> GtA D E F A B C.
Lemma perp_out_acute : forall A B C C', Out B A C' -> Perp A B C C' -> Acute A B C.
Lemma flat_all_lea : forall A B C, A <> B -> C <> B -> Bet A B C -> forall P, P <> B -> LeA A B P A B C.
Lemma perp_bet_obtuse : forall A B C C', B <> C' -> Perp A B C C' -> Bet A B C' -> Obtuse A B C.
Lemma perp_in2__col : forall A B A' B' X Y P, Perp_at P A B X Y -> Perp_at P A' B' X Y -> Col A B A'.
Lemma perp2_trans : forall A B C D E F P, Perp2 A B C D P -> Perp2 C D E F P -> Perp2 A B E F P.
Lemma perp2_par : forall A B C D O, Perp2 A B C D O -> Par A B C D.
Lemma col_permutation_1 : forall A B C,Col A B C -> Col B C A.
Lemma col_permutation_2 : forall A B C, Col A B C -> Col C A B.
Lemma col_permutation_3 : forall A B C, Col A B C -> Col C B A.
Lemma col_permutation_4 : forall A B C, Col A B C -> Col B A C.
Lemma col_permutation_5 : forall A B C, Col A B C -> Col A C B.
Lemma l4_2 : forall A B C D A' B' C' D', IFSC A B C D A' B' C' D' -> Cong B D B' D'.
Lemma l4_3 : forall A B C A' B' C', Bet A B C -> Bet A' B' C' -> Cong A C A' C' -> Cong B C B' C' -> Cong A B A' B'.
Lemma l4_3_1 : forall A B C A' B' C', Bet A B C -> Bet A' B' C' -> Cong A B A' B' -> Cong A C A' C' -> Cong B C B' C'.
Lemma l4_5 : forall A B C A' C', Bet A B C -> Cong A C A' C' -> exists B', Bet A' B' C' /\ Cong_3 A B C A' B' C'.
Lemma l4_6 : forall A B C A' B' C', Bet A B C -> Cong_3 A B C A' B' C' -> Bet A' B' C'.
Lemma cong3_bet_eq : forall A B C X, Bet A B C -> Cong_3 A B C A X C -> X = B.
Lemma l13_15_1 : forall A B C A' B' C' O , ~ Col A B C -> ~ Par O B A C -> Par_strict A B A' B' -> Par_strict A C A' C'-> Col O A A' -> Col O B B' -> Col O C C' -> Par B C B' C'.
Lemma l13_15_2_aux : forall A B C A' B' C' O , ~Col A B C -> ~Par O A B C -> Par O B A C -> Par_strict A B A' B' -> Par_strict A C A' C' -> Col O A A' -> Col O B B' -> Col O C C' -> Par B C B' C'.
Lemma l13_15_2 : forall A B C A' B' C' O , ~Col A B C -> Par O B A C -> Par_strict A B A' B' -> Par_strict A C A' C' -> Col O A A' -> Col O B B' -> Col O C C' -> Par B C B' C'.
Lemma l13_15 : forall A B C A' B' C' O , ~Col A B C -> Par_strict A B A' B' -> Par_strict A C A' C' -> Col O A A' -> Col O B B' -> Col O C C' -> Par B C B' C'.
Lemma l13_15_par : forall A B C A' B' C', ~Col A B C -> Par_strict A B A' B' -> Par_strict A C A' C' -> Par A A' B B' -> Par A A' C C' -> Par B C B' C'.
Lemma l13_18_2 : forall A B C A' B' C' O, ~Col A B C -> Par_strict A B A' B' -> Par_strict A C A' C' -> (Par_strict B C B' C' /\ Col O A A' /\ Col O B B' -> Col O C C').
Lemma l13_18_3 : forall A B C A' B' C', ~Col A B C -> Par_strict A B A' B' -> Par_strict A C A' C' -> (Par_strict B C B' C' /\ Par A A' B B') -> (Par C C' A A' /\ Par C C' B B').
Lemma l13_18 : forall A B C A' B' C' O, ~Col A B C /\ Par_strict A B A' B' /\ Par_strict A C A' C' ->(Par_strict B C B' C' /\ Col O A A' /\ Col O B B' -> Col O C C') /\ ((Par_strict B C B' C' /\ Par A A' B B') -> (Par C C' A A' /\ Par C C' B B')) /\ (Par A A' B B' /\ Par A A' C C' -> Par B C B' C').
Lemma l13_19_aux : forall A B C D A' B' C' D' O, ~Col O A B -> A <> A' -> A <> C -> O <> A -> O <> A' -> O <> C -> O <> C' -> O <> B -> O <> B' -> O <> D -> O <> D' -> Col O A C -> Col O A A' -> Col O A C' -> Col O B D -> Col O B B' -> Col O B D' -> ~Par A B C D -> Par A B A' B' -> Par A D A' D' -> Par B C B' C' -> Par C D C' D'.
Lemma l13_19 : forall A B C D A' B' C' D' O, ~Col O A B -> O <> A -> O <> A' -> O <> C -> O <> C' -> O <> B -> O <> B' -> O <> D -> O <> D' -> Col O A C -> Col O A A' -> Col O A C' -> Col O B D -> Col O B B' -> Col O B D' -> Par A B A' B' -> Par A D A' D' -> Par B C B' C' -> Par C D C' D'.
Lemma l13_19_par_aux : forall A B C D A' B' C' D' X Y, X <> A -> X <> A' -> X <> C -> X <> C' -> Y <> B -> Y <> B' -> Y <> D -> Y <> D' -> Col X A C -> Col X A A' -> Col X A C' -> Col Y B D -> Col Y B B' -> Col Y B D' -> A <> C -> B <> D -> A <> A' -> Par_strict X A Y B -> ~Par A B C D -> Par A B A' B' -> Par A D A' D' -> Par B C B' C' -> Par C D C' D'.
Lemma l13_19_par : forall A B C D A' B' C' D' X Y, X <> A -> X <> A' -> X <> C -> X <> C'-> Y <> B -> Y <> B' -> Y <> D -> Y <> D' -> Col X A C -> Col X A A' -> Col X A C' -> Col Y B D -> Col Y B B' -> Col Y B D' -> Par_strict X A Y B -> Par A B A' B' -> Par A D A' D' -> Par B C B' C' -> Par C D C' D'.
Lemma length_pos : forall O E E' A B L, Length O E E' A B L -> LeP O E E' O L.
Lemma length_id_1 : forall O E E' A B, Length O E E' A B O -> A=B.
Lemma length_id_2 : forall O E E' A, O<>E -> Length O E E' A A O.
Lemma length_id : forall O E E' A B, Length O E E' A B O <-> (A=B /\ O<>E).
Lemma length_eq_cong_1 : forall O E E' A B C D AB, Length O E E' A B AB -> Length O E E' C D AB -> Cong A B C D.
Lemma length_eq_cong_2 : forall O E E' A B C D AB, Length O E E' A B AB -> Cong A B C D -> Length O E E' C D AB.
Lemma ltP_pos : forall O E E' A, LtP O E E' O A -> Ps O E A.
Lemma bet_leP : forall O E E' AB CD, Bet O AB CD -> LeP O E E' O AB -> LeP O E E' O CD -> LeP O E E' AB CD.
Lemma leP_bet : forall O E E' AB CD, LeP O E E' AB CD -> LeP O E E' O AB -> LeP O E E' O CD -> Bet O AB CD.
Lemma length_Ar2 : forall O E E' A B AB, Length O E E' A B AB -> (Col O E AB /\ ~Col O E E') \/ AB = O.
Lemma length_leP_le_1 : forall O E E' A B C D AB CD, Length O E E' A B AB -> Length O E E' C D CD -> LeP O E E' AB CD -> Le A B C D.
Lemma length_leP_le_2 : forall O E E' A B C D AB CD, Length O E E' A B AB -> Length O E E' C D CD -> Le A B C D -> LeP O E E' AB CD.
Lemma l15_3 : forall O E E' A B C, Sum O E E' A B C -> Cong O B A C.
Lemma length_uniqueness : forall O E E' A B AB AB', Length O E E' A B AB -> Length O E E' A B AB' -> AB = AB'.
Lemma length_cong : forall O E E' A B AB, Length O E E' A B AB -> Cong A B O AB.
Lemma length_Ps : forall O E E' A B AB, AB <> O -> Length O E E' A B AB -> Ps O E AB.
Lemma length_not_col_null : forall O E E' A B AB, Col O E E' -> Length O E E' A B AB -> AB=O.
Lemma triangular_equality_equiv : (forall O E A , O<>E -> (forall E' B C AB BC AC, Bet A B C -> Length O E E' A B AB -> Length O E E' B C BC -> Length O E E' A C AC -> Sum O E E' AB BC AC)) <-> (forall O E E' A B C AB BC AC, O<>E -> Bet A B C -> Length O E E' A B AB -> Length O E E' B C BC -> Length O E E' A C AC -> Sum O E E' AB BC AC).
Lemma not_triangular_equality1 : forall O E A , O<>E -> ~ (forall E' B C AB BC AC, Bet A B C -> Length O E E' A B AB -> Length O E E' B C BC -> Length O E E' A C AC -> Sum O E E' AB BC AC).
Lemma triangular_equality : forall O E E' A B C AB BC AC, O<>E -> Bet A B C -> Is_length O E E' A B AB -> Is_length O E E' B C BC -> Is_length O E E' A C AC -> Sumg O E E' AB BC AC.
Lemma length_O : forall O E E', O <> E -> Length O E E' O O O.
Lemma triangular_equality_bis : forall O E E' A B C AB BC AC, A <> B \/ A <> C \/ B <> C -> O<>E -> Bet A B C -> Length O E E' A B AB -> Length O E E' B C BC -> Length O E E' A C AC -> Sum O E E' AB BC AC.
Lemma length_out : forall O E E' A B C D AB CD, A <> B -> C <> D -> Length O E E' A B AB -> Length O E E' C D CD -> Out O AB CD.
Lemma image_preserves_bet1 : forall X Y A B C A' B' C', Bet A B C -> Reflect A A' X Y -> Reflect B B' X Y -> Reflect C C' X Y -> Bet A' B' C'.
Lemma image_preserves_col : forall X Y A B C A' B' C', Col A B C -> Reflect A A' X Y -> Reflect B B' X Y -> Reflect C C' X Y -> Col A' B' C'.
Lemma image_preserves_out : forall X Y A B C A' B' C', Out A B C -> Reflect A A' X Y -> Reflect B B' X Y -> Reflect C C' X Y -> Out A' B' C'.
Lemma project_preserves_out : forall A B C A' B' C' P Q X Y, Out A B C -> ~Par A B X Y -> Proj A A' P Q X Y -> Proj B B' P Q X Y -> Proj C C' P Q X Y -> Out A' B' C'.
Lemma conga_bet_conga : forall A B C D E F A' C' D' F', CongA A B C D E F -> A' <> B -> C' <> B -> D' <> E -> F' <> E -> Bet A B A' -> Bet C B C' -> Bet D E D' -> Bet F E F' -> CongA A' B C' D' E F'.
Lemma thales : forall O E E' P A B C D A1 B1 C1 D1 AD, O <> E -> Col P A B -> Col P C D -> ~ Col P A C -> Pj A C B D -> Length O E E' P A A1 -> Length O E E' P B B1 -> Length O E E' P C C1 -> Length O E E' P D D1 -> Prodg O E E' A1 D1 AD -> Prodg O E E' C1 B1 AD.
Lemma length_existence : forall O E E' A B, ~ Col O E E' -> exists AB, Length O E E' A B AB.
Lemma l15_7 : forall O E E' A B C H AB AC AH AC2, O<>E -> Per A C B -> Perp_at H C H A B -> Length O E E' A B AB -> Length O E E' A C AC -> Length O E E' A H AH -> (Prod O E E' AC AC AC2 <-> Prod O E E' AB AH AC2).
Lemma l15_7_1 : forall O E E' A B C H AB AC AH AC2, O<>E -> Per A C B -> Perp_at H C H A B -> Length O E E' A B AB -> Length O E E' A C AC -> Length O E E' A H AH -> Prod O E E' AC AC AC2 -> Prod O E E' AB AH AC2.
Lemma l15_7_2 : forall O E E' A B C H AB AC AH AC2, O<>E -> Per A C B -> Perp_at H C H A B -> Length O E E' A B AB -> Length O E E' A C AC -> Length O E E' A H AH -> Prod O E E' AB AH AC2 -> Prod O E E' AC AC AC2.
Lemma length_sym : forall O E E' A B AB, Length O E E' A B AB -> Length O E E' B A AB.
Lemma pythagoras : forall O E E' A B C AC BC AB AC2 BC2 AB2, O <> E -> Per A C B -> Length O E E' A B AB -> Length O E E' A C AC -> Length O E E' B C BC -> Prod O E E' AC AC AC2 -> Prod O E E' BC BC BC2 -> Prod O E E' AB AB AB2 -> Sum O E E' AC2 BC2 AB2.
Lemma is_length_exists : forall O E E' X Y, ~ Col O E E' -> exists XY, Is_length O E E' X Y XY.
Lemma lt_to_ltp : forall O E E' A B L C D M, Length O E E' A B L -> Length O E E' C D M -> Lt A B C D -> LtP O E E' L M.
Lemma ltp_to_lep : forall O E E' L M, LtP O E E' L M -> LeP O E E' L M.
Lemma ltp_to_lt : forall O E E' A B L C D M, Length O E E' A B L -> Length O E E' C D M -> LtP O E E' L M -> Lt A B C D.
Lemma prod_col : forall O E E' A B AB ,Ar2 O E E' A B A -> Prod O E E' A B AB -> Col O E AB.
Lemma square_increase_strict : forall O E E' A B A2 B2, Ar2 O E E' A B A -> Ps O E A -> Ps O E B -> LtP O E E' A B -> Prod O E E' A A A2 -> Prod O E E' B B B2 -> LtP O E E' A2 B2.
Lemma square_increase : forall O E E' A B A2 B2, Ar2 O E E' A B A -> Ps O E A -> Ps O E B -> LeP O E E' A B -> Prod O E E' A A A2 -> Prod O E E' B B B2 -> LeP O E E' A2 B2.
Lemma signeq__prod_pos : forall O E E' A B C, SignEq O E A B -> Prod O E E' A B C -> Ps O E C.
Lemma pos_neg__prod_neg : forall O E E' A B C, Ps O E A -> Ng O E B -> Prod O E E' A B C -> Ng O E C.
Lemma sign_dec : forall O E A, Col O E A -> O <> E -> A = O \/ Ps O E A \/ Ng O E A.
Lemma not_signEq_prod_neg : forall O E E' A B C, A <> O -> B <> O -> ~SignEq O E A B -> Prod O E E' A B C -> Ng O E C.
Lemma prod_pos__signeq : forall O E E' A B C, A <> O -> B <> O -> Prod O E E' A B C -> Ps O E C -> SignEq O E A B.
Lemma prod_ng___not_signeq : forall O E E' A B C, A <> O -> B <> O -> Prod O E E' A B C -> Ng O E C -> ~SignEq O E A B.
Lemma ltp__diff_pos : forall O E E' A B D, LtP O E E' A B -> Diff O E E' B A D -> Ps O E D.
Lemma diff_pos__ltp : forall O E E' A B D, Diff O E E' B A D -> Ps O E D -> LtP O E E' A B.
Lemma square_increase_rev : forall O E E' A B A2 B2, Ps O E A -> Ps O E B -> LtP O E E' A2 B2 -> Prod O E E' A A A2 -> Prod O E E' B B B2 -> LtP O E E' A B.
Lemma ltp__ltps: forall O E E' A B, LtP O E E' A B -> LtPs O E E' A B.
Lemma ltps__ltp: forall O E E' A B, LtPs O E E' A B -> LtP O E E' A B.
Lemma ltp__lep_neq : forall O E E' A B, LtP O E E' A B -> LeP O E E' A B /\ A <> B.
Lemma lep_neq__ltp : forall O E E' A B, LeP O E E' A B /\ A <> B -> LtP O E E' A B.
Lemma sum_preserves_ltp : forall O E E' A B C AC BC, LtP O E E' A B -> Sum O E E' A C AC -> Sum O E E' B C BC -> LtP O E E' AC BC.
Lemma sum_preserves_lep : forall O E E' A B C AC BC, LeP O E E' A B -> Sum O E E' A C AC -> Sum O E E' B C BC -> LeP O E E' AC BC.
Lemma sum_preserves_ltp_rev : forall O E E' A B C AC BC, Sum O E E' A C AC -> Sum O E E' B C BC -> LtP O E E' AC BC -> LtP O E E' A B.
Lemma sum_preserves_lep_rev : forall O E E' A B C AC BC, Sum O E E' A C AC -> Sum O E E' B C BC -> LeP O E E' AC BC -> LeP O E E' A B.
Lemma cong2_lea__le : forall A B C D E F : Tpoint, Cong A B D E -> Cong A C D F -> LeA F D E C A B -> Le E F B C.
Lemma lea_out_lea : forall A B C D E F A' C' D' F', Out B A A' -> Out B C C' -> Out E D D' -> Out E F F' -> LeA A B C D E F -> LeA A' B C' D' E F'.
Lemma lta_out_lta : forall A B C D E F A' C' D' F', Out B A A' -> Out B C C' -> Out E D D' -> Out E F F' -> LtA A B C D E F -> LtA A' B C' D' E F'.
Lemma pythagoras_obtuse : forall O E E' A B C AC BC AB AC2 BC2 AB2 S2, O<>E -> Obtuse A C B -> Length O E E' A B AB -> Length O E E' A C AC -> Length O E E' B C BC -> Prod O E E' AC AC AC2 -> Prod O E E' BC BC BC2 -> Prod O E E' AB AB AB2 -> Sum O E E' AC2 BC2 S2 -> LtP O E E' S2 AB2.
Lemma pythagoras_obtuse_or_per : forall O E E' A B C AC BC AB AC2 BC2 AB2 S2, O<>E -> Obtuse A C B \/ Per A C B -> Length O E E' A B AB -> Length O E E' A C AC -> Length O E E' B C BC -> Prod O E E' AC AC AC2 -> Prod O E E' BC BC BC2 -> Prod O E E' AB AB AB2 -> Sum O E E' AC2 BC2 S2 -> LeP O E E' S2 AB2.
Lemma pythagoras_acute : forall O E E' A B C AC BC AB AC2 BC2 AB2 S2, O<>E -> Acute A C B -> Length O E E' A B AB -> Length O E E' A C AC -> Length O E E' B C BC -> Prod O E E' AC AC AC2 -> Prod O E E' BC BC BC2 -> Prod O E E' AB AB AB2 -> Sum O E E' AC2 BC2 S2 -> LtP O E E' AB2 S2.
Lemma pyth_context : forall O E E' A B C : Tpoint, ~Col O E E' -> exists AB BC AC AB2 BC2 AC2 SS, Col O E AB /\ Col O E BC /\ Col O E AC /\ Col O E AB2 /\ Col O E BC2 /\ Col O E AC2 /\ Length O E E' A B AB /\ Length O E E' B C BC /\ Length O E E' A C AC /\ Prod O E E' AB AB AB2 /\ Prod O E E' BC BC BC2 /\ Prod O E E' AC AC AC2 /\ Sum O E E' AB2 BC2 SS .
Lemma length_pos_or_null : forall O E E' A B AB, Length O E E' A B AB -> Ps O E AB \/ A = B.
Lemma not_neg_pos : forall O E A, E <> O -> Col O E A -> ~Ng O E A -> Ps O E A \/ A = O.
Lemma sum_pos_null : forall O E E' A B, ~Ng O E A -> ~Ng O E B -> Sum O E E' A B O -> A = O /\ B = O.
Lemma length_not_neg : forall O E E' A B AB, Length O E E' A B AB -> ~Ng O E AB.
Lemma signEq_refl : forall O E A, O <> E -> Col O E A -> A = O \/ SignEq O E A A.
Lemma square_not_neg : forall O E E' A A2, Prod O E E' A A A2 -> ~Ng O E A2.
Lemma root_uniqueness : forall O E E' A B C, ~Ng O E A -> ~Ng O E B -> Prod O E E' A A C -> Prod O E E' B B C -> A = B.
Lemma inter_tangent_circle : forall P Q O M, P <> Q -> Cong P O Q O -> Col P O Q -> Le P M P O -> Le Q M Q O -> M = O.
Lemma inter_circle_per : forall P Q A T M, Cong P A Q A -> Le P M P A -> Le Q M Q A -> Projp A T P Q -> Per P T M -> Le T M T A.
Lemma inter_circle_obtuse : forall P Q A T M, Cong P A Q A -> Le P M P A -> Le Q M Q A -> Projp A T P Q -> Obtuse P T M \/ Per P T M -> Le T M T A.
Lemma circle_projp_between : forall P Q A T, Cong P A Q A -> Projp A T P Q -> Bet P T Q.
Lemma inter_circle : forall P Q A T M, Cong P A Q A -> Le P M P A -> Le Q M Q A -> Projp A T P Q -> Le T M T A.
Lemma projp_lt : forall P Q A T, Cong P A Q A -> Projp A T P Q -> Lt T A P A.
Lemma l14_36_a : forall O E E' A B C, Sum O E E' A B C -> Out O A B -> Bet O A C.
Lemma l14_36_b : forall O E E' A B C, Sum O E E' A B C -> Out O A B -> O <> A /\ O <> C /\ A <> C.
Lemma O_not_positive : forall O E, ~ Ps O E O.
Lemma pos_null_neg : forall O E E' A MA, Opp O E E' A MA -> Ps O E A \/ O = A \/ Ps O E MA.
Lemma sum_pos_pos : forall O E E' A B AB, Ps O E A -> Ps O E B -> Sum O E E' A B AB -> Ps O E AB.
Lemma prod_pos_pos : forall O E E' A B AB, Ps O E A -> Ps O E B -> Prod O E E' A B AB -> Ps O E AB.
Lemma pos_not_neg : forall O E A, Ps O E A -> ~Ng O E A.
Lemma neg_not_pos : forall O E A, Ng O E A -> ~Ps O E A.
Lemma opp_pos_neg : forall O E E' A MA, Ps O E A -> Opp O E E' A MA -> Ng O E MA.
Lemma opp_neg_pos : forall O E E' A MA, Ng O E A -> Opp O E E' A MA -> Ps O E MA.
Lemma ltP_ar2 : forall O E E' A B, LtP O E E' A B -> Ar2 O E E' A B A.
Lemma ltP_neq : forall O E E' A B, LtP O E E' A B -> A <> B.
Lemma leP_refl : forall O E E' A, LeP O E E' A A.
Lemma ltP_sum_pos : forall O E E' A B C , Ps O E B -> Sum O E E' A B C -> LtP O E E' A C.
Lemma pos_opp_neg : forall O E E' A mA, Ps O E A -> Opp O E E' A mA -> Ng O E mA.
Lemma diff_pos_diff_neg : forall O E E' A B AmB BmA, Diff O E E' A B AmB -> Diff O E E' B A BmA -> Ps O E AmB -> Ng O E BmA.
Lemma not_pos_and_neg : forall O E A, ~(Ps O E A /\ Ng O E A).
Lemma leP_asym : forall O E E' A B, LeP O E E' A B -> LeP O E E' B A -> A = B.
Lemma leP_trans : forall O E E' A B C, LeP O E E' A B -> LeP O E E' B C -> LeP O E E' A C.
Lemma leP_sum_leP : forall O E E' A B C X Y Z, LeP O E E' A X -> LeP O E E' B Y -> Sum O E E' A B C -> Sum O E E' X Y Z -> LeP O E E' C Z.
Lemma square_pos : forall O E E' A A2, O <> A -> Prod O E E' A A A2 -> Ps O E A2.
Lemma col_pos_or_neg : forall O E X, O <> E -> O <> X -> Col O E X -> Ps O E X \/ Ng O E X.
Lemma ltP_neg : forall O E E' A, LtP O E E' A O -> Ng O E A.
Lemma ps_le : forall O E E' X, ~ Col O E E' -> Bet O X E \/ Bet O E X -> LeP O E E' O X.
Lemma lt_diff_ps : forall O E E' X Y XMY, Col O E X -> Col O E Y -> LtP O E E' Y X -> Diff O E E' X Y XMY -> Ps O E XMY.
Lemma col_2_le_or_ge : forall O E E' A B, ~ Col O E E' -> Col O E A -> Col O E B -> LeP O E E' A B \/ LeP O E E' B A.
Lemma compatibility_of_sum_with_order : forall O E E' A B C APC BPC, LeP O E E' A B -> Sum O E E' A C APC -> Sum O E E' B C BPC -> LeP O E E' APC BPC.
Lemma compatibility_of_prod_with_order : forall O E E' A B AB, LeP O E E' O A -> LeP O E E' O B -> Prod O E E' A B AB -> LeP O E E' O AB.
Lemma pos_inv_pos : forall O E E' A IA, O <> A -> LeP O E E' O A -> Prod O E E' IA A E -> LeP O E E' O IA.
Lemma le_pos_prod_le : forall O E E' A B C AC BC, LeP O E E' A B -> LeP O E E' O C -> Prod O E E' A C AC -> Prod O E E' B C BC -> LeP O E E' AC BC.
Lemma bet_lt12_le23 : forall O E E' A B C, Bet A B C -> LtP O E E' A B -> LeP O E E' B C.
Lemma bet_lt12_le13 : forall O E E' A B C, Bet A B C -> LtP O E E' A B -> LeP O E E' A C.
Lemma bet_lt21_le32 : forall O E E' A B C, Bet A B C -> LtP O E E' B A -> LeP O E E' C B.
Lemma bet_lt21_le31 : forall O E E' A B C, Bet A B C -> LtP O E E' B A -> LeP O E E' C A.
Lemma opp_2_le_le : forall O E E' A MA B MB, Opp O E E' A MA -> Opp O E E' B MB -> LeP O E E' A B -> LeP O E E' MB MA.
Lemma diff_2_le_le : forall O E E' A B C AMC BMC, Diff O E E' A C AMC -> Diff O E E' B C BMC -> LeP O E E' A B -> LeP O E E' AMC BMC.
Lemma ang_exists : forall A B C, A <> B -> C <> B -> exists a, Q_CongA a /\ a A B C.
Lemma ex_points_ang : forall a , Q_CongA a -> exists A, exists B, exists C, a A B C.
Lemma ex_sums : forall A B C D, exists E F, SumS A B C D E F.
Lemma sums_sym : forall A B C D E F, SumS A B C D E F -> SumS C D A B E F.
Lemma sums2__cong56 : forall A B C D E F E' F', SumS A B C D E F -> SumS A B C D E' F' -> Cong E F E' F'.
Lemma sums2__cong12 : forall A B C D E F A' B', SumS A B C D E F -> SumS A' B' C D E F -> Cong A B A' B'.
Lemma sums2__cong34 : forall A B C D E F C' D', SumS A B C D E F -> SumS A B C' D' E F -> Cong C D C' D'.
Lemma cong3_sums__sums : forall A B C D E F A' B' C' D' E' F', Cong A B A' B' -> Cong C D C' D' -> Cong E F E' F' -> SumS A B C D E F -> SumS A' B' C' D' E' F'.
Lemma sums123312 : forall A B C, SumS A B C C A B.
Lemma sums__cong1245 : forall A B C D E, SumS A B C C D E -> Cong A B D E.
Lemma sums__eq34 : forall A B C D, SumS A B C D A B -> C = D.
Lemma sums112323 : forall A B C, SumS A A B C B C.
Lemma sums__cong2345 : forall A B C D E, SumS A A B C D E -> Cong B C D E.
Lemma sums__eq12 : forall A B C D, SumS A B C D C D -> A = B.
Lemma sums_left_comm : forall A B C D E F, SumS A B C D E F -> SumS B A C D E F.
Lemma sums_middle_comm : forall A B C D E F, SumS A B C D E F -> SumS A B D C E F.
Lemma sums_right_comm : forall A B C D E F, SumS A B C D E F -> SumS A B C D F E.
Lemma sums_comm : forall A B C D E F, SumS A B C D E F -> SumS B A D C F E.
Lemma bet__sums : forall A B C, Bet A B C -> SumS A B B C A C.
Lemma sums_assoc_1 : forall A B C D E F G H I J K L, SumS A B C D G H -> SumS C D E F I J -> SumS G H E F K L -> SumS A B I J K L.
Lemma sums_assoc_2 : forall A B C D E F G H I J K L, SumS A B C D G H -> SumS C D E F I J -> SumS A B I J K L -> SumS G H E F K L.
Lemma sums_assoc : forall A B C D E F G H I J K L, SumS A B C D G H -> SumS C D E F I J -> (SumS G H E F K L <-> SumS A B I J K L).
Lemma sums__le1256 : forall A B C D E F, SumS A B C D E F -> Le A B E F.
Lemma sums__le3456 : forall A B C D E F, SumS A B C D E F -> Le C D E F.
Lemma eq_sums__eq : forall A B C D E, SumS A B C D E E -> A = B /\ C = D.
Lemma sums_diff_1 : forall A B C D E F, A <> B -> SumS A B C D E F -> E <> F.
Lemma sums_diff_2 : forall A B C D E F, C <> D -> SumS A B C D E F -> E <> F.
Lemma le2_sums2__le : forall A B C D E F A' B' C' D' E' F', Le A B A' B' -> Le C D C' D' -> SumS A B C D E F -> SumS A' B' C' D' E' F' -> Le E F E' F'.
Lemma le2_sums2__cong12 : forall A B C D E F A' B' C' D', Le A B A' B' -> Le C D C' D' -> SumS A B C D E F -> SumS A' B' C' D' E F -> Cong A B A' B'.
Lemma le2_sums2__cong34 : forall A B C D E F A' B' C' D', Le A B A' B' -> Le C D C' D' -> SumS A B C D E F -> SumS A' B' C' D' E F -> Cong C D C' D'.
Lemma le_lt12_sums2__lt : forall A B C D E F A' B' C' D' E' F', Lt A B A' B' -> Le C D C' D' -> SumS A B C D E F -> SumS A' B' C' D' E' F' -> Lt E F E' F'.
Lemma le_lt34_sums2__lt : forall A B C D E F A' B' C' D' E' F', Le A B A' B' -> Lt C D C' D' -> SumS A B C D E F -> SumS A' B' C' D' E' F' -> Lt E F E' F'.
Lemma lt2_sums2__lt : forall A B C D E F A' B' C' D' E' F', Lt A B A' B' -> Lt C D C' D' -> SumS A B C D E F -> SumS A' B' C' D' E' F' -> Lt E F E' F'.
Lemma le2_sums2__le12 : forall A B C D E F A' B' C' D' E' F', Le C' D' C D -> Le E F E' F' -> SumS A B C D E F -> SumS A' B' C' D' E' F' -> Le A B A' B'.
Lemma le2_sums2__le34 : forall A B C D E F A' B' C' D' E' F', Le A' B' A B -> Le E F E' F' -> SumS A B C D E F -> SumS A' B' C' D' E' F' -> Le C D C' D'.
Lemma le_lt34_sums2__lt12 : forall A B C D E F A' B' C' D' E' F', Lt C' D' C D -> Le E F E' F' -> SumS A B C D E F -> SumS A' B' C' D' E' F' -> Lt A B A' B'.
Lemma le_lt12_sums2__lt34 : forall A B C D E F A' B' C' D' E' F', Lt A' B' A B -> Le E F E' F' -> SumS A B C D E F -> SumS A' B' C' D' E' F' -> Lt C D C' D'.
Lemma le_lt56_sums2__lt12 : forall A B C D E F A' B' C' D' E' F', Le C' D' C D -> Lt E F E' F' -> SumS A B C D E F -> SumS A' B' C' D' E' F' -> Lt A B A' B'.
Lemma le_lt56_sums2__lt34 : forall A B C D E F A' B' C' D' E' F', Le A' B' A B -> Lt E F E' F' -> SumS A B C D E F -> SumS A' B' C' D' E' F' -> Lt C D C' D'.
Lemma lt2_sums2__lt12 : forall A B C D E F A' B' C' D' E' F', Lt C' D' C D -> Lt E F E' F' -> SumS A B C D E F -> SumS A' B' C' D' E' F' -> Lt A B A' B'.
Lemma lt2_sums2__lt34 : forall A B C D E F A' B' C' D' E' F', Lt A' B' A B -> Lt E F E' F' -> SumS A B C D E F -> SumS A' B' C' D' E' F' -> Lt C D C' D'.
Lemma suma_distincts : forall A B C D E F G H I, SumA A B C D E F G H I -> A<>B /\ B<>C /\ D<>E /\ E<>F /\ G<>H /\ H<>I.
Lemma trisuma_distincts : forall A B C D E F, TriSumA A B C D E F -> A <> B /\ B <> C /\ A <> C /\ D <> E /\ E <> F.
Lemma ex_suma : forall A B C D E F, A<>B -> B<>C -> D<>E -> E<>F -> exists G H I, SumA A B C D E F G H I.
Lemma suma2__conga : forall A B C D E F G H I G' H' I', SumA A B C D E F G H I -> SumA A B C D E F G' H' I' -> CongA G H I G' H' I'.
Lemma suma_sym : forall A B C D E F G H I, SumA A B C D E F G H I -> SumA D E F A B C G H I.
Lemma conga3_suma__suma : forall A B C D E F G H I A' B' C' D' E' F' G' H' I', SumA A B C D E F G H I -> CongA A B C A' B' C' -> CongA D E F D' E' F' -> CongA G H I G' H' I' -> SumA A' B' C' D' E' F' G' H' I'.
Lemma out6_suma__suma : forall A B C D E F G H I A' C' D' F' G' I', SumA A B C D E F G H I -> Out B A A' -> Out B C C' -> Out E D D' -> Out E F F' -> Out H G G' -> Out H I I' -> SumA A' B C' D' E F' G' H I'.
Lemma out546_suma__conga : forall A B C D E F G H I, SumA A B C D E F G H I -> Out E D F -> CongA A B C G H I.
Lemma out546__suma : forall A B C D E F, A <> B -> B <> C -> Out E D F -> SumA A B C D E F A B C.
Lemma out213_suma__conga : forall A B C D E F G H I, SumA A B C D E F G H I -> Out B A C -> CongA D E F G H I.
Lemma out213__suma : forall A B C D E F, D <> E -> E <> F -> Out B A C -> SumA A B C D E F D E F.
Lemma suma_left_comm : forall A B C D E F G H I, SumA A B C D E F G H I -> SumA C B A D E F G H I.
Lemma suma_middle_comm : forall A B C D E F G H I, SumA A B C D E F G H I -> SumA A B C F E D G H I.
Lemma suma_right_comm : forall A B C D E F G H I, SumA A B C D E F G H I -> SumA A B C D E F I H G.
Lemma suma_comm : forall A B C D E F G H I, SumA A B C D E F G H I -> SumA C B A F E D I H G.
Lemma ts__suma : forall A B C D, TS A B C D -> SumA C B A A B D C B D.
Lemma inangle__suma : forall A B C P, InAngle P A B C -> SumA A B P P B C A B C.
Lemma bet__suma : forall A B C P, A <> B -> B <> C -> P <> B -> Bet A B C -> SumA A B P P B C A B C.
Lemma sams_chara : forall A B C D E F A', A<>B -> A'<>B -> Bet A B A' -> (SAMS A B C D E F <-> LeA D E F C B A').
Lemma sams_distincts : forall A B C D E F, SAMS A B C D E F -> A<>B /\ B<>C /\ D<>E /\ E<>F.
Lemma sams_sym : forall A B C D E F, SAMS A B C D E F -> SAMS D E F A B C.
Lemma sams_right_comm : forall A B C D E F, SAMS A B C D E F -> SAMS A B C F E D.
Lemma sams_left_comm : forall A B C D E F, SAMS A B C D E F -> SAMS C B A D E F.
Lemma sams_comm : forall A B C D E F, SAMS A B C D E F -> SAMS C B A F E D.
Lemma conga2_sams__sams : forall A B C D E F A' B' C' D' E' F', CongA A B C A' B' C' -> CongA D E F D' E' F' -> SAMS A B C D E F -> SAMS A' B' C' D' E' F'.
Lemma out546__sams : forall A B C D E F, A <> B -> B <> C -> Out E D F -> SAMS A B C D E F.
Lemma out213__sams : forall A B C D E F, D <> E -> E <> F -> Out B A C -> SAMS A B C D E F.
Lemma bet_suma__sams : forall A B C D E F G H I, SumA A B C D E F G H I -> Bet G H I -> SAMS A B C D E F.
Lemma bet__sams : forall A B C P, A <> B -> B <> C -> P <> B -> Bet A B C -> SAMS A B P P B C.
Lemma suppa__sams : forall A B C D E F, SuppA A B C D E F -> SAMS A B C D E F.
Lemma inangle__sams : forall A B C P, InAngle P A B C -> SAMS A B P P B C.
Lemma PlgLeft: forall A B C D, Plg A B C D -> (A <> C \/ B <> D).
Lemma PlgEquivDef: forall A B C D, (A <> C \/ B <> D) -> ((exists M, OnCircle C M A /\ OnCircle D M B /\ Bet C M A /\ Bet D M B) <-> Plg A B C D).
Lemma PlgAABB: forall A B, A <> B -> Plg A A B B.
Lemma PlgEx: exists A B C D, Plg A B C D.
Lemma RhombusEx: exists A B C D, Rhombus A B C D.
Lemma RhombusUnicity: forall A B C D E, Rhombus A B C D -> Rhombus A B C E -> D = E.
Lemma ColCongMid: forall A B C, A <> C -> Col A B C -> Cong A B B C -> Midpoint B A C.
Lemma PlgExABC1: forall A B C, A <> C -> Col A B C -> Cong A B B C -> exists D, Plg A B C D.
Lemma PlgExABC2: forall A B C, ~Col A B C -> Cong A B B C -> exists D, Plg A B C D.
Lemma RhombusExABC1: forall A B C, A <> C -> Col A B C -> Cong A B B C -> exists D, Rhombus A B C D.
Lemma RhombusExABC2: forall A B C, ~Col A B C -> Cong A B B C -> exists D, Rhombus A B C D.
Lemma project_id : forall A B X Y P P', Proj P P' A B X Y -> Col A B P -> P = P'.
Lemma project_not_id : forall A B X Y P P', Proj P P' A B X Y -> ~Col A B P -> P <> P'.
Lemma project_col : forall A B X Y P , Proj P P A B X Y -> Col A B P.
Lemma project_not_col : forall A B X Y P P', Proj P P' A B X Y -> P <> P' -> ~Col A B P.
Lemma project_par : forall A B X Y P Q P' Q', Proj P P' A B X Y -> Proj Q Q' A B X Y -> Par P Q X Y -> P' = Q'.
Lemma ker_col : forall P Q P' A B X Y, Proj P P' A B X Y -> Proj Q P' A B X Y -> Col P Q P'.
Lemma ker_par : forall P Q P' A B X Y, P <> Q -> Proj P P' A B X Y -> Proj Q P' A B X Y -> Par P Q X Y.
Lemma project_uniqueness : forall P P' Q' A B X Y, Proj P P' A B X Y -> Proj P Q' A B X Y -> P' = Q'.
Lemma project_existence : forall P A B X Y, X<>Y -> A<>B -> ~ Par X Y A B -> exists! P', Proj P P' A B X Y.
Lemma project_col_eq : forall P Q P' Q' A B X Y, P <> P' -> Col P Q P' -> Proj P P' A B X Y -> Proj Q Q' A B X Y -> P' = Q'.
Lemma par_col_project : forall P P' A B X Y , A <> B -> ~ Par A B X Y -> Par P P' X Y -> Col A B P' -> Proj P P' A B X Y.
Lemma project_preserves_bet : forall A B X Y P Q R P' Q' R', Bet P Q R -> Proj P P' A B X Y -> Proj Q Q' A B X Y -> Proj R R' A B X Y -> Bet P' Q' R'.
Lemma triangle_par : forall A B C A' B' C', ~ Col A B C -> Par A B A' B' -> Par B C B' C' -> Par A C A' C' -> CongA A B C A' B' C'.
Lemma par3_conga3 : forall A B C A' B' C', ~ Col A B C -> Par A B A' B' -> Par B C B' C' -> Par A C A' C' -> CongA_3 A B C A' B' C'.
Lemma cong_conga3_cong3 : forall A B C A' B' C', ~ Col A B C -> Cong A B A' B' -> CongA_3 A B C A' B' C' -> Cong_3 A B C A' B' C'.
Lemma project_par_eqv : forall P P' Q Q' A B X Y, Proj P P' A B X Y -> Proj Q Q' A B X Y -> Par P Q A B -> EqV P Q P' Q'.
Lemma eqv_project_eq_eq : forall P Q R S P' Q' S' A B X Y, EqV P Q R S -> Proj P P' A B X Y -> Proj Q Q' A B X Y -> Proj R P' A B X Y -> Proj S S' A B X Y -> Q' = S'.
Lemma eqv_eq_project : forall P Q R S P' Q' A B X Y, EqV P Q R S -> Proj P P' A B X Y -> Proj Q Q' A B X Y -> Proj R P' A B X Y -> Proj S Q' A B X Y.
Lemma project_par_dir : forall P P' A B X Y, P <> P' -> Proj P P' A B X Y -> Par P P' X Y.
Lemma project_idem : forall P P' A B X Y, Proj P P' A B X Y -> Proj P' P' A B X Y.
Lemma eqv_cong : forall A B C D, EqV A B C D -> Cong A B C D.
Lemma project_preserves_eqv : forall P Q R S P' Q' R' S' A B X Y, EqV P Q R S -> Proj P P' A B X Y -> Proj Q Q' A B X Y -> Proj R R' A B X Y -> Proj S S' A B X Y -> EqV P' Q' R' S'.
Lemma perp_projp : forall P P' A B, Perp_at P' A B P P' -> Projp P P' A B.
Lemma proj_distinct : forall P P' A B, Projp P P' A B -> P' <> A \/ P' <> B.
Lemma projp_is_project : forall P P' A B, Projp P P' A B -> exists X, exists Y, Proj P P' A B X Y.
Lemma projp_is_project_perp : forall P P' A B, Projp P P' A B -> exists X, exists Y, Proj P P' A B X Y /\ Perp A B X Y.
Lemma projp_to_project : forall P P' A B X Y, Perp A B X Y -> Projp P P' A B -> Proj P P' A B X Y.
Lemma project_to_projp : forall P P' A B X Y, Proj P P' A B X Y -> Perp A B X Y -> Projp P P' A B.
Lemma projp_project_to_perp : forall P P' A B X Y, P <> P' -> Projp P P' A B -> Proj P P' A B X Y -> Perp A B X Y.
Lemma project_par_project : forall P P' A B X Y X' Y', Proj P P' A B X Y -> Par X Y X' Y' -> Proj P P' A B X' Y'.
Lemma project_project_par : forall P P' A B X Y X' Y', P <> P' -> Proj P P' A B X Y -> Proj P P' A B X' Y' -> Par X Y X' Y'.
Lemma projp_id : forall P P' Q' A B, Projp P P' A B -> Projp P Q' A B -> P' = Q'.
Lemma projp_preserves_bet : forall A B C A' B' C' X Y, Bet A B C -> Projp A A' X Y -> Projp B B' X Y -> Projp C C' X Y -> Bet A' B' C'.
Lemma projp_preserves_eqv : forall A B C A' B' C' D D' X Y, EqV A B C D -> Projp A A' X Y -> Projp B B' X Y -> Projp C C' X Y -> Projp D D' X Y -> EqV A' B' C' D'.
Lemma projp_idem : forall P P' A B, Projp P P' A B -> Projp P' P' A B.
Lemma projp2_col : forall A B C P Q, Projp P A B C -> Projp Q A B C -> Col A P Q.
Lemma projp_projp_perp : forall P P1 P2 Q1 Q2, P1 <> P2 -> Projp P1 P Q1 Q2 -> Projp P2 P Q1 Q2 -> Perp P1 P2 Q1 Q2.
Lemma col_projp_eq : forall A B P P', Col A B P -> Projp P P' A B -> P = P'.
Lemma projp_col : forall A B P P', Projp P P' A B -> Col A B P'.
Lemma perp_projp2_eq : forall A A' B B' C D, Projp A A' C D -> Projp B B' C D -> Perp A B C D -> A' = B'.
Lemma col_par_projp2_eq : forall L11 L12 L21 L22 P P' P'', Col L11 L12 P -> Par L11 L12 L21 L22 -> Projp P P' L21 L22 -> Projp P' P'' L11 L12 -> P = P''.
Lemma col_2_par_projp2_cong : forall A A' B B' L11 L12 L21 L22, Col L11 L12 A' -> Col L11 L12 B' -> Par L11 L12 L21 L22 -> Projp A' A L21 L22 -> Projp B' B L21 L22 -> Cong A B A' B'.
Lemma cong_identity_inv : forall A B C, A <> B -> ~ Cong A B C C.
Lemma midpoint_midpoint_col : forall A B A' B' M, A <> B -> Midpoint M A A' -> Midpoint M B B' -> Col A B B' -> A' <> B' /\ Col A A' B' /\ Col B A' B'.
Lemma midpoint_par_strict : forall A B A' B' M, A <> B -> ~ Col A B B' -> Midpoint M A A' -> Midpoint M B B' -> Par_strict A B A' B'.
Lemma bet3_cong3_bet : forall A B C D D', A <> B -> A <> C -> A <> D -> Bet D A C -> Bet A C B -> Bet D C D' -> Cong A B C D -> Cong A D B C -> Cong D C C D' -> Bet C B D'.
Lemma bet_double_bet : forall A B C B' C', Midpoint B' A B -> Midpoint C' A C -> Bet A B' C' -> Bet A B C.
Lemma bet_half_bet : forall A B C B' C', Bet A B C -> Midpoint B' A B -> Midpoint C' A C -> Bet A B' C'.
Lemma midpoint_preserves_bet : forall A B C B' C', Midpoint B' A B -> Midpoint C' A C -> (Bet A B C <-> Bet A B' C').
Lemma symmetry_preseves_bet1 : forall A B M A' B', Midpoint M A A' -> Midpoint M B B' -> Bet M A B -> Bet M A' B'.
Lemma symmetry_preseves_bet2 : forall A B M A' B', Midpoint M A A' -> Midpoint M B B' -> Bet M A' B' -> Bet M A B.
Lemma symmetry_preserves_bet : forall A B M A' B', Midpoint M A A' -> Midpoint M B B' -> (Bet M A' B' <-> Bet M A B).
Lemma bet_cong_bet : forall A B C D, A <> B -> Bet A B C -> Bet A B D -> Cong A C B D -> Bet B C D.
Lemma col_cong_mid : forall A B A' B', Par A B A' B' -> ~ Par_strict A B A' B' -> Cong A B A' B' -> exists M, Midpoint M A A' /\ Midpoint M B B' \/ Midpoint M A B' /\ Midpoint M B A'.
Lemma mid_par_cong1 : forall A B A' B' M, A <> B -> Midpoint M A A' -> Midpoint M B B' -> Cong A B A' B' /\ Par A B A' B'.
Lemma mid_par_cong2 : forall A B A' B' M, A <> B' -> Midpoint M A A' -> Midpoint M B B' -> Cong A B' A' B /\ Par A B' A' B.
Lemma mid_par_cong : forall A B A' B' M, A <> B -> A <> B' -> Midpoint M A A' -> Midpoint M B B' -> Cong A B A' B' /\ Cong A B' A' B /\ Par A B A' B' /\ Par A B' A' B.
Lemma Parallelogram_strict_Parallelogram : forall A B C D, Parallelogram_strict A B C D -> Parallelogram A B C D.
Lemma plgf_permut : forall A B C D, Parallelogram_flat A B C D -> Parallelogram_flat B C D A.
Lemma plgf_sym : forall A B C D, Parallelogram_flat A B C D -> Parallelogram_flat C D A B.
Lemma plgf_irreflexive : forall A B, ~ Parallelogram_flat A B A B.
Lemma plgs_irreflexive : forall A B, ~ Parallelogram_strict A B A B.
Lemma plg_irreflexive : forall A B, ~ Parallelogram A B A B.
Lemma plgf_mid : forall A B C D, Parallelogram_flat A B C D -> exists M, Midpoint M A C /\ Midpoint M B D.
Lemma mid_plgs : forall A B C D M, ~ Col A B C -> Midpoint M A C -> Midpoint M B D -> Parallelogram_strict A B C D.
Lemma mid_plgf_aux : forall A B C D M, A <> C -> Col A B C -> Midpoint M A C -> Midpoint M B D -> Parallelogram_flat A B C D.
Lemma mid_plgf : forall A B C D M, (A <> C \/ B <> D ) -> Col A B C -> Midpoint M A C -> Midpoint M B D -> Parallelogram_flat A B C D.
Lemma mid_plg : forall A B C D M, (A <> C \/ B <> D ) -> Midpoint M A C -> Midpoint M B D -> Parallelogram A B C D.
Lemma mid_plg_1 : forall A B C D M, A <> C -> Midpoint M A C -> Midpoint M B D -> Parallelogram A B C D.
Lemma mid_plg_2 : forall A B C D M, B <> D -> Midpoint M A C -> Midpoint M B D -> Parallelogram A B C D.
Lemma midpoint_cong_uniqueness : forall A B C D M, Col A B C -> Midpoint M A B /\ Midpoint M C D -> Cong A B C D -> A = C /\ B = D \/ A = D /\ B = C.
Lemma plgf_not_comm : forall A B C D, A <> B -> Parallelogram_flat A B C D -> ~ Parallelogram_flat A B D C /\ ~ Parallelogram_flat B A C D.
Lemma plgf_cong : forall A B C D, Parallelogram_flat A B C D -> Cong A B C D /\ Cong A D B C.
Lemma plg_to_parallelogram : forall A B C D, Plg A B C D -> Parallelogram A B C D.
Lemma plgs_one_side : forall A B C D, Parallelogram_strict A B C D -> OS A B C D /\ OS C D A B.
Lemma parallelogram_strict_not_col : forall A B C D, Parallelogram_strict A B C D -> ~ Col A B C.
Lemma parallelogram_strict_not_col_2 : forall A B C D, Parallelogram_strict A B C D -> ~ Col B C D.
Lemma parallelogram_strict_not_col_3 : forall A B C D, Parallelogram_strict A B C D -> ~ Col C D A.
Lemma parallelogram_strict_not_col_4 : forall A B C D, Parallelogram_strict A B C D -> ~ Col A B D.
Lemma plgs__pars : forall A B C D, Parallelogram_strict A B C D -> Par_strict A B C D.
Lemma plgs_sym : forall A B C D, Parallelogram_strict A B C D -> Parallelogram_strict C D A B.
Lemma plg_sym : forall A B C D, Parallelogram A B C D -> Parallelogram C D A B.
Lemma Rhombus_Plg : forall A B C D, Rhombus A B C D -> Plg A B C D.
Lemma Rectangle_Plg : forall A B C D, Rectangle A B C D -> Plg A B C D.
Lemma Rectangle_Parallelogram : forall A B C D, Rectangle A B C D -> Parallelogram A B C D.
Lemma plg_cong_rectangle : forall A B C D, Plg A B C D -> Cong A C B D -> Rectangle A B C D.
Lemma plg_trivial : forall A B, A <> B -> Parallelogram A B B A.
Lemma plg_trivial1 : forall A B, A <> B -> Parallelogram A A B B.
Lemma col_not_plgs : forall A B C D, Col A B C -> ~Parallelogram_strict A B C D.
Lemma plg_col_plgf : forall A B C D, Col A B C -> Parallelogram A B C D -> Parallelogram_flat A B C D.
Lemma plg_bet1 : forall A B C D, Parallelogram A B C D -> Bet A C B -> Bet D A C.
Lemma plgf_trivial1 : forall A B, A <> B -> Parallelogram_flat A B B A.
Lemma plgf_trivial2 : forall A B, A <> B -> Parallelogram_flat A A B B.
Lemma plgf_not_point : forall A B, Parallelogram_flat A A B B -> A <> B.
Lemma plgf_trivial_neq : forall A C D, Parallelogram_flat A A C D -> C = D /\ A <> C.
Lemma plgf_trivial_trans : forall A B C, Parallelogram_flat A A B B -> Parallelogram_flat B B C C -> Parallelogram_flat A A C C \/ A = C.
Lemma plgf_trivial : forall A B, A <> B -> Parallelogram_flat A B B A.
Lemma plgf3_mid : forall A B C, Parallelogram_flat A B A C -> Midpoint A B C.
Lemma cong3_id : forall A B C D, A <> B -> Col A B C -> Col A B D -> Cong A B C D -> Cong A D B C -> Cong A C B D -> A = D /\ B = C \/ A = C /\ B = D.
Lemma col_cong_mid1 : forall A B C D, A <> D -> Col A B C -> Col A B D -> Cong A B C D -> Cong A C B D -> exists M, Midpoint M A D /\ Midpoint M B C.
Lemma col_cong_mid2 : forall A B C D, A <> C -> Col A B C -> Col A B D -> Cong A B C D -> Cong A D B C -> exists M, Midpoint M A C /\ Midpoint M B D.
Lemma plgs_not_col : forall A B C D, Parallelogram_strict A B C D -> ~ Col A B C /\ ~ Col B C D /\ ~ Col C D A /\ ~ Col A B D.
Lemma not_col_sym_not_col : forall A B B' C , ~Col A B C -> Midpoint A B B' -> ~Col A B' C.
Lemma plg_existence : forall A B C, A <> B -> exists D, Parallelogram A B C D.
Lemma plgs_diff : forall A B C D, Parallelogram_strict A B C D -> Parallelogram_strict A B C D /\ A <> B /\ B <> C /\ C <> D /\ D <> A /\ A <> C /\ B <> D.
Lemma sym_par : forall A B M, A <> B -> forall A' B', Midpoint M A A' -> Midpoint M B B' -> Par A B A' B'.
Lemma symmetry_preserves_two_sides : forall A B X Y M A' B', Col X Y M -> TS X Y A B -> Midpoint M A A' -> Midpoint M B B' -> TS X Y A' B'.
Lemma symmetry_preserves_one_side : forall A B X Y M A' B', Col X Y M -> OS X Y A B -> Midpoint M A A' -> Midpoint M B B' -> OS X Y A' B'.
Lemma plgf_bet : forall A B A' B', Parallelogram_flat A B B' A' -> Bet A' B' A /\ Bet B' A B \/ Bet A' A B' /\ Bet A B' B \/ Bet A A' B /\ Bet A' B B' \/ Bet A B A' /\ Bet B A' B'.
Lemma plgs_existence : forall A B, A <> B -> exists C, exists D, Parallelogram_strict A B C D.
Lemma Rectangle_not_triv : forall A, ~ Rectangle A A A A.
Lemma Rectangle_triv : forall A B, A<>B -> Rectangle A A B B.
Lemma Rectangle_not_triv_2 : forall A B, ~ Rectangle A B A B.
Lemma Square_not_triv : forall A, ~ Square A A A A.
Lemma Square_not_triv_2 : forall A B, ~ Square A A B B.
Lemma Square_not_triv_3 : forall A B, ~ Square A B A B.
Lemma Square_Rectangle : forall A B C D, Square A B C D -> Rectangle A B C D.
Lemma Square_Parallelogram : forall A B C D, Square A B C D -> Parallelogram A B C D.
Lemma Rhombus_Rectangle_Square : forall A B C D, Rhombus A B C D -> Rectangle A B C D -> Square A B C D.
Lemma rhombus_cong_square : forall A B C D, Rhombus A B C D -> Cong A C B D -> Square A B C D.
Lemma Kite_comm : forall A B C D, Kite A B C D -> Kite C D A B.
Lemma defect_distincts : forall A B C D E F, Defect A B C D E F -> A <> B /\ B <> C /\ A <> C /\ D <> E /\ E <> F.
Lemma ex_defect : forall A B C, A <> B -> B <> C -> A <> C -> exists D E F, Defect A B C D E F.
Lemma conga_defect__defect : forall A B C D E F D' E' F', Defect A B C D E F -> CongA D E F D' E' F' -> Defect A B C D' E' F'.
Lemma defect2__conga : forall A B C D E F D' E' F', Defect A B C D E F -> Defect A B C D' E' F' -> CongA D E F D' E' F'.
Lemma defect_perm_231 : forall A B C D E F, Defect A B C D E F -> Defect B C A D E F.
Lemma defect_perm_312 : forall A B C D E F, Defect A B C D E F -> Defect C A B D E F.
Lemma defect_perm_321 : forall A B C D E F, Defect A B C D E F -> Defect C B A D E F.
Lemma defect_perm_213 : forall A B C D E F, Defect A B C D E F -> Defect B A C D E F.
Lemma defect_perm_132 : forall A B C D E F, Defect A B C D E F -> Defect A C B D E F.
Lemma conga3_defect__defect : forall A B C D E F A' B' C', Defect A B C D E F -> CongA A B C A' B' C' -> CongA B C A B' C' A' -> CongA C A B C' A' B' -> Defect A' B' C' D E F.
Lemma col_defect__out : forall A B C D E F, Col A B C -> Defect A B C D E F -> Out E D F.
Lemma rah_defect__out : hypothesis_of_right_saccheri_quadrilaterals -> forall A B C D E F, Defect A B C D E F -> Out E D F.
Lemma defect_ncol_out__rah : forall A B C D E F, ~ Col A B C -> Defect A B C D E F -> Out E D F -> hypothesis_of_right_saccheri_quadrilaterals.
Lemma t22_16_1 : ~ hypothesis_of_obtuse_saccheri_quadrilaterals -> forall A B C C1 D E F G H I K L M, Bet A C1 C -> Defect A B C1 D E F -> Defect B C1 C G H I -> SumA D E F G H I K L M -> SAMS D E F G H I /\ Defect A B C K L M.
Lemma t22_16_1bis : ~ hypothesis_of_obtuse_saccheri_quadrilaterals -> forall A B C C1 D E F G H I K L M, Bet A C1 C -> Defect A B C1 D E F -> Defect B C1 C G H I -> Defect A B C K L M -> SAMS D E F G H I /\ SumA D E F G H I K L M.
Lemma t22_16_2aux : ~ hypothesis_of_obtuse_saccheri_quadrilaterals -> forall A B C D A1 A2 A3 B1 B2 B3 C1 C2 C3 D1 D2 D3 O P Q R, Defect A B C D1 D2 D3 -> Defect A B D C1 C2 C3 -> Defect A D C B1 B2 B3 -> Defect C B D A1 A2 A3 -> Bet A O C -> Bet B O D -> Col A B C -> SumA D1 D2 D3 B1 B2 B3 P Q R -> SAMS C1 C2 C3 A1 A2 A3 /\ SumA C1 C2 C3 A1 A2 A3 P Q R.
Lemma t22_16_2aux1 : ~ hypothesis_of_obtuse_saccheri_quadrilaterals -> forall A B C D A1 A2 A3 B1 B2 B3 C1 C2 C3 D1 D2 D3 O P Q R, Defect A B C D1 D2 D3 -> Defect A B D C1 C2 C3 -> Defect A D C B1 B2 B3 -> Defect C B D A1 A2 A3 -> Bet A O C -> Bet B O D -> Col A B D -> SumA D1 D2 D3 B1 B2 B3 P Q R -> SAMS C1 C2 C3 A1 A2 A3 /\ SumA C1 C2 C3 A1 A2 A3 P Q R.
Lemma t22_16_2 : ~ hypothesis_of_obtuse_saccheri_quadrilaterals -> forall A B C D A1 A2 A3 B1 B2 B3 C1 C2 C3 D1 D2 D3 O P Q R, Defect A B C D1 D2 D3 -> Defect A B D C1 C2 C3 -> Defect A D C B1 B2 B3 -> Defect C B D A1 A2 A3 -> Bet A O C -> Bet B O D -> SAMS D1 D2 D3 B1 B2 B3 -> SumA D1 D2 D3 B1 B2 B3 P Q R -> SAMS C1 C2 C3 A1 A2 A3 /\ SumA C1 C2 C3 A1 A2 A3 P Q R.
Lemma inc112 : forall A B, InCircle A A B.
Lemma onc212 : forall A B, OnCircle B A B.
Lemma onc_sym : forall A B P, OnCircle P A B -> OnCircle B A P.
Lemma ninc__outcs : forall X O P, ~ InCircle X O P -> OutCircleS X O P.
Lemma inc__outc : forall A B P, InCircle P A B <-> OutCircle B A P.
Lemma incs__outcs : forall A B P, InCircleS P A B <-> OutCircleS B A P.
Lemma onc__inc : forall A B P, OnCircle P A B -> InCircle P A B.
Lemma onc__outc : forall A B P, OnCircle P A B -> OutCircle P A B.
Lemma inc_outc__onc : forall A B P, InCircle P A B -> OutCircle P A B -> OnCircle P A B.
Lemma incs__inc : forall A B P, InCircleS P A B -> InCircle P A B.
Lemma outcs__outc : forall A B P, OutCircleS P A B -> OutCircle P A B.
Lemma incs__noutc : forall A B P, InCircleS P A B <-> ~ OutCircle P A B.
Lemma outcs__ninc : forall A B P, OutCircleS P A B <-> ~ InCircle P A B.
Lemma inc__noutcs : forall A B P, InCircle P A B <-> ~ OutCircleS P A B.
Lemma outc__nincs : forall A B P, OutCircle P A B <-> ~ InCircleS P A B.
Lemma inc_eq : forall A P, InCircle P A A -> A = P.
Lemma outc_eq : forall A B, OutCircle A A B -> A = B.
Lemma onc2__cong : forall O P A B, OnCircle A O P -> OnCircle B O P -> Cong O A O B.
Lemma trisuma__bet : forall A B C D E F, TriSumA A B C D E F -> Bet D E F.
Lemma bet__trisuma : forall A B C D E F, Bet D E F -> A <> B -> B <> C -> A <> C -> D <> E -> E <> F -> TriSumA A B C D E F.
Lemma right_saccheris : forall A B C D, Saccheri A B C D -> Per A B C.
Lemma not_obtuse_saccheris : ~ hypothesis_of_obtuse_saccheri_quadrilaterals.
Lemma suma123231__sams : forall A B C D E F, SumA A B C B C A D E F -> SAMS D E F C A B.
Lemma bet_suma__suma : forall A B C D E F G H I, G <> H -> H <> I -> Bet G H I -> SumA A B C B C A D E F -> SumA D E F C A B G H I.
Lemma high_school_exterior_angle_theorem : forall A B C B', A <> B -> B <> C -> A <> C -> A <> B' -> Bet B A B' -> SumA A B C B C A C A B'.
Lemma thales_theorem : forall A B C M, ~ Col A B C -> Midpoint M A B -> Cong M A M C -> Per A C B.
Lemma thales_converse_theorem : forall A B C M, A <> C -> B <> C -> Midpoint M A B -> Per A C B -> Cong M A M C.
Lemma bet_cong__ghalfa : forall A B C B', A <> B -> B <> C -> A <> B' -> Bet B A B' -> Cong A B A C -> gHalfA A B C C A B'.
Lemma onc3_os__acute : forall O P A B C, OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> OS A B O C -> Acute A C B.
Lemma inscribed_angle_aux : forall O P A B C, OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> OS A B O C -> TS O C A B -> gHalfA A C B A O B.
Lemma inscribed_angle_aux1 : forall O P A B C, OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> OS A B O C -> OS O C A B -> gHalfA A C B A O B.
Lemma inscribed_angle : forall O P A B C, OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> OS A B O C -> gHalfA A C B A O B.
Lemma diam_onc2_ts__suppa : forall O P A B C C', OnCircle A O P -> OnCircle B O P -> Diam C C' O P -> TS A B C C' -> SuppA A C B A C' B.
Lemma inscribed_angle_1 : forall O P A B C, A <> B -> B <> C -> A <> C -> OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> Coplanar A B C O -> SumA A C B A C B A O B.
Lemma cop2_onc4__or_conga_suppa : forall O P A B C C', A <> B -> B <> C -> A <> C -> B <> C' -> A <> C' -> OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> OnCircle C' O P -> Coplanar A B C O -> Coplanar A B C' O -> CongA A C B A C' B \/ SuppA A C B A C' B.
Lemma onc3_ts__obtuse : forall O P A B C, OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> TS A B O C -> Obtuse A C B.
Lemma cop_onc4_os__conga : forall O P A B C C', OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> OnCircle C' O P -> OS A B C C' -> Coplanar A B C O -> CongA A C B A C' B.
Lemma cop_onc4_ts__suppa : forall O P A B C C', OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> OnCircle C' O P -> TS A B C C' -> Coplanar A B C O -> SuppA A C B A C' B.
Lemma acute_cop_onc3__os : forall O P A B C, A <> B -> OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> Coplanar A B C O -> Acute A C B -> OS A B O C.
Lemma cop_obtuse_onc3__ts : forall O P A B C, OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> Coplanar A B C O -> Obtuse A C B -> TS A B O C.
Lemma conga_cop2_onc4__os : forall O P A B C D, ~ Col A B O -> OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> OnCircle D O P -> Coplanar A B O C -> Coplanar A B O D -> CongA A C B A D B -> OS A B C D.
Lemma cop2_onc4_suppa__ts : forall O P A B C D, ~ Col A B O -> OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> OnCircle D O P -> Coplanar A B O C -> Coplanar A B O D -> SuppA A C B A D B -> TS A B C D.
Lemma triangle_circumscription : forall A B C, ~ Col A B C -> exists CC : Tpoint, Cong A CC B CC /\ Cong A CC C CC /\ Coplanar A B C CC.
Lemma conga_cop_onc6_os__eq : forall A B C D O P O' P', OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> Coplanar A B C O -> OnCircle A O' P' -> OnCircle B O' P' -> OnCircle D O' P' -> Coplanar A B D O' -> OS A B C D -> CongA A C B A D B -> (O = O' /\ Cong O P O' P').
Lemma conga_cop_onc3_os__onc : forall A B C D O P, OnCircle A O P -> OnCircle B O P -> OnCircle C O P -> Coplanar A B C O -> OS A B C D -> CongA A C B A D B -> OnCircle D O P.
Lemma conga_os__ex_circle : forall A B C D, OS A B C D -> CongA A C B A D B -> exists O P, OnCircle A O P /\ OnCircle B O P /\ OnCircle C O P /\ OnCircle D O P /\ Coplanar A B C O.
Lemma suppa_ts__ex_circle : forall A B C D, TS A B C D -> SuppA A C B A D B -> exists O P, OnCircle A O P /\ OnCircle B O P /\ OnCircle C O P /\ OnCircle D O P /\ Coplanar A B C O.
Lemma suppa_ts2__suppa : forall A B C D, TS A C B D -> TS B D A C -> SuppA A B C A D C -> SuppA B A D B C D.
Lemma chord_par_diam : forall O P A B C C' A' U, O <> P -> ~Col A B C' -> Diam C C' O P -> Midpoint A' A C' -> OnCircle A O P -> OnCircle B O P -> Col A B U -> Perp O U A B -> Par A C' O U -> B = C.
Lemma coplanar_perm_1 : forall A B C D, Coplanar A B C D -> Coplanar A B D C.
Lemma coplanar_perm_2 : forall A B C D, Coplanar A B C D -> Coplanar A C B D.
Lemma coplanar_perm_3 : forall A B C D, Coplanar A B C D -> Coplanar A C D B.
Lemma coplanar_perm_4 : forall A B C D, Coplanar A B C D -> Coplanar A D B C.
Lemma coplanar_perm_5 : forall A B C D, Coplanar A B C D -> Coplanar A D C B.
Lemma coplanar_perm_6 : forall A B C D, Coplanar A B C D -> Coplanar B A C D.
Lemma coplanar_perm_7 : forall A B C D, Coplanar A B C D -> Coplanar B A D C.
Lemma coplanar_perm_8 : forall A B C D, Coplanar A B C D -> Coplanar B C A D.
Lemma coplanar_perm_9 : forall A B C D, Coplanar A B C D -> Coplanar B C D A.
Lemma coplanar_perm_10 : forall A B C D, Coplanar A B C D -> Coplanar B D A C.
Lemma coplanar_perm_11 : forall A B C D, Coplanar A B C D -> Coplanar B D C A.
Lemma coplanar_perm_12 : forall A B C D, Coplanar A B C D -> Coplanar C A B D.
Lemma coplanar_perm_13 : forall A B C D, Coplanar A B C D -> Coplanar C A D B.
Lemma coplanar_perm_14 : forall A B C D, Coplanar A B C D -> Coplanar C B A D.
Lemma coplanar_perm_15 : forall A B C D, Coplanar A B C D -> Coplanar C B D A.
Lemma coplanar_perm_16 : forall A B C D, Coplanar A B C D -> Coplanar C D A B.
Lemma coplanar_perm_17 : forall A B C D, Coplanar A B C D -> Coplanar C D B A.
Lemma coplanar_perm_18 : forall A B C D, Coplanar A B C D -> Coplanar D A B C.
Lemma coplanar_perm_19 : forall A B C D, Coplanar A B C D -> Coplanar D A C B.
Lemma coplanar_perm_20 : forall A B C D, Coplanar A B C D -> Coplanar D B A C.
Lemma coplanar_perm_21 : forall A B C D, Coplanar A B C D -> Coplanar D B C A.
Lemma coplanar_perm_22 : forall A B C D, Coplanar A B C D -> Coplanar D C A B.
Lemma coplanar_perm_23 : forall A B C D, Coplanar A B C D -> Coplanar D C B A.
Lemma ncoplanar_perm_1 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar A B D C.
Lemma ncoplanar_perm_2 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar A C B D.
Lemma ncoplanar_perm_3 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar A C D B.
Lemma ncoplanar_perm_4 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar A D B C.
Lemma ncoplanar_perm_5 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar A D C B.
Lemma ncoplanar_perm_6 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar B A C D.
Lemma ncoplanar_perm_7 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar B A D C.
Lemma ncoplanar_perm_8 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar B C A D.
Lemma ncoplanar_perm_9 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar B C D A.
Lemma ncoplanar_perm_10 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar B D A C.
Lemma ncoplanar_perm_11 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar B D C A.
Lemma ncoplanar_perm_12 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar C A B D.
Lemma ncoplanar_perm_13 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar C A D B.
Lemma ncoplanar_perm_14 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar C B A D.
Lemma ncoplanar_perm_15 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar C B D A.
Lemma ncoplanar_perm_16 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar C D A B.
Lemma ncoplanar_perm_17 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar C D B A.
Lemma ncoplanar_perm_18 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar D A B C.
Lemma ncoplanar_perm_19 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar D A C B.
Lemma ncoplanar_perm_20 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar D B A C.
Lemma ncoplanar_perm_21 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar D B C A.
Lemma ncoplanar_perm_22 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar D C A B.
Lemma ncoplanar_perm_23 : forall A B C D, ~ Coplanar A B C D -> ~ Coplanar D C B A.
Lemma coplanar_trivial : forall A B C, Coplanar A A B C.
Lemma col__coplanar : forall A B C D, Col A B C -> Coplanar A B C D.
Lemma ncop__ncol : forall A B C D, ~ Coplanar A B C D -> ~ Col A B C.
Lemma ncop__ncols : forall A B C D, ~ Coplanar A B C D -> ~ Col A B C /\ ~ Col A B D /\ ~ Col A C D /\ ~ Col B C D.
Lemma bet__coplanar : forall A B C D, Bet A B C -> Coplanar A B C D.
Lemma out__coplanar : forall A B C D, Out A B C -> Coplanar A B C D.
Lemma midpoint__coplanar : forall A B C D, Midpoint A B C -> Coplanar A B C D.
Lemma perp__coplanar : forall A B C D, Perp A B C D -> Coplanar A B C D.
Lemma ts__coplanar : forall A B C D, TS A B C D -> Coplanar A B C D.
Lemma reflectl__coplanar : forall A B C D, ReflectL A B C D -> Coplanar A B C D.
Lemma reflect__coplanar : forall A B C D, Reflect A B C D -> Coplanar A B C D.
Lemma inangle__coplanar : forall A B C D, InAngle A B C D -> Coplanar A B C D.
Lemma pars__coplanar : forall A B C D, Par_strict A B C D -> Coplanar A B C D.
Lemma par__coplanar : forall A B C D, Par A B C D -> Coplanar A B C D.
Lemma plg__coplanar : forall A B C D, Plg A B C D -> Coplanar A B C D.
Lemma plgs__coplanar : forall A B C D, Parallelogram_strict A B C D -> Coplanar A B C D.
Lemma plgf__coplanar : forall A B C D, Parallelogram_flat A B C D -> Coplanar A B C D.
Lemma parallelogram__coplanar : forall A B C D, Parallelogram A B C D -> Coplanar A B C D.
Lemma rhombus__coplanar : forall A B C D, Rhombus A B C D -> Coplanar A B C D.
Lemma rectangle__coplanar : forall A B C D, Rectangle A B C D -> Coplanar A B C D.
Lemma square__coplanar : forall A B C D, Square A B C D -> Coplanar A B C D.
Lemma lambert__coplanar : forall A B C D, Lambert A B C D -> Coplanar A B C D.
Lemma perp_bisect_equiv_def : forall P Q A B, Perp_bisect P Q A B <-> Perp_bisect_bis P Q A B.
Lemma perp_bisect_sym_1 : forall P Q A B, Perp_bisect P Q A B -> Perp_bisect Q P A B.
Lemma perp_bisect_sym_2 : forall P Q A B, Perp_bisect P Q A B -> Perp_bisect P Q B A.
Lemma perp_bisect_sym_3 : forall A B C D, Perp_bisect A B C D -> Perp_bisect B A D C.
Lemma perp_bisect_perp : forall P Q A B, Perp_bisect P Q A B -> Perp P Q A B.
Lemma perp_bisect_cong_1 : forall P Q A B, Perp_bisect P Q A B -> Cong A P B P.
Lemma perp_bisect_cong_2 : forall P Q A B, Perp_bisect P Q A B -> Cong A Q B Q.
Lemma perp_bisect_cong2 : forall P Q A B, Perp_bisect P Q A B -> Cong A P B P /\ Cong A Q B Q.
Lemma perp_bisect_cong : forall A A1 B B1 C C1 O: Tpoint, ~ Col A B C -> Perp_bisect O A1 B C -> Perp_bisect O B1 A C -> Perp_bisect O C1 A B -> Cong A O B O -> Cong B O C O -> Cong A O C O.
Lemma cong_cop_perp_bisect : forall P Q A B, P <> Q -> A <> B -> Coplanar P Q A B -> Cong A P B P -> Cong A Q B Q -> Perp_bisect P Q A B.
Lemma perp_bisect_is_on_perp_bisect : forall A B C P, Is_on_perp_bisect P A B -> Is_on_perp_bisect P B C -> Is_on_perp_bisect P A C.
Lemma perp_mid_perp_bisect : forall A B C D, Midpoint C A B -> Perp C D A B -> Perp_bisect C D A B.
Lemma cong_cop2_perp_bisect_col : forall A B C D E, Coplanar A C D E -> Coplanar B C D E -> Cong C D C E -> Perp_bisect A B D E -> Col A B C.
Lemma perp_bisect_cop2_existence : forall A B C, A <> B -> exists P, exists Q, Perp_bisect P Q A B /\ Coplanar A B C P /\ Coplanar A B C Q.
Lemma perp_bisect_existence : forall A B, A <> B -> exists P, exists Q, Perp_bisect P Q A B.
Lemma perp_bisect_existence_cop : forall A B C, A <> B -> exists P, exists Q, Perp_bisect P Q A B /\ Coplanar A B C P /\ Coplanar A B C Q.
Lemma cong_perp_bisect : forall P Q A B, P <> Q -> A <> B -> Cong A P B P -> Cong A Q B Q -> Perp_bisect P Q A B.
Lemma cong_perp_bisect_col : forall A B C D E, Cong C D C E -> Perp_bisect A B D E -> Col A B C.
Lemma sac_perm : forall A B C D, Saccheri A B C D -> Saccheri D C B A.
Lemma sac_distincts : forall A B C D, Saccheri A B C D -> A <> B /\ B <> C /\ C <> D /\ A <> D /\ A <> C /\ B <> D.
Lemma lam_perm : forall A B C D, Lambert A B C D -> Lambert A D C B.
Lemma sac__cong : forall A B C D, Saccheri A B C D -> Cong A C B D.
Lemma sac__conga : forall A B C D, Saccheri A B C D -> CongA A B C B C D.
Lemma lam__os : forall A B C D, Lambert A B C D -> OS A B C D.
Lemma per2_os__ncol123 : forall A B C D, Per B A D -> Per A D C -> OS A D B C -> ~ Col A B C.
Lemma per2_os__ncol234 : forall A B C D, Per B A D -> Per A D C -> OS A D B C -> ~ Col B C D.
Lemma sac__ncol123 : forall A B C D, Saccheri A B C D -> ~ Col A B C.
Lemma sac__ncol124 : forall A B C D, Saccheri A B C D -> ~ Col A B D.
Lemma sac__ncol134 : forall A B C D, Saccheri A B C D -> ~ Col A C D.
Lemma sac__ncol234 : forall A B C D, Saccheri A B C D -> ~ Col B C D.
Lemma sac__coplanar : forall A B C D, Saccheri A B C D -> Coplanar A B C D.
Lemma lt_os_per2__lta : forall A B C D, Per B A D -> Per A D C -> OS A D B C -> Lt A B C D -> LtA B C D A B C.
Lemma lt4321_os_per2__lta : forall A B C D, Per B A D -> Per A D C -> OS A D B C -> Lt D C B A -> LtA A B C B C D.
Lemma lta_os_per2__lt : forall A B C D, Per B A D -> Per A D C -> OS A D B C -> LtA B C D A B C -> Lt A B C D.
Lemma lta123234_os_per2__lt : forall A B C D, Per B A D -> Per A D C -> OS A D B C -> LtA A B C B C D -> Lt D C B A.
Lemma conga_per2_os__cong : forall A B C D, Per B A D -> Per A D C -> OS A D B C -> CongA B C D A B C -> Cong A B C D.
Lemma mid2_sac__perp_lower : forall A B C D M N, Saccheri A B C D -> Midpoint M B C -> Midpoint N A D -> Perp A D M N.
Lemma mid2_sac__perp_upper : forall A B C D M N, Saccheri A B C D -> Midpoint M B C -> Midpoint N A D -> Perp B C M N.
Lemma sac__par_strict1423 : forall A B C D, Saccheri A B C D -> Par_strict A D B C.
Lemma sac__par_strict1234 : forall A B C D, Saccheri A B C D -> Par_strict A B C D.
Lemma sac__par1423 : forall A B C D, Saccheri A B C D -> Par A D B C.
Lemma sac__par1234 : forall A B C D, Saccheri A B C D -> Par A B C D.
Lemma lam__par_strict1234 : forall A B C D, Lambert A B C D -> Par_strict A B C D.
Lemma lam__par_strict1423 : forall A B C D, Lambert A B C D -> Par_strict A D B C.
Lemma lam__par1234 : forall A B C D, Lambert A B C D -> Par A B C D.
Lemma lam__par1423 : forall A B C D, Lambert A B C D -> Par A D B C.
Lemma mid2_sac__lam6521 : forall A B C D M N, Saccheri A B C D -> Midpoint M B C -> Midpoint N A D -> Lambert N M B A.
Lemma mid2_sac__lam6534 : forall A B C D M N, Saccheri A B C D -> Midpoint M B C -> Midpoint N A D -> Lambert N M C D.
Lemma lam6521_mid2__sac : forall A B C D M N, Lambert N M B A -> Midpoint M B C -> Midpoint N A D -> Saccheri A B C D.
Lemma lam6534_mid2__sac : forall A B C D M N, Lambert N M C D -> Midpoint M B C -> Midpoint N A D -> Saccheri A B C D.
Lemma cong_lam__per : forall A B C D, Lambert A B C D -> Cong A D B C -> Per B C D.
Lemma lam_lt__acute : forall A B C D, Lambert A B C D -> Lt A D B C -> Acute B C D.
Lemma lam_lt__obtuse : forall A B C D, Lambert A B C D -> Lt B C A D -> Obtuse B C D.
Lemma lam_per__cong : forall A B C D, Lambert A B C D -> Per B C D -> Cong A D B C.
Lemma acute_lam__lt : forall A B C D, Lambert A B C D -> Acute B C D -> Lt A D B C.
Lemma lam_obtuse__lt : forall A B C D, Lambert A B C D -> Obtuse B C D -> Lt B C A D.
Lemma cong_sac__per : forall A B C D, Saccheri A B C D -> Cong A D B C <-> Per A B C.
Lemma lt_sac__acute : forall A B C D, Saccheri A B C D -> Lt A D B C <-> Acute A B C.
Lemma lt_sac__obtuse : forall A B C D, Saccheri A B C D -> Lt B C A D <-> Obtuse A B C.
Lemma t22_7__per : forall A B C D P Q, Saccheri A B C D -> Bet B P C -> Bet A Q D -> A <> Q -> B <> P -> P <> C -> Per P Q A -> Cong P Q A B -> Per A B C.
Lemma t22_7__acute : forall A B C D P Q, Saccheri A B C D -> Bet B P C -> Bet A Q D -> A <> Q -> B <> P -> P <> C -> Per P Q A -> Lt P Q A B -> Acute A B C.
Lemma t22_7__obtuse : forall A B C D P Q, Saccheri A B C D -> Bet B P C -> Bet A Q D -> A <> Q -> B <> P -> P <> C -> Per P Q A -> Lt A B P Q -> Obtuse A B C.
Lemma t22_7__cong : forall A B C D P Q, Saccheri A B C D -> Bet B P C -> Bet A Q D -> A <> Q -> B <> P -> P <> C -> Per P Q A -> Per A B C -> Cong P Q A B.
Lemma t22_7__lt5612 : forall A B C D P Q, Saccheri A B C D -> Bet B P C -> Bet A Q D -> A <> Q -> B <> P -> P <> C -> Per P Q A -> Acute A B C -> Lt P Q A B.
Lemma t22_7__lt1256 : forall A B C D P Q, Saccheri A B C D -> Bet B P C -> Bet A Q D -> A <> Q -> B <> P -> P <> C -> Per P Q A -> Obtuse A B C -> Lt A B P Q.
Lemma t22_8__per : forall A B C D R S, Saccheri A B C D -> Bet B C R -> Bet A D S -> C <> R -> Per A S R -> Cong R S A B -> Per A B C.
Lemma t22_8__acute : forall A B C D R S, Saccheri A B C D -> Bet B C R -> Bet A D S -> C <> R -> Per A S R -> Lt A B R S -> Acute A B C.
Lemma t22_8__obtuse : forall A B C D R S, Saccheri A B C D -> Bet B C R -> Bet A D S -> C <> R -> Per A S R -> Lt R S A B -> Obtuse A B C.
Lemma t22_8__cong : forall A B C D R S, Saccheri A B C D -> Bet B C R -> Bet A D S -> C <> R -> Per A S R -> Per A B C -> Cong R S A B.
Lemma t22_8__lt1256 : forall A B C D R S, Saccheri A B C D -> Bet B C R -> Bet A D S -> C <> R -> Per A S R -> Acute A B C -> Lt A B R S.
Lemma t22_8__lt5612 : forall A B C D R S, Saccheri A B C D -> Bet B C R -> Bet A D S -> C <> R -> Per A S R -> Obtuse A B C -> Lt R S A B.
Lemma t22_9__per : forall N M P Q R S, Lambert N M P Q -> Lambert N M R S -> Bet M P R -> Bet N Q S -> (Per S R M <-> Per Q P M).
Lemma t22_9__acute : forall N M P Q R S, Lambert N M P Q -> Lambert N M R S -> Bet M P R -> Bet N Q S -> (Acute S R M <-> Acute Q P M).
Lemma t22_9__obtuse : forall N M P Q R S, Lambert N M P Q -> Lambert N M R S -> Bet M P R -> Bet N Q S -> (Obtuse S R M <-> Obtuse Q P M).
Lemma cong2_lam2__cong : forall N M P Q N' M' P' Q', Lambert N M P Q -> Lambert N' M' P' Q' -> Cong N Q N' Q' -> Cong P Q P' Q' -> Cong N M N' M'.
Lemma cong2_lam2__conga : forall N M P Q N' M' P' Q', Lambert N M P Q -> Lambert N' M' P' Q' -> Cong N Q N' Q' -> Cong P Q P' Q' -> CongA M P Q M' P' Q'.
Lemma cong2_sac2__cong : forall A B C D A' B' C' D', Saccheri A B C D -> Saccheri A' B' C' D' -> Cong A B A' B' -> Cong A D A' D' -> Cong B C B' C'.
Lemma sac__perp1214 : forall A B C D, Saccheri A B C D -> Perp A B A D.
Lemma sac__perp3414 : forall A B C D, Saccheri A B C D -> Perp C D A D.
Lemma cop_sac2__sac : forall A B C D E F, Saccheri A B C D -> Saccheri A B E F -> D<>F -> Coplanar A B D F -> Saccheri D C E F.
Lemma three_hypotheses_aux : forall A B C D M N A' B' C' D' M' N', Saccheri A B C D -> Saccheri A' B' C' D' -> Midpoint M B C -> Midpoint M' B' C' -> Midpoint N A D -> Midpoint N' A' D' -> Le M N M' N' -> (Per A B C <-> Per A' B' C') /\ (Acute A B C <-> Acute A' B' C').
Lemma TangentCC_Col : forall A B C D X, TangentCC A B C D -> OnCircle X A B -> OnCircle X C D -> Col X A C.
Lemma tangent_neq : forall A B O P, O<>P -> Tangent A B O P -> A<>B.
Lemma diam_not_tangent : forall O P A B, P <> O -> Col O A B -> ~ Tangent A B O P.
Lemma tangent_out : forall A B O P T X, X <> T -> Col A B X -> TangentAt A B O P T -> OutCircleS X O P.
Lemma tangentat_perp : forall A B O P T, O <> P -> TangentAt A B O P T -> Perp A B O T.
Lemma tangency_chara : forall A B O P, P <> O -> (exists X, OnCircle X O P /\ Perp_at X A B O X) <-> Tangent A B O P.
Lemma tangency_chara2 : forall A B O P Q, OnCircle Q O P -> Col Q A B -> ((forall X, Col A B X -> X = Q \/ OutCircleS X O P) <-> Tangent A B O P).
Lemma tangency_chara3 : forall A B O P Q, A <> B -> OnCircle Q O P -> Col Q A B -> ((forall X, Col A B X -> OutCircle X O P) <-> Tangent A B O P).
Lemma intercc__neq : forall A B C D, InterCC A B C D -> A<>C.
Lemma tangentcc__neq: forall A B C D, A<>B -> TangentCC A B C D -> A<>C.
Lemma interccat__neq : forall A B C D P Q, InterCCAt A B C D P Q -> A <> C.
Lemma tangent_construction : forall O P X, segment_circle -> OutCircle X O P -> exists Y, Tangent X Y O P.
Lemma interccat__ncol : forall A B C D P Q, InterCCAt A B C D P Q -> ~ Col A C P.
Lemma cop_onc2__oreq : forall A B C D P Q, InterCCAt A B C D P Q -> Coplanar A C P Q -> forall Z, OnCircle Z A B -> OnCircle Z C D -> Coplanar A C P Z -> Z=P \/ Z=Q.
Lemma onc2__oreq : forall A B C D P Q, InterCCAt A B C D P Q -> forall Z, OnCircle Z A B -> OnCircle Z C D -> Z=P \/ Z=Q.
Lemma eqv_refl : forall A B, EqV A B A B.
Lemma eqv_sym : forall A B C D, EqV A B C D -> EqV C D A B.
Lemma eqv_trans : forall A B C D E F, EqV A B C D -> EqV C D E F -> EqV A B E F.
Lemma eqv_comm : forall A B C D, EqV A B C D -> EqV B A D C.
Lemma vector_construction : forall A B C, exists D, EqV A B C D.
Lemma vector_construction_uniqueness : forall A B C D D', EqV A B C D -> EqV A B C D' -> D = D'.
Lemma null_vector : forall A B C, EqV A A B C -> B = C.
Lemma vector_uniqueness : forall A B C, EqV A B A C -> B = C.
Lemma eqv_trivial : forall A B , EqV A A B B.
Lemma eqv_permut : forall A B C D, EqV A B C D -> EqV A C B D.
Lemma eqv_par : forall A B C D, A <> B -> EqV A B C D -> Par A B C D.
Lemma eqv_opp_null : forall A B, EqV A B B A -> A = B.
Lemma eqv_sum : forall A B C A' B' C', EqV A B A' B' -> EqV B C B' C' -> EqV A C A' C'.
Lemma null_sum : forall A B C, SumV A B B A C C.
Lemma chasles : forall A B C, SumV A B B C A C.
Lemma eqv_mid : forall A B C, EqV A B B C -> Midpoint B A C.
Lemma mid_eqv : forall A B C, Midpoint A B C -> EqV B A A C.
Lemma sum_sym : forall A B C D E F, SumV A B C D E F -> SumV C D A B E F.
Lemma opposite_sum : forall A B C D E F, SumV A B C D E F -> SumV B A D C F E.
Lemma null_sum_eq : forall A B C D, SumV A B B C D D -> A = C.
Lemma is_to_ise : forall A B C D E F, SumV A B C D E F -> SumV_exists A B C D E F.
Lemma ise_to_is : forall A B C D E F, SumV_exists A B C D E F -> SumV A B C D E F.
Lemma sum_exists : forall A B C D, exists E, exists F, SumV A B C D E F.
Lemma sum_uniqueness : forall A B C D E F E' F', SumV A B C D E F -> SumV A B C D E' F' -> EqV E F E' F'.
Lemma same_dir_refl : forall A B, Same_dir A B A B.
Lemma same_dir_ts : forall A B C D, Same_dir A B C D -> exists M, Bet A M D /\ Bet B M C.
Lemma one_side_col_out : forall A B X Y, Col A X Y -> OS A B X Y -> Out A X Y.
Lemma par_ts_same_dir : forall A B C D, Par_strict A B C D -> (exists M, Bet A M D /\ Bet B M C) -> Same_dir A B C D.
Lemma same_dir_out : forall A B C, Same_dir A B A C -> Out A B C \/ A = B /\ A = C.
Lemma same_dir_out1 : forall A B C, Same_dir A B B C -> Out A B C \/ A = B /\ A = C.
Lemma same_dir_null : forall A B C, Same_dir A A B C -> B = C.
Lemma plgs_out_plgs : forall A B C D B' C', Parallelogram_strict A B C D -> Out A B B' -> Out D C C' -> Cong A B' D C' -> Parallelogram_strict A B' C' D.
Lemma plgs_plgs_bet : forall A B C D B' C', Parallelogram_strict A B C D -> Bet A B B' -> Parallelogram_strict A B' C' D -> Bet D C C'.
Lemma plgf_plgf_bet : forall A B C D B' C', Parallelogram_flat A B C D -> Bet A B B' -> Parallelogram_flat A B' C' D -> Bet D C C'.
Lemma plg_plg_bet : forall A B C D B' C', Parallelogram A B C D -> Bet A B B' -> Parallelogram A B' C' D -> Bet D C C'.
Lemma plgf_out_plgf : forall A B C D B' C', Parallelogram_flat A B C D -> Out A B B' -> Out D C C' -> Cong A B' D C' -> Parallelogram_flat A B' C' D.
Lemma plg_out_plg : forall A B C D B' C', Parallelogram A B C D -> Out A B B' -> Out D C C' -> Cong A B' D C' -> Parallelogram A B' C' D.
Lemma same_dir_sym : forall A B C D, Same_dir A B C D -> Same_dir C D A B.
Lemma same_dir_trans : forall A B C D E F, Same_dir A B C D -> Same_dir C D E F -> Same_dir A B E F.
Lemma same_dir_comm : forall A B C D, Same_dir A B C D -> Same_dir B A D C.
Lemma bet_same_dir1 : forall A B C, A <> B -> B <> C -> Bet A B C -> Same_dir A B A C.
Lemma bet_same_dir2 : forall A B C, A <> B -> B <> C -> Bet A B C -> Same_dir A B B C.
Lemma plg_opp_dir : forall A B C D, Parallelogram A B C D -> Same_dir A B D C.
Lemma same_dir_dec : forall A B C D, Same_dir A B C D \/ ~ Same_dir A B C D.
Lemma same_or_opp_dir : forall A B C D, Par A B C D -> Same_dir A B C D \/ Opp_dir A B C D.
Lemma same_dir_id : forall A B, Same_dir A B B A -> A = B.
Lemma opp_dir_id : forall A B, Opp_dir A B A B -> A = B.
Lemma same_dir_to_null : forall A B C D, Same_dir A B C D -> Same_dir A B D C -> A = B /\ C = D.
Lemma opp_dir_to_null : forall A B C D, Opp_dir A B C D -> Opp_dir A B D C -> A = B /\ C = D.
Lemma same_not_opp_dir : forall A B C D, A <> B -> Same_dir A B C D -> ~ Opp_dir A B C D.
Lemma opp_not_same_dir : forall A B C D, A <> B -> Opp_dir A B C D -> ~ Same_dir A B C D.
Lemma vector_same_dir_cong : forall A B C D, A <> B -> C <> D -> exists X, exists Y, Same_dir A B X Y /\ Cong X Y C D.