Ltac permut :=
match goal with
   |H : (Col ?X ?Y ?Z) |- Col ?X ?Y ?Z => assumption
   |H : (Col ?X ?Y ?Z) |- Col ?Y ?Z ?X => apply col_permutation_1; assumption
   |H : (Col ?X ?Y ?Z) |- Col ?Z ?X ?Y => apply col_permutation_2; assumption
   |H : (Col ?X ?Y ?Z) |- Col ?X ?Z ?Y => apply col_permutation_5; assumption
   |H : (Col ?X ?Y ?Z) |- Col ?Y ?X ?Z => apply col_permutation_4; assumption
   |H : (Col ?X ?Y ?Z) |- Col ?Z ?Y ?X => apply col_permutation_3; assumption
   |_ : _ |- _ => idtac
end.Ltac bet :=
match goal with
   |H0 : Bet ?A ?B ?C |- Bet ?A ?B ?C => assumption
   |H0 : Bet ?A ?B ?C, H1 : Bet ?B ?C ?D , H : ?B <> ?C |- Bet ?A ?B ?D => apply (outer_transitivity_between _ _ _ _ H0 H1 H)
   |H0 : Bet ?A ?B ?C, H1 : Bet ?B ?C ?D , H : ?B <> ?C |- Bet ?A ?C ?D => apply (outer_transitivity_between2 _ _ _ _ H0 H1 H)
   |H0 : Bet ?A ?B ?D, H1 : Bet ?B ?C ?D  |- Bet ?A ?B ?C => apply (between_inner_transitivity _ _ _ _ H0 H1)
   |H0 : Bet ?A ?B ?C, H1 : Bet ?A ?C ?D  |- Bet ?B ?C ?D => apply (between_exchange3 _ _ _ _ H0 H1)
   |H0 : Bet ?A ?B ?D, H1 : Bet ?B ?C ?D  |- Bet ?A ?C ?D => apply (between_exchange2 _ _ _ _ H0 H1)
   |H0 : Bet ?A ?B ?C, H1 : Bet ?A ?C ?D  |- Bet ?A ?B ?D => apply (between_exchange4 _ _ _ _ H0 H1)

   |H0 : Bet ?A ?B ?C |- Bet ?A ?B ?C => assumption
   |H0 : Bet ?A ?B ?C, H1 : Bet ?B ?C ?D , H : ?B <> ?C |- Bet ?D ?B ?A => apply between_symmetry; apply (outer_transitivity_between _ _ _ _ H0 H1 H)
   |H0 : Bet ?A ?B ?C, H1 : Bet ?B ?C ?D , H : ?B <> ?C |- Bet ?D ?C ?A => apply (outer_transitivity_between2 _ _ _ _ H0 H1 H)
   |H0 : Bet ?A ?B ?D, H1 : Bet ?B ?C ?D  |- Bet ?C ?B ?A => apply between_symmetry; apply (between_inner_transitivity _ _ _ _ H0 H1)
   |H0 : Bet ?A ?B ?C, H1 : Bet ?A ?C ?D  |- Bet ?D ?C ?B => apply between_symmetry; apply (between_exchange3 _ _ _ _ H0 H1)
   |H0 : Bet ?A ?B ?D, H1 : Bet ?B ?C ?D  |- Bet ?D ?C ?A => apply between_symmetry; apply (between_exchange2 _ _ _ _ H0 H1)
   |H0 : Bet ?A ?B ?C, H1 : Bet ?A ?C ?D  |- Bet ?D ?B ?A => apply between_symmetry; apply (between_exchange4 _ _ _ _ H0 H1)
   |H0 : Bet ?A ?B ?C |- Bet ?C ?B ?A => apply (between_symmetry _ _ _  H0)

   |H0 : Bet ?A ?B ?C |- Bet ?C ?B ?A => apply (between_symmetry _ _ _  H0)
   |_ : _ |- Bet ?A ?B ?B => apply between_trivial
   |_ : _ |- Bet ?A ?A ?B => apply between_trivial2
   |_ : _ |- _ => idtac
end.Ltac cong :=
match goal with
   |_ :  Cong ?A ?B ?C ?BD |- Cong ?A ?B ?C ?D => assumption
   |_ : _ |- Cong ?A ?B ?A ?B => apply cong_reflexivity
   |_ : _ |- Cong ?A ?A ?B ?B => apply cong_trivial_identity

   |H0 : Cong ?A ?B ?C ?D |- Cong ?A ?B ?C ?C => assumption
   |H0 : Cong ?A ?B ?C ?D |- Cong ?A ?B ?D ?C => apply (cong_right_commutativity _ _ _ _ H0)
   |H0 : Cong ?A ?B ?C ?D |- Cong ?B ?A ?D ?C => apply (cong_commutativity _ _ _ _ H0)
   |H0 : Cong ?A ?B ?C ?D |- Cong ?B ?A ?C ?D => apply (cong_left_commutativity _ _ _ _ H0)

   |H0 : Cong ?A ?B ?C ?D |- Cong ?C ?D ?A ?B => apply (cong_symmetry _ _ _ _ H0)
   |H0 : Cong ?A ?B ?C ?D |- Cong ?C ?D ?B ?A => apply (cong_symmetry _ _ _ _ (cong_left_commutativity _ _ _ _ H0))
   |H0 : Cong ?A ?B ?C ?D |- Cong ?D ?C ?B ?B => apply (cong_symmetry _ _ _ _ (cong_commutativity _ _ _ _ H0))
   |H0 : Cong ?A ?B ?C ?D |- Cong ?D ?C ?A ?B => apply (cong_symmetry _ _ _ _ (cong_right_commutativity _ _ _ _ H0))
   |_ : _ |- _ => idtac
end.

