Ltac Midpoint := auto with midpoint.

(* Specifications: *)
Lemma Mid_cases : forall A B C, Midpoint A B C \/ Midpoint A C B -> Midpoint A B C.
Lemma Mid_perm : forall A B C, Midpoint A B C -> Midpoint A B C /\ Midpoint A C B.
Lemma l7_17 : forall P P' A B, Midpoint A P P' -> Midpoint B P P' -> A=B.
Lemma l7_17_bis : forall P P' A B, Midpoint A P P' -> Midpoint B P' P -> A=B.
Lemma l7_20 : forall M A B, Col A M B -> Cong M A M B -> A=B \/ Midpoint M A B.
Lemma l7_20_bis : forall M A B, A<>B -> Col A M B -> Cong M A M B -> Midpoint M A B.
Lemma cong_col_mid : forall A B C, A <> C -> Col A B C -> Cong A B B C -> Midpoint B A C.
Lemma l7_21 : forall A B C D P, ~ Col A B C -> B<>D -> Cong A B C D -> Cong B C D A -> Col A P C -> Col B P D -> Midpoint P A C /\ Midpoint P B D.
Lemma l7_22_aux : 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 -> Le C A1 C A2 -> Bet M1 C M2.
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.