(** This is Krippen lemma , proved by Gupta in its PhD in 1965 as Theorem 3.45 *)

(* Specifications: *)
Lemma l7_22 : forall A1 A2 B1 B2 C M1 M2,
Bet A1 C A2 -> Bet B1 C B2 ->
Cong C A1 C B1 -> Cong C A2 C B2 ->
Midpoint M1 A1 B1 -> Midpoint M2 A2 B2 ->
Bet M1 C M2.
Lemma bet_col1 : forall A B C D, Bet A B D -> Bet A C D -> Col A B C.
Lemma l7_25 : forall A B C,
Cong C A C B ->
exists X, Midpoint X A B.
Lemma midpoint_distinct_1 : forall I A B,
A<>B ->
Midpoint I A B ->
I<>A /\ I<>B.
Lemma midpoint_distinct_2 : forall I A B,
I<>A ->
Midpoint I A B ->
A<>B /\ I<>B.
Lemma midpoint_distinct_3 : forall I A B,
I<>B ->
Midpoint I A B ->
A<>B /\ I<>A.
Lemma midpoint_def : forall A B C, Bet A B C -> Cong A B B C -> Midpoint B A C.
Lemma midpoint_bet : forall A B C, Midpoint B A C -> Bet A B C.
Lemma midpoint_col : forall A M B, Midpoint M A B -> Col M A B.
Lemma midpoint_cong : forall A B C, Midpoint B A C -> Cong A B B C.
Lemma midpoint_not_midpoint : forall I A B,
A<>B ->
Midpoint I A B ->
~ Midpoint B A I.
Lemma swap_diff : forall (A B : Tpoint), A<>B -> B<>A.
Lemma cong_cong_half_1 : forall A M B A' M' B',
Midpoint M A B -> Midpoint M' A' B' ->
Cong A B A' B' -> Cong A M A' M'.
Lemma cong_cong_half_2 : forall A M B A' M' B',
Midpoint M A B -> Midpoint M' A' B' ->
Cong A B A' B' -> Cong B M B' M'.
Lemma cong_mid2__cong : forall A M B A' M' B',
Midpoint M A B -> Midpoint M' A' B' ->
Cong A M A' M' -> Cong A B A' B'.
Lemma mid__lt : forall A M B,
A <> B -> Midpoint M A B ->
Lt A M A B.
Lemma le_mid2__le13 : forall A M B A' M' B',
Midpoint M A B -> Midpoint M' A' B' ->
Le A M A' M' -> Le A B A' B'.
Lemma le_mid2__le12 : forall A M B A' M' B',
Midpoint M A B -> Midpoint M' A' B' ->
Le A B A' B' -> Le A M A' M'.
Lemma lt_mid2__lt13 : forall A M B A' M' B',
Midpoint M A B -> Midpoint M' A' B' ->
Lt A M A' M' -> Lt A B A' B'.
Lemma lt_mid2__lt12 : forall A M B A' M' B',
Midpoint M A B -> Midpoint M' A' B' ->
Lt A B A' B' -> Lt A M A' M'.
Lemma midpoint_preserves_out :
forall A B C A' B' C' M,
Out A B C ->
Midpoint M A A' ->
Midpoint M B B' ->
Midpoint M C C' ->
Out A' B' C'.
Lemma col_cong_bet : forall A B C D, Col A B D -> Cong A B C D -> Bet A C B -> Bet  C A D \/ Bet C B D.
Lemma col_cong2_bet1 : forall A B C D, Col A B D -> Bet A C B -> Cong A B C D -> Cong A C B D -> Bet C B D.
Lemma col_cong2_bet2 : forall A B C D, Col A B D -> Bet A C B -> Cong A B C D -> Cong A D B C -> Bet C A D.
Lemma col_cong2_bet3 : forall A B C D, Col A B D -> Bet A B C -> Cong A B C D -> Cong A C B D -> Bet B C D.
Lemma col_cong2_bet4 : forall A B C D, Col A B C -> Bet A B D -> Cong A B C D -> Cong A D B C -> Bet B D C.
Lemma col_bet2_cong1 : forall A B C D, Col A B D -> Bet A C B -> Cong A B C D -> Bet C B D -> Cong A C D B.
Lemma col_bet2_cong2 : forall A B C D, Col A B D -> Bet A C B -> Cong A B C D -> Bet C A D -> Cong D A B C.
Lemma bet2_lt2__lt : forall O o A B a b : Tpoint,
Bet a o b -> Bet A O B -> Lt o a O A -> Lt o b O B -> Lt a b A B.
Lemma bet2_lt_le__lt : forall O o A B a b : Tpoint,
Bet a o b -> Bet A O B -> Cong o a O A -> Lt o b O B -> Lt a b A B.