(*******************************************************************************************************)

(* Specifications: *)
Lemma plgs_not_col : forall A B C D, Parallelogram_strict A B C D ->
~ Col A B C /\ ~ Col B C D /\ ~ Col C D A /\ ~ Col A B D.
Lemma not_col_sym_not_col : forall A B B' C , ~Col A B C -> Midpoint A B B' -> ~Col A B' C.
Lemma plg_existence : forall A B C, A <> B -> exists D, Parallelogram A B C D.
Lemma plgs_diff : forall A B C D, Parallelogram_strict A B C D -> Parallelogram_strict A B C D /\ A <> B /\ B <> C /\ C <> D /\ D <> A /\ A <> C /\ B <> D.
Lemma sym_par : forall A B M, A <> B -> forall A' B', Midpoint M A A' -> Midpoint M B B' -> Par A B A' B'.
Lemma symmetry_preserves_two_sides : forall A B X Y M A' B', Col X Y M -> TS X Y A B -> Midpoint M A A' -> Midpoint M B B'
-> TS X Y A' B'.
Lemma symmetry_preserves_one_side : forall A B X Y M A' B', Col X Y M -> OS X Y A B -> Midpoint M A A' -> Midpoint M B B'
-> OS X Y A' B'.
Lemma plgf_bet : forall A B A' B', Parallelogram_flat A B B' A'
-> Bet A' B' A /\ Bet B' A B
\/ Bet A' A B' /\ Bet A B' B
\/ Bet A A' B /\ Bet A' B B'
\/ Bet A B A' /\ Bet B A' B'.
Lemma plgs_existence : forall A B, A <> B -> exists C, exists D, Parallelogram_strict A B C D.
Lemma Rectangle_not_triv : forall A,
~ Rectangle A A A A.
Lemma Rectangle_triv : forall A B,
A<>B ->
Rectangle A A B B.
Lemma Rectangle_not_triv_2 : forall A B,
~ Rectangle A B A B.
Lemma Square_not_triv : forall A,
~ Square A A A A.
Lemma Square_not_triv_2 : forall A B,
~ Square A A B B.
Lemma Square_not_triv_3 : forall A B,
~ Square A B A B.
Lemma Square_Rectangle : forall A B C D,
Square A B C D -> Rectangle A B C D.
Lemma Square_Parallelogram :  forall A B C D,
Square A B C D -> Parallelogram A B C D.
Lemma Rhombus_Rectangle_Square : forall A B C D,
Rhombus A B C D ->
Rectangle A B C D ->
Square A B C D.
Lemma rhombus_cong_square : forall A B C D,
Rhombus A B C D ->
Cong A C B D ->
Square A B C D.
Lemma Kite_comm : forall A B C D,
Kite A B C D -> Kite C D A B.