(** Saccheri's three hypotheses *)

Definition hypothesis_of_right_saccheri_quadrilaterals := forall A B C D, Saccheri A B C D -> Per A B C.Definition hypothesis_of_acute_saccheri_quadrilaterals := forall A B C D, Saccheri A B C D -> Acute A B C.Definition hypothesis_of_obtuse_saccheri_quadrilaterals := forall A B C D, Saccheri A B C D -> Obtuse A B C.

(* Specifications: *)
Lemma per_sac__rah : forall A B C D, Saccheri A B C D -> Per A B C -> hypothesis_of_right_saccheri_quadrilaterals.
Lemma acute_sac__aah : forall A B C D, Saccheri A B C D -> Acute A B C -> hypothesis_of_acute_saccheri_quadrilaterals.
Lemma obtuse_sac__oah : forall A B C D, Saccheri A B C D -> Obtuse A B C -> hypothesis_of_obtuse_saccheri_quadrilaterals.
Lemma per__ex_saccheri : forall A B D, Per B A D -> A <> B -> A <> D -> exists C, Saccheri A B C D.
Lemma ex_saccheri : exists A B C D, Saccheri A B C D.
Lemma ex_lambert : exists A B C D, Lambert A B C D.
Lemma saccheri_s_three_hypotheses : hypothesis_of_acute_saccheri_quadrilaterals \/ hypothesis_of_right_saccheri_quadrilaterals \/ hypothesis_of_obtuse_saccheri_quadrilaterals.
Lemma not_aah : hypothesis_of_right_saccheri_quadrilaterals \/ hypothesis_of_obtuse_saccheri_quadrilaterals -> ~ hypothesis_of_acute_saccheri_quadrilaterals.
Lemma not_rah : hypothesis_of_acute_saccheri_quadrilaterals \/ hypothesis_of_obtuse_saccheri_quadrilaterals -> ~ hypothesis_of_right_saccheri_quadrilaterals.
Lemma not_oah : hypothesis_of_acute_saccheri_quadrilaterals \/ hypothesis_of_right_saccheri_quadrilaterals -> ~ hypothesis_of_obtuse_saccheri_quadrilaterals.
Lemma lam_per__rah : forall A B C D, Lambert A B C D -> (Per B C D <-> hypothesis_of_right_saccheri_quadrilaterals).
Lemma lam_acute__aah : forall A B C D, Lambert A B C D -> (Acute B C D <-> hypothesis_of_acute_saccheri_quadrilaterals).
Lemma lam_obtuse__oah : forall A B C D, Lambert A B C D -> (Obtuse B C D <-> hypothesis_of_obtuse_saccheri_quadrilaterals).
Lemma t22_11__per : forall A B C D, Saccheri A B C D -> (CongA A B D B D C <-> Per A B C).
Lemma t22_11__acute : forall A B C D, Saccheri A B C D -> (LtA A B D B D C <-> Acute A B C).
Lemma t22_11__obtuse : forall A B C D, Saccheri A B C D -> (LtA B D C A B D <-> Obtuse A B C).
Lemma t22_12__rah : forall A B C, A <> B -> B <> C -> Per A B C -> (SumA B C A C A B A B C <-> hypothesis_of_right_saccheri_quadrilaterals).
Lemma t22_12__aah : forall A B C P Q R, Per A B C -> SumA B C A C A B P Q R -> (Acute P Q R <-> hypothesis_of_acute_saccheri_quadrilaterals).
Lemma t22_12__oah : forall A B C P Q R, Per A B C -> SumA B C A C A B P Q R -> (Obtuse P Q R <-> hypothesis_of_obtuse_saccheri_quadrilaterals).
Lemma t22_14__bet_aux : forall A B C P Q R, hypothesis_of_right_saccheri_quadrilaterals -> ~ Col A B C -> TriSumA A B C P Q R -> Acute A B C -> Acute A C B -> Bet P Q R.
Lemma t22_14__bet : hypothesis_of_right_saccheri_quadrilaterals -> forall A B C P Q R, TriSumA A B C P Q R -> Bet P Q R.
Lemma t22_14__sams_nbet_aux : forall A B C D E F P Q R, hypothesis_of_acute_saccheri_quadrilaterals -> ~ Col A B C -> SumA C A B A B C D E F -> SumA D E F B C A P Q R -> Acute A B C -> Acute A C B -> SAMS D E F B C A /\ ~ Bet P Q R.
Lemma t22_14__sams_nbet : hypothesis_of_acute_saccheri_quadrilaterals -> forall A B C D E F P Q R, ~ Col A B C -> SumA C A B A B C D E F -> SumA D E F B C A P Q R -> SAMS D E F B C A /\ ~ Bet P Q R.
Lemma t22_14__nsams_aux : forall A B C D E F, hypothesis_of_obtuse_saccheri_quadrilaterals -> ~ Col A B C -> SumA C A B A B C D E F -> Acute A B C -> Acute A C B -> ~ SAMS D E F B C A.
Lemma t22_14__nsams : hypothesis_of_obtuse_saccheri_quadrilaterals -> forall A B C D E F, ~ Col A B C -> SumA C A B A B C D E F -> ~ SAMS D E F B C A.
Lemma t22_14__rah : forall A B C P Q R, ~ Col A B C -> TriSumA A B C P Q R -> Bet P Q R -> hypothesis_of_right_saccheri_quadrilaterals.
Lemma t22_14__aah : forall A B C D E F P Q R, SumA C A B A B C D E F -> SumA D E F B C A P Q R -> SAMS D E F B C A -> ~ Bet P Q R -> hypothesis_of_acute_saccheri_quadrilaterals.
Lemma t22_14__oah : forall A B C D E F, SumA C A B A B C D E F -> ~ SAMS D E F B C A -> hypothesis_of_obtuse_saccheri_quadrilaterals.
Lemma cong_mid__suma : forall A B C M, ~ Col A B C -> Midpoint M A B -> Cong M A M C -> SumA C A B A B C A C B.
Lemma t22_17__rah : forall A B C M, ~ Col A B C -> Midpoint M A B -> Cong M A M C -> (Per A C B <-> hypothesis_of_right_saccheri_quadrilaterals).
Lemma t22_17__oah : forall A B C M, ~ Col A B C -> Midpoint M A B -> Cong M A M C -> (Obtuse A C B <-> hypothesis_of_obtuse_saccheri_quadrilaterals).
Lemma t22_17__aah : forall A B C M, ~ Col A B C -> Midpoint M A B -> Cong M A M C -> (Acute A C B <-> hypothesis_of_acute_saccheri_quadrilaterals).
Lemma t22_20 : ~ hypothesis_of_obtuse_saccheri_quadrilaterals -> 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 absolute_exterior_angle_theorem : ~ hypothesis_of_obtuse_saccheri_quadrilaterals -> forall A B C D E F B', Bet B A B' -> A <> B' -> SumA A B C B C A D E F -> LeA D E F C A B'.
Lemma sac2__sac : forall A B C D E F, Saccheri A B C D -> Saccheri A B E F -> D <> F -> Saccheri D C E F.