(** This is Euclid Book I, Proposition 24. *)

(* Specifications: *)
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.
End T11_2.