(* Specifications: *)
Lemma l11_3 : forall A B C D E F, CongA A B C D E F -> exists A', exists C', exists D', exists F', Out B A' A /\ Out B C C' /\ Out E D' D /\ Out E F F' /\ Cong_3 A' B C' D' E F'.
Lemma l11_aux : forall B A A' A0 E D D' D0, Out B A A' -> Out E D D' -> Cong B A' E D' -> Bet B A A0 -> Bet E D D0 -> Cong A A0 E D -> Cong D D0 B A -> Cong B A0 E D0 /\ Cong A' A0 D' D0.
Lemma l11_3_bis : forall A B C D E F, (exists A', exists C', exists D', exists F', Out B A' A /\ Out B C' C /\ Out E D' D /\ Out E F' F /\ Cong_3 A' B C' D' E F') -> CongA A B C D E F.
Lemma l11_4_1 : forall A B C D E F, CongA A B C D E F -> A<>B /\ C<>B /\ D<>E /\ F<>E /\ (forall A' C' D' F', Out B A' A /\ Out B C' C /\ Out E D' D /\ Out E F' F /\ Cong B A' E D' /\ Cong B C' E F' -> Cong A' C' D' F').
Lemma l11_4_2 : forall A B C D E F, (A<>B /\ C<>B /\ D<>E /\ F<>E /\ (forall A' C' D' F', Out B A' A /\ Out B C' C /\ Out E D' D /\ Out E F' F /\ Cong B A' E D' /\ Cong B C' E F' -> Cong A' C' D' F')) -> CongA A B C D E F.
Lemma conga_refl : forall A B C, A <> B -> C <> B -> CongA A B C A B C.
Lemma conga_sym : forall A B C A' B' C', CongA A B C A' B' C' -> CongA A' B' C' A B C.
Lemma out_conga : forall A B C A' B' C' A0 C0 A1 C1, CongA A B C A' B' C' -> Out B A A0 -> Out B C C0 -> Out B' A' A1 -> Out B' C' C1 -> CongA A0 B C0 A1 B' C1.
Lemma cong3_diff : forall A B C A' B' C', A<>B -> Cong_3 A B C A' B' C' -> A' <> B'.
Lemma cong3_diff2: forall A B C A' B' C', B<>C -> Cong_3 A B C A' B' C' -> B' <> C'.
Lemma cong3_conga : forall A B C A' B' C', A <> B -> C <> B -> Cong_3 A B C A' B' C' -> CongA A B C A' B' C'.
Lemma cong3_conga2 : forall A B C A' B' C' A'' B'' C'', Cong_3 A B C A' B' C' -> CongA A B C A'' B'' C'' -> CongA A' B' C' A'' B'' C''.
Lemma conga_diff1 : forall A B C A' B' C', CongA A B C A' B' C' -> A <> B.
Lemma conga_diff2 : forall A B C A' B' C', CongA A B C A' B' C' -> C <> B.
Lemma conga_diff45 : forall A B C A' B' C', CongA A B C A' B' C' -> A' <> B'.
Lemma conga_diff56 : forall A B C A' B' C', CongA A B C A' B' C' -> C' <> B'.
Lemma conga_trans : forall A B C A' B' C' A'' B'' C'', CongA A B C A' B' C' -> CongA A' B' C' A'' B'' C'' -> CongA A B C A'' B'' C''.
Lemma conga_pseudo_refl : forall A B C, A <> B -> C <> B -> CongA A B C C B A.
Lemma conga_trivial_1 : forall A B C D, A<>B -> C<>D -> CongA A B A C D C.
Lemma l11_10 : forall A B C D E F A' C' D' F', CongA A B C D E F -> Out B A' A -> Out B C' C -> Out E D' D -> Out E F' F -> CongA A' B C' D' E F'.
Lemma out2__conga : forall A B C A' C', Out B A' A -> Out B C' C -> CongA A B C A' B C'.
Lemma l11_13 : forall A B C D E F A' D', CongA A B C D E F -> Bet A B A' -> A'<> B -> Bet D E D' -> D'<> E -> CongA A' B C D' E F.
Lemma conga_right_comm : forall A B C D E F, CongA A B C D E F -> CongA A B C F E D.
Lemma conga_left_comm : forall A B C D E F, CongA A B C D E F -> CongA C B A D E F.
Lemma conga_comm : forall A B C D E F, CongA A B C D E F -> CongA C B A F E D.
Lemma conga_line : forall A B C A' B' C', A <> B -> B <> C -> A' <> B' -> B' <> C' -> Bet A B C -> Bet A' B' C' -> CongA A B C A' B' C'.
Lemma l11_14 : forall A B C A' C', Bet A B A' -> A <> B -> A' <> B -> Bet C B C' -> B <> C -> B <> C' -> CongA A B C A' B C'.
Lemma l11_16 : forall A B C A' B' C', Per A B C -> A <> B -> C <> B -> Per A' B' C' -> A'<> B' -> C'<> B'-> CongA A B C A' B' C'.
Lemma l11_17 : forall A B C A' B' C', Per A B C -> CongA A B C A' B' C' -> Per A' B' C'.
Lemma l11_18_1 : forall A B C D, Bet C B D -> B <> C -> B <> D -> A <> B -> Per A B C -> CongA A B C A B D.
Lemma l11_18_2 : forall A B C D, Bet C B D -> CongA A B C A B D -> Per A B C.
Lemma cong3_preserves_out : forall A B C A' B' C', Out A B C -> Cong_3 A B C A' B' C' -> Out A' B' C'.
Lemma l11_21_a : forall A B C A' B' C', Out B A C -> CongA A B C A' B' C' -> Out B' A' C'.
Lemma l11_21_b : forall A B C A' B' C', Out B A C -> Out B' A' C' -> CongA A B C A' B' C'.
Lemma conga_cop__or_out_ts : forall A B C C', Coplanar A B C C' -> CongA A B C A B C' -> Out B C C' \/ TS A B C C'.
Lemma cong2_conga_cong : forall A B C A' B' C', CongA A B C A' B' C' -> Cong A B A' B' -> Cong B C B' C' -> Cong A C A' C'.
Lemma angle_construction_1 : forall A B C A' B' P, ~ Col A B C -> ~ Col A' B' P -> exists C', CongA A B C A' B' C' /\ OS A' B' C' P.
Lemma angle_construction_2 : forall A B C A' B' P, A <> B -> A <> C -> B <> C -> A' <> B' -> ~ Col A' B' P -> exists C', CongA A B C A' B' C' /\ (OS A' B' C' P \/ Col A' B' C').
Lemma ex_conga_ts : forall A B C A' B' P, ~ Col A B C -> ~ Col A' B' P -> exists C' : Tpoint, CongA A B C A' B' C' /\ TS A' B' C' P.
Lemma l11_15 : forall A B C D E P, ~ Col A B C -> ~ Col D E P -> exists F, CongA A B C D E F /\ OS E D F P /\ (forall F1 F2, ((CongA A B C D E F1 /\ OS E D F1 P) /\ (CongA A B C D E F2 /\ OS E D F2 P)) -> Out E F1 F2).
Lemma l11_19 : forall A B P1 P2, Per A B P1 -> Per A B P2 -> OS A B P1 P2 -> Out B P1 P2.
Lemma l11_22_bet : forall A B C P A' B' C' P', Bet A B C -> TS P' B' A' C' -> CongA A B P A' B' P' /\ CongA P B C P' B' C' -> Bet A' B' C'.
Lemma l11_22a : forall A B C P A' B' C' P', TS B P A C /\ TS B' P' A' C' /\ CongA A B P A' B' P' /\ CongA P B C P' B' C' -> CongA A B C A' B' C'.
Lemma l11_22b : forall A B C P A' B' C' P', OS B P A C /\ OS B' P' A' C' /\ CongA A B P A' B' P' /\ CongA P B C P' B' C' -> CongA A B C A' B' C'.
Lemma l11_22 : forall A B C P A' B' C' P', ((TS B P A C /\ TS B' P' A' C')\/ (OS B P A C /\ OS B' P' A' C')) /\ CongA A B P A' B' P' /\ CongA P B C P' B' C' -> CongA A B C A' B' C'.
Lemma l11_24 : forall P A B C, InAngle P A B C -> InAngle P C B A.
Lemma out_in_angle : forall A B C P, Out B A C -> Out B P A -> InAngle P A B C.
Lemma col_in_angle : forall A B C P, A <> B -> C <> B -> P <> B -> Out B A P \/ Out B C P -> InAngle P A B C.
Lemma out321__inangle : forall A B C P, C <> B -> Out B A P -> InAngle P A B C.
Lemma inangle1123 : forall A B C, A <> B -> C <> B -> InAngle A A B C.
Lemma out341__inangle : forall A B C P, A <> B -> Out B C P -> InAngle P A B C.
Lemma inangle3123 : forall A B C, A <> B -> C <> B -> InAngle C A B C.
Lemma in_angle_two_sides : forall A B C P, ~ Col B A P -> ~ Col B C P -> InAngle P A B C -> TS P B A C.
Lemma in_angle_out : forall A B C P, Out B A C -> InAngle P A B C -> Out B A P.
Lemma col_in_angle_out : forall A B C P, Col B A P -> ~ Bet A B C -> InAngle P A B C -> Out B A P.
Lemma l11_25_aux : forall P A B C A', InAngle P A B C -> ~ Bet A B C -> Out B A' A -> InAngle P A' B C.
Lemma l11_25 : forall P A B C A' C' P', InAngle P A B C -> Out B A' A -> Out B C' C -> Out B P' P -> InAngle P' A' B C'.
Lemma inangle_distincts : forall A B C P, InAngle P A B C -> A <> B /\ C <> B /\ P <> B.
Lemma segment_construction_0 : forall A B A', exists B', Cong A' B' A B.
Lemma angle_construction_3 : forall A B C A' B', A <> B -> C <> B -> A' <> B' -> exists C', CongA A B C A' B' C'.
Lemma l11_28 : forall A B C D A' B' C', Cong_3 A B C A' B' C' -> Col A C D -> exists D', Cong A D A' D' /\ Cong B D B' D' /\ Cong C D C' D'.
Lemma bet_conga__bet : forall A B C A' B' C', Bet A B C -> CongA A B C A' B' C' -> Bet A' B' C'.
Lemma out_in_angle_out : forall A B C P, Out B A C -> InAngle P A B C -> Out B A P.
Lemma in_angle_one_side : forall A B C P, ~ Col A B C -> ~ Col B A P -> InAngle P A B C -> OS A B P C.
Lemma inangle_one_side : forall A B C P Q , ~ Col A B C -> ~ Col A B P -> ~ Col A B Q -> InAngle P A B C -> InAngle Q A B C -> OS A B P Q.
Lemma inangle_one_side2 : forall A B C P Q , ~ Col A B C -> ~ Col A B P -> ~ Col A B Q -> ~ Col C B P -> ~ Col C B Q -> InAngle P A B C -> InAngle Q A B C -> OS A B P Q /\ OS C B P Q.
Lemma col_conga_col : forall A B C D E F, Col A B C -> CongA A B C D E F -> Col D E F.
Lemma ncol_conga_ncol : forall A B C D E F, ~ Col A B C -> CongA A B C D E F -> ~ Col D E F.
Lemma angle_construction_4 : forall A B C A' B' P, A <> B -> C <> B -> A' <> B' -> exists C', CongA A B C A' B' C' /\ Coplanar A' B' C' P.
Lemma lea_distincts : forall A B C D E F, LeA A B C D E F -> A<>B /\ C<>B /\ D<>E /\ F<>E.
Lemma gea_distincts : forall A B C D E F, GeA A B C D E F -> A<>B /\ C<>B /\ D<>E /\ F<>E.
Lemma l11_29_a : forall A B C D E F, LeA A B C D E F -> exists Q, InAngle C A B Q /\ CongA A B Q D E F.
Lemma in_angle_line : forall A B C P, P <> B -> A <> B -> C <> B -> Bet A B C -> InAngle P A B C.
Lemma l11_29_b : forall A B C D E F, (exists Q, InAngle C A B Q /\ CongA A B Q D E F) -> LeA A B C D E F.
Lemma bet_in_angle_bet : forall A B C P, Bet A B P -> InAngle P A B C -> Bet A B C.
Lemma lea_line : forall A B C P, Bet A B P -> LeA A B P A B C -> Bet A B C.
Lemma eq_conga_out : forall A B D E F, CongA A B A D E F -> Out E D F.
Lemma conga_ex_cong3 : forall A B C A' B' C', CongA A B C A' B' C' -> exists AA, exists CC, Out B A AA -> Out B C CC -> Cong_3 AA B CC A' B' C'.
Lemma conga_preserves_in_angle : forall A B C I A' B' C' I', CongA A B C A' B' C' -> CongA A B I A' B' I' -> InAngle I A B C -> OS A' B' I' C' -> InAngle I' A' B' C'.
Lemma l11_30 : forall A B C D E F A' B' C' D' E' F', LeA A B C D E F -> CongA A B C A' B' C' -> CongA D E F D' E' F' -> LeA A' B' C' D' E' F'.
Lemma l11_31_1 : forall A B C D E F, Out B A C -> D <> E -> F <> E -> LeA A B C D E F.
Lemma l11_31_2 : forall A B C D E F, A <> B -> C <> B -> D <> E -> F <> E -> Bet D E F -> LeA A B C D E F.
Lemma lea_refl : forall A B C, A <> B -> C <> B -> LeA A B C A B C.
Lemma conga__lea : forall A B C D E F, CongA A B C D E F -> LeA A B C D E F.
Lemma conga__lea456123 : forall A B C D E F, CongA A B C D E F -> LeA D E F A B C.
Lemma lea_out4__lea : forall A B C D E F A' C' D' F', LeA A B C D E F -> Out B A A' -> Out B C C' -> Out E D D' -> Out E F F' -> LeA A' B C' D' E F'.
Lemma lea121345 : forall A B C D E, A<>B -> C<>D -> D<>E -> LeA A B A C D E.
Lemma inangle__lea : forall A B C P, InAngle P A B C -> LeA A B P A B C.
Lemma in_angle_trans : forall A B C D E, InAngle C A B D -> InAngle D A B E -> InAngle C A B E.
Lemma lea_trans : forall A B C A1 B1 C1 A2 B2 C2, LeA A B C A1 B1 C1 -> LeA A1 B1 C1 A2 B2 C2 -> LeA A B C A2 B2 C2.
Lemma in_angle_asym : forall A B C D, InAngle D A B C -> InAngle C A B D -> CongA A B C A B D.
Lemma lea_asym : forall A B C D E F, LeA A B C D E F -> LeA D E F A B C -> CongA A B C D E F.
Lemma col_lta__bet : forall A B C X Y Z, Col X Y Z -> LtA A B C X Y Z -> Bet X Y Z.
Lemma col_lta__out : forall A B C X Y Z, Col A B C -> LtA A B C X Y Z -> Out B A C.
Lemma lta_distincts : forall A B C D E F, LtA A B C D E F -> A<>B /\ C<>B /\ D<>E /\ F<>E /\ D <> F.
Lemma gta_distincts : forall A B C D E F, GtA A B C D E F -> A<>B /\ C<>B /\ D<>E /\ F<>E /\ A <> C.
Lemma acute_distincts : forall A B C, Acute A B C -> A<>B /\ C<>B.
Lemma obtuse_distincts : forall A B C, Obtuse A B C -> A<>B /\ C<>B /\ A <> C.
Lemma two_sides_in_angle : forall A B C P P', B <> P' -> TS B P A C -> Bet P B P' -> InAngle P A B C \/ InAngle P' A B C.
Lemma in_angle_reverse : forall A B A' C D, A' <> B -> Bet A B A' -> InAngle C A B D -> InAngle D A' B C.
Lemma in_angle_trans2 : forall A B C D E, InAngle C A B D -> InAngle D A B E -> InAngle D C B E.
Lemma l11_36 : forall A B C D E F A' D', A <> B -> A' <> B -> D <> E -> D' <> E -> Bet A B A' -> Bet D E D' -> (LeA A B C D E F <-> LeA D' E F A' B C).
Lemma l11_41_aux : forall A B C D, ~ Col A B C -> Bet B A D -> A <> D -> LtA A C B C A D.
Lemma l11_41 : forall A B C D, ~ Col A B C -> Bet B A D -> A <> D -> LtA A C B C A D /\ LtA A B C C A D.
Lemma not_conga : forall A B C A' B' C' D E F , CongA A B C A' B' C' -> ~ CongA A B C D E F -> ~ CongA A' B' C' D E F.
Lemma not_conga_sym : forall A B C D E F, ~ CongA A B C D E F -> ~ CongA D E F A B C.
Lemma not_and_lta : forall A B C D E F, ~ (LtA A B C D E F /\ LtA D E F A B C).
Lemma conga_preserves_lta : 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' -> LtA A B C D E F -> LtA A' B' C' D' E' F'.
Lemma conga_preserves_gta : 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' -> GtA A B C D E F -> GtA A' B' C' D' E' F'.
Lemma lta_trans : forall A B C A1 B1 C1 A2 B2 C2, LtA A B C A1 B1 C1 -> LtA A1 B1 C1 A2 B2 C2 -> LtA A B C A2 B2 C2.
Lemma gta_trans : forall A B C A1 B1 C1 A2 B2 C2, GtA A B C A1 B1 C1 -> GtA A1 B1 C1 A2 B2 C2 -> GtA A B C A2 B2 C2.
Lemma lea_left_comm : forall A B C D E F, LeA A B C D E F -> LeA C B A D E F.
Lemma lea_right_comm : forall A B C D E F, LeA A B C D E F -> LeA A B C F E D.
Lemma lea_comm : forall A B C D E F, LeA A B C D E F -> LeA C B A F E D.
Lemma lta_left_comm : forall A B C D E F, LtA A B C D E F -> LtA C B A D E F.
Lemma lta_right_comm : forall A B C D E F, LtA A B C D E F -> LtA A B C F E D.
Lemma lta_comm : forall A B C D E F, LtA A B C D E F -> LtA C B A F E D.
Lemma obtuse_sym : forall A B C, Obtuse A B C -> Obtuse C B A.
Lemma acute_sym : forall A B C, Acute A B C -> Acute C B A.
Lemma acute_col__out : forall A B C, Col A B C -> Acute A B C -> Out B A C.
Lemma col_obtuse__bet : forall A B C, Col A B C -> Obtuse A B C -> Bet A B C.
Lemma out__acute : forall A B C, Out B A C -> Acute A B C.
Lemma bet__obtuse : forall A B C, Bet A B C -> A <> B -> B <> C -> Obtuse A B C.
Lemma l11_43_aux : forall A B C, A <> B -> A <> C -> (Per B A C \/ Obtuse B A C) -> Acute A B C.
Lemma l11_43 : forall A B C, A <> B -> A <> C -> (Per B A C \/ Obtuse B A C) -> Acute A B C /\ Acute A C B.
Lemma acute_lea_acute : forall A B C D E F, Acute D E F -> LeA A B C D E F -> Acute A B C.
Lemma obtuse_gea_obtuse : forall A B C D E F, Obtuse D E F -> GeA A B C D E F -> Obtuse A B C.
Lemma l11_44_1_a : forall A B C, A <> B -> A <> C -> Cong B A B C -> CongA B A C B C A.
Lemma l11_44_2_a : forall A B C, ~ Col A B C -> Lt B A B C -> LtA B C A B A C.
Lemma not_lta_and_conga : forall A B C D E F, ~ (LtA A B C D E F /\ CongA A B C D E F).
Lemma not_gta_and_conga : forall A B C D E F, ~ (GtA A B C D E F /\ CongA A B C D E F).
Lemma not_lta_and_gta : forall A B C D E F, ~ (LtA A B C D E F /\ GtA A B C D E F).
Lemma conga_sym_equiv : forall A B C A' B' C', CongA A B C A' B' C' <-> CongA A' B' C' A B C.
Lemma conga_dec : forall A B C D E F, CongA A B C D E F \/ ~ CongA A B C D E F.
Lemma lta_not_conga : forall A B C D E F, LtA A B C D E F -> ~ CongA A B C D E F.
Lemma l11_44_1_b : forall A B C, ~ Col A B C -> CongA B A C B C A -> Cong B A B C.
Lemma l11_44_2_b : forall A B C, LtA B A C B C A -> Lt B C B A.
Lemma l11_44_1 : forall A B C, ~ Col A B C -> (CongA B A C B C A <-> Cong B A B C).
Lemma l11_44_2 : forall A B C, ~ Col A B C -> (LtA B A C B C A <-> Lt B C B A).
Lemma l11_46 : forall A B C, A <> B -> B <> C -> (Per A B C \/ Obtuse A B C) -> Lt B A A C /\ Lt B C A C.
Lemma l11_47 : forall A B C H , Per A C B -> Perp_at H C H A B -> Bet A H B /\ A <> H /\ B <> H.
Lemma l11_49 : forall A B C A' B' C', CongA A B C A' B' C' -> Cong B A B' A' -> Cong B C B' C' -> Cong A C A' C' /\ (A <> C -> CongA B A C B' A' C' /\ CongA B C A B' C' A').
Lemma l11_50_1 : forall A B C A' B' C', ~ Col A B C -> CongA B A C B' A' C' -> CongA A B C A' B' C' -> Cong A B A' B' -> Cong A C A' C' /\ Cong B C B' C' /\ CongA A C B A' C' B'.
Lemma l11_50_2 : forall A B C A' B' C', ~ Col A B C -> CongA B C A B' C' A' -> CongA A B C A' B' C' -> Cong A B A' B' -> Cong A C A' C' /\ Cong B C B' C' /\ CongA C A B C' A' B'.
Lemma l11_51 : forall A B C A' B' C', A <> B -> A <> C -> B <> C -> Cong A B A' B' -> Cong A C A' C' -> Cong B C B' C' -> CongA B A C B' A' C' /\ CongA A B C A' B' C' /\ CongA B C A B' C' A'.
Lemma conga_distinct : forall A B C D E F, CongA A B C D E F -> CongA A B C D E F /\ A <> B /\ C <> B /\ D <> E /\ F <> E.
Lemma l11_52 : forall A B C A' B' C', CongA A B C A' B' C' -> Cong A C A' C' -> Cong B C B' C' -> Le B C A C -> Cong B A B' A' /\ CongA B A C B' A' C' /\ CongA B C A B' C' A'.
Lemma l11_53 : forall A B C D, Per D C B -> C <> D -> A <> B -> B <> C -> Bet A B C -> LtA C A D C B D /\ Lt B D A D.
Lemma cong2_conga_obtuse__cong_conga2 : forall A B C A' B' C', Obtuse A B C -> CongA A B C A' B' C' -> Cong A C A' C' -> Cong B C B' C' -> Cong B A B' A' /\ CongA B A C B' A' C' /\ CongA B C A B' C' A'.
Lemma cong2_per2__cong_conga2 : forall A B C A' B' C', A<>B -> B<>C -> Per A B C -> Per A' B' C' -> Cong A C A' C' -> Cong B C B' C' -> Cong B A B' A' /\ CongA B A C B' A' C' /\ CongA B C A B' C' A'.
Lemma cong2_per2__cong : forall A B C A' B' C', Per A B C -> Per A' B' C' -> Cong A C A' C' -> Cong B C B' C' -> Cong B A B' A'.
Lemma cong2_per2__cong_3 : forall A B C A' B' C', Per A B C -> Per A' B' C' -> Cong A C A' C' -> Cong B C B' C' -> Cong_3 A B C A' B' C'.
Lemma cong_lt_per2__lt : forall A B C A' B' C', Per A B C -> Per A' B' C' -> Cong A B A' B' -> Lt B C B' C' -> Lt A C A' C'.
Lemma cong_le_per2__le : forall A B C A' B' C', Per A B C -> Per A' B' C' -> Cong A B A' B' -> Le B C B' C' -> Le A C A' C'.
Lemma lt2_per2__lt : forall A B C A' B' C', Per A B C -> Per A' B' C' -> Lt A B A' B' -> Lt B C B' C' -> Lt A C A' C'.
Lemma le_lt_per2__lt : forall A B C A' B' C', Per A B C -> Per A' B' C' -> Le A B A' B' -> Lt B C B' C' -> Lt A C A' C'.
Lemma le2_per2__le : forall A B C A' B' C', Per A B C -> Per A' B' C' -> Le A B A' B' -> Le B C B' C' -> Le A C A' C'.
Lemma cong_lt_per2__lt_1 : forall A B C A' B' C', Per A B C -> Per A' B' C' -> Lt A B A' B' -> Cong A C A' C' -> Lt B' C' B C.
Lemma symmetry_preserves_conga : forall A B C A' B' C' M, A <> B -> C <> B -> Midpoint M A A' -> Midpoint M B B' -> Midpoint M C C' -> CongA A B C A' B' C'.
Lemma l11_57 : forall A B C A' B' C', OS A A' B B' -> Per B A A' -> Per B' A' A -> OS A A' C C' -> Per C A A' -> Per C' A' A -> CongA B A C B' A' C'.
Lemma cop3_orth_at__orth_at : forall A B C D E F U V X, ~ Col D E F -> Coplanar A B C D -> Coplanar A B C E -> Coplanar A B C F -> Orth_at X A B C U V -> Orth_at X D E F U V.
Lemma col2_orth_at__orth_at : forall A B C P Q U V X, U <> V -> Col P Q U -> Col P Q V -> Orth_at X A B C P Q -> Orth_at X A B C U V.
Lemma col_orth_at__orth_at : forall A B C U V W X, U <> W -> Col U V W -> Orth_at X A B C U V -> Orth_at X A B C U W.
Lemma orth_at_symmetry : forall A B C U V X, Orth_at X A B C U V -> Orth_at X A B C V U.
Lemma orth_at_distincts : forall A B C U V X, Orth_at X A B C U V -> A <> B /\ B <> C /\ A <> C /\ U <> V.
Lemma orth_at_chara : forall A B C P X, Orth_at X A B C X P <-> ~ Col A B C /\ X <> P /\ Coplanar A B C X /\ (forall D, Coplanar A B C D -> Per D X P).
Lemma cop3_orth__orth : forall A B C D E F U V, ~ Col D E F -> Coplanar A B C D -> Coplanar A B C E -> Coplanar A B C F -> Orth A B C U V -> Orth D E F U V.
Lemma col2_orth__orth : forall A B C P Q U V, U <> V -> Col P Q U -> Col P Q V -> Orth A B C P Q -> Orth A B C U V.
Lemma col_orth__orth : forall A B C U V W, U <> W -> Col U V W -> Orth A B C U V -> Orth A B C U W.
Lemma orth_symmetry : forall A B C U V, Orth A B C U V -> Orth A B C V U.
Lemma orth_distincts : forall A B C U V, Orth A B C U V -> A <> B /\ B <> C /\ A <> C /\ U <> V.
Lemma col_cop_orth__orth_at : forall A B C U V X, Orth A B C U V -> Coplanar A B C X -> Col U V X -> Orth_at X A B C U V.
Lemma l11_60_aux : forall A B C D P Q, ~ Col A B C -> Cong A P A Q -> Cong B P B Q -> Cong C P C Q -> Coplanar A B C D -> Cong D P D Q.
Lemma l11_60 : forall A B C D E P, ~ Col A B C -> Per A D P -> Per B D P -> Per C D P -> Coplanar A B C E -> Per E D P.
Lemma l11_60_bis : forall A B C D P, ~ Col A B C -> D <> P -> Coplanar A B C D -> Per A D P -> Per B D P -> Per C D P -> Orth_at D A B C D P.
Lemma l11_61 : forall A B C A' B' C', A <> A' -> A <> B -> A <> C -> Coplanar A A' B B' -> Per B A A' -> Per B' A' A -> Coplanar A A' C C' -> Per C A A' -> Per B A C -> Per B' A' C'.
Lemma l11_61_bis : forall A B C D E P Q, Orth_at D A B C D P -> Perp D E E Q -> Coplanar A B C E -> Coplanar D E P Q -> Orth_at E A B C E Q.
Lemma l11_62_unicity : forall A B C D D' P, Coplanar A B C D -> Coplanar A B C D' -> (forall E, Coplanar A B C E -> Per E D P) -> (forall E, Coplanar A B C E -> Per E D' P) -> D = D'.
Lemma l11_62_unicity_bis : forall A B C U X Y, Orth_at X A B C X U -> Orth_at Y A B C Y U -> X = Y.
Lemma orth_at2__eq : forall A B C U V X Y, Orth_at X A B C U V -> Orth_at Y A B C U V -> X = Y.
Lemma col_cop_orth_at__eq : forall A B C U V X Y, Orth_at X A B C U V -> Coplanar A B C Y -> Col U V Y -> X = Y.
Lemma orth_at__ncop1 : forall A B C U V X, U <> X -> Orth_at X A B C U V -> ~ Coplanar A B C U.
Lemma orth_at__ncop2 : forall A B C U V X, V <> X -> Orth_at X A B C U V -> ~ Coplanar A B C V.
Lemma orth_at__ncop : forall A B C P X, Orth_at X A B C X P -> ~ Coplanar A B C P.
Lemma l11_62_existence : forall A B C P, exists D, Coplanar A B C D /\ forall E, Coplanar A B C E -> Per E D P.
Lemma l11_62_existence_bis : forall A B C P, ~ Coplanar A B C P -> exists X, Orth_at X A B C X P.
Lemma l11_63_aux : forall A B C D E P, Coplanar A B C D -> D <> E -> Orth_at E A B C E P -> exists Q, OS D E P Q /\ Orth A B C D Q.
Lemma l11_63_existence : forall A B C D P, Coplanar A B C D -> ~ Coplanar A B C P -> exists Q, Orth A B C D Q.
Lemma l8_21_3 : forall A B C D X, Coplanar A B C D -> ~ Coplanar A B C X -> exists P T, Orth A B C D P /\ Coplanar A B C T /\ Bet X T P.
Lemma mid2_orth_at2__cong : forall A B C X Y P Q P' Q', Orth_at X A B C X P -> Orth_at Y A B C Y Q -> Midpoint X P P' -> Midpoint Y Q Q' -> Cong P Q P' Q'.
Lemma orth_at2_tsp__ts : forall A B C X Y P Q, P <> Q -> Orth_at P A B C P X -> Orth_at Q A B C Q Y -> TSP A B C X Y -> TS P Q X Y.
Lemma orth_dec : forall A B C U V, Orth A B C U V \/ ~ Orth A B C U V.
Lemma orth_at_dec : forall A B C U V X, Orth_at X A B C U V \/ ~ Orth_at X A B C U V.
Lemma tsp_dec : forall A B C X Y, TSP A B C X Y \/ ~ TSP A B C X Y.
Lemma osp_dec : forall A B C X Y, OSP A B C X Y \/ ~ OSP A B C X Y.
Lemma os_ts__inangle : forall A B C P, TS B P A C -> OS B A C P -> InAngle P A B C.
Lemma os2__inangle : forall A B C P, OS B A C P -> OS B C A P -> InAngle P A B C.
Lemma acute_conga__acute : forall A B C D E F, Acute A B C -> CongA A B C D E F -> Acute D E F.
Lemma acute_out2__acute : forall A B C A' C', Out B A' A -> Out B C' C -> Acute A B C -> Acute A' B C'.
Lemma conga_obtuse__obtuse : forall A B C D E F, Obtuse A B C -> CongA A B C D E F -> Obtuse D E F.
Lemma obtuse_out2__obtuse : forall A B C A' C', Out B A' A -> Out B C' C -> Obtuse A B C -> Obtuse A' B C'.
Lemma bet_lea__bet : forall A B C D E F, Bet A B C -> LeA A B C D E F -> Bet D E F.
Lemma out_lea__out : forall A B C D E F, Out E D F -> LeA A B C D E F -> Out B A C.
Lemma bet2_lta__lta : forall A B C D E F A' D', LtA A B C D E F -> Bet A B A' -> A' <> B -> Bet D E D' -> D' <> E -> LtA D' E F A' B C.
Lemma lta__lea : forall A B C D E F, LtA A B C D E F -> LeA A B C D E F.
Lemma lea123456_lta__lta : forall A B C D E F G H I, LeA A B C D E F -> LtA D E F G H I -> LtA A B C G H I.
Lemma lea456789_lta__lta : forall A B C D E F G H I, LtA A B C D E F -> LeA D E F G H I -> LtA A B C G H I.
Lemma acute_per__lta : forall A B C D E F, Acute A B C -> D <> E -> E <> F -> Per D E F -> LtA A B C D E F.
Lemma obtuse_per__lta : forall A B C D E F, Obtuse A B C -> D <> E -> E <> F -> Per D E F -> LtA D E F A B C.
Lemma acute_obtuse__lta : forall A B C D E F, Acute A B C -> Obtuse D E F -> LtA A B C D E F.
Lemma lea_in_angle : forall A B C P, LeA A B P A B C -> OS A B C P -> InAngle P A B C.
Lemma acute_bet__obtuse : forall A B C A', Bet A B A' -> A' <> B -> Acute A B C -> Obtuse A' B C.
Lemma bet_obtuse__acute : forall A B C A', Bet A B A' -> A' <> B -> Obtuse A B C -> Acute A' B C.
Lemma inangle_dec : forall A B C P, InAngle P A B C \/ ~ InAngle P A B C.
Lemma lea_dec : forall A B C D E F, LeA A B C D E F \/ ~ LeA A B C D E F.
Lemma gea_dec : forall A B C D E F, GeA A B C D E F \/ ~ GeA A B C D E F.
Lemma lta_dec : forall A B C D E F, LtA A B C D E F \/ ~ LtA A B C D E F.
Lemma gta_dec : forall A B C D E F, GtA A B C D E F \/ ~ GtA A B C D E F.
Lemma lea_total : forall A B C D E F, A <> B -> B <> C -> D <> E -> E <> F -> LeA A B C D E F \/ LeA D E F A B C.
Lemma gea_total : forall A B C D E F, A <> B -> B <> C -> D <> E -> E <> F -> GeA A B C D E F \/ GeA D E F A B C.
Lemma or_lta_conga_gta : forall A B C D E F, A <> B -> C <> B -> D <> E -> F <> E -> LtA A B C D E F \/ GtA A B C D E F \/ CongA A B C D E F.
Lemma angle_partition : forall A B C, A <> B -> B <> C -> Acute A B C \/ Per A B C \/ Obtuse A B C.
Lemma acute_chara : forall A B C A', Bet A B A' -> B <> A' -> (Acute A B C <-> LtA A B C A' B C).
Lemma obtuse_chara : forall A B C A', Bet A B A' -> B <> A' -> (Obtuse A B C <-> LtA A' B C A B C).
Lemma conga__acute : forall A B C, CongA A B C A C B -> Acute A B C.
Lemma cong__acute : forall A B C, A <> B -> B <> C -> Cong A B A C -> Acute A B C.
Lemma nlta : forall A B C, ~ LtA A B C A B C.
Lemma lea__nlta : forall A B C D E F, LeA A B C D E F -> ~ LtA D E F A B C.
Lemma lta__nlea : forall A B C D E F, LtA A B C D E F -> ~ LeA D E F A B C.
Lemma nlta__lea : forall A B C D E F, ~ LtA A B C D E F -> A <> B -> B <> C -> D <> E -> E <> F -> LeA D E F A B C.
Lemma nlea__lta : forall A B C D E F, ~ LeA A B C D E F -> A <> B -> B <> C -> D <> E -> E <> F -> LtA D E F A B C.
Lemma triangle_strict_inequality : forall A B C D, Bet A B D -> Cong B C B D -> ~ Bet A B C -> Lt A C A D.
Lemma triangle_inequality : forall A B C D, Bet A B D -> Cong B C B D -> Le A C A D.
Lemma triangle_strict_inequality_2 : forall A B C A' B' C', Bet A' B' C' -> Cong A B A' B' -> Cong B C B' C' -> ~ Bet A B C -> Lt A C A' C'.
Lemma triangle_inequality_2 : forall A B C A' B' C', Bet A' B' C' -> Cong A B A' B' -> Cong B C B' C' -> Le A C A' C'.
Lemma triangle_strict_reverse_inequality : forall A B C D, Out A B D -> Cong A C A D -> ~ Out A B C -> Lt B D B C.
Lemma triangle_reverse_inequality : forall A B C D, Out A B D -> Cong A C A D -> Le B D B C.
Lemma os3__lta : 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 bet_le__lt : forall A B C D, Bet A D B -> A <> D -> D <> B -> Le A C B C -> Lt D C B C.
Lemma t18_18_aux : forall A B C D E F, Cong A B D E -> Cong A C D F -> LtA F D E C A B -> ~ Col A B C -> ~ Col D E F -> Le D F D E -> Lt E F B C.
Lemma t18_18 : 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 t18_19 : 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 acute_trivial : forall A B, A <> B -> Acute A B A.
Lemma acute_not_per : forall A B C, Acute A B C -> ~ Per A B C.
Lemma angle_bisector : forall A B C, A <> B -> C <> B -> exists P, InAngle P A B C /\ CongA P B A P B C.
Lemma reflectl__conga : forall A B P P', A <> B -> B <> P -> ReflectL P P' A B -> CongA A B P A B P'.
Lemma conga_cop_out_reflectl__out : forall A B C P T T', ~ Out B A C -> Coplanar A B C P -> CongA P B A P B C -> Out B A T -> ReflectL T T' B P -> Out B C T'.
Lemma col_conga_cop_reflectl__col : forall A B C P T T', ~ Out B A C -> Coplanar A B C P -> CongA P B A P B C -> Col B A T -> ReflectL T T' B P -> Col B C T'.
Lemma conga2_cop2__col : forall A B C P P', ~ Out B A C -> CongA P B A P B C -> CongA P' B A P' B C -> Coplanar A B P P' -> Coplanar B C P P' -> Col B P P'.
Lemma conga2_cop2__col_1 : forall A B C P P', ~ Col A B C -> CongA P B A P B C -> CongA P' B A P' B C -> Coplanar A B C P -> Coplanar A B C P' -> Col B P P'.
Lemma col_conga__conga : forall A B C P P', CongA P B A P B C -> Col B P P' -> B <> P' -> CongA P' B A P' B C.
Lemma cop_inangle__ex_col_inangle : forall A B C P Q, ~ Out B A C -> InAngle P A B C -> Coplanar A B C Q -> exists R, InAngle R A B C /\ P <> R /\ Col P Q R.
Lemma col_inangle2__out : forall A B C P Q, ~ Bet A B C -> InAngle P A B C -> InAngle Q A B C -> Col B P Q -> Out B P Q.
Lemma inangle2__lea : forall A B C P Q, InAngle P A B C -> InAngle Q A B C -> LeA P B Q A B C.
Lemma conga_inangle_per__acute : forall A B C P, Per A B C -> InAngle P A B C -> CongA P B A P B C -> Acute A B P.
Lemma conga_inangle2_per__acute : forall A B C P Q, Per A B C -> InAngle P A B C -> CongA P B A P B C -> InAngle Q A B C -> Acute P B Q.
Lemma lta_os__ts : forall A O B P, ~ Col A O P -> LtA A O P A O B -> OS O A B P -> TS O P A B.
Lemma conga_os__out : forall O A B C, CongA A O B A O C -> OS O A B C -> Out O B C.
Lemma ex_suppa : forall A B C, A <> B -> B <> C -> exists D E F, SuppA A B C D E F.
Lemma suppa_distincts : forall A B C D E F, SuppA A B C D E F -> A <> B /\ B <> C /\ D <> E /\ E <> F.
Lemma suppa_right_comm : forall A B C D E F, SuppA A B C D E F -> SuppA A B C F E D.
Lemma suppa_left_comm : forall A B C D E F, SuppA A B C D E F -> SuppA C B A D E F.
Lemma suppa_comm : forall A B C D E F, SuppA A B C D E F -> SuppA C B A F E D.
Lemma suppa_sym : forall A B C D E F, SuppA A B C D E F -> SuppA D E F A B C.
Lemma conga2_suppa__suppa : 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' -> SuppA A B C D E F -> SuppA A' B' C' D' E' F'.
Lemma suppa2__conga456 : forall A B C D E F D' E' F', SuppA A B C D E F -> SuppA A B C D' E' F' -> CongA D E F D' E' F'.
Lemma suppa2__conga123 : forall A B C D E F A' B' C', SuppA A B C D E F -> SuppA A' B' C' D E F -> CongA A B C A' B' C'.
Lemma bet_out__suppa : forall A B C D E F, A <> B -> B <> C -> Bet A B C -> Out E D F -> SuppA A B C D E F.
Lemma bet_suppa__out : forall A B C D E F, Bet A B C -> SuppA A B C D E F -> Out E D F.
Lemma out_suppa__bet : forall A B C D E F, Out B A C -> SuppA A B C D E F -> Bet D E F.
Lemma per_suppa__per : forall A B C D E F, Per A B C -> SuppA A B C D E F -> Per D E F.
Lemma per2__suppa : forall A B C D E F, A <> B -> B <> C -> D <> E -> E <> F -> Per A B C -> Per D E F -> SuppA A B C D E F.
Lemma suppa__per : forall A B C, SuppA A B C A B C -> Per A B C.
Lemma acute_suppa__obtuse : forall A B C D E F, Acute A B C -> SuppA A B C D E F -> Obtuse D E F.
Lemma obtuse_suppa__acute : forall A B C D E F, Obtuse A B C -> SuppA A B C D E F -> Acute D E F.
Lemma lea_suppa2__lea : forall A B C D E F A' B' C' D' E' F', SuppA A B C A' B' C' -> SuppA D E F D' E' F' -> LeA A B C D E F -> LeA D' E' F' A' B' C'.
Lemma lta_suppa2__lta : forall A B C D E F A' B' C' D' E' F', SuppA A B C A' B' C' -> SuppA D E F D' E' F' -> LtA A B C D E F -> LtA D' E' F' A' B' C'.
Lemma suppa_dec : forall A B C D E F, SuppA A B C D E F \/ ~ SuppA A B C D E F.