(** We choose the most general notion such that l2_11 is still valid *)

Definition  weak_3_parallelogram (A B C D : Point) : Prop :=
  exists O, mid_point O A C /\ mid_point O B D.

(* Specifications: *)
Lemma weak_para_1 : forall W S V U, weak_3_parallelogram W S V U -> weak_3_parallelogram U V S W.
Theorem l2_11a_strong_strong_strong_aux : forall A B C D P Q : Point, A=C -> weak_3_parallelogram A B C D -> S A P Q + S C P Q = S B P Q + S D P Q.
Theorem l2_11a_strong_strong_strong : forall A B C D P Q : Point, weak_3_parallelogram A B C D -> S A P Q + S C P Q = S B P Q + S D P Q.
Theorem l2_11b : forall A B C D P Q : Point, parallelogram A B C D -> S4 P A Q B = S4 P D Q C.
Theorem l2_11b_strong_strong : forall A B C D P Q : Point, weak_2_parallelogram A B C D -> S4 P A Q B = S4 P D Q C.
Theorem l2_11b_strong_strong_strong : forall A B C D P Q : Point, weak_3_parallelogram A B C D -> S4 P A Q B = S4 P D Q C.
Theorem l2_12a : forall A B C D P : Point, parallelogram A B C D -> S P A B = S P D C - S A D C.
Theorem l2_12a_strong_3 : forall A B C D P : Point, weak_3_parallelogram A B C D -> S P A B = S P D C - S A D C.
Theorem l2_12b : forall A B C D P : Point, parallelogram A B C D -> S P A B = S4 P D A C.
Theorem l2_12b_strong_3 : forall A B C D P : Point, weak_3_parallelogram A B C D -> S P A B = S4 P D A C.
Theorem pascalian_ax : forall A B C P Q R : Point, Col A B C -> Col P Q R -> parallel A Q R B -> parallel B P Q C -> parallel A P R C.
Lemma diff_not_col_par_not_col : forall A B P Q, A<>B -> ~ Col A Q P -> parallel A B P Q -> ~ Col A B P.
Lemma weak_parallelogram_weak_2_parallelogram : forall A B C D, weak_parallelogram A B C D -> weak_2_parallelogram A B C D.
Lemma weak_2_parallelogram_weak_3_parallelogram : forall A B C D, weak_2_parallelogram A B C D -> weak_3_parallelogram A B C D.
Lemma weak_parallelogram_weak_3_parallelogram : forall A B C D, weak_parallelogram A B C D -> weak_3_parallelogram A B C D.
Lemma parallelogram_weak_3_parallelogram : forall A B C D, parallelogram A B C D -> weak_3_parallelogram A B C D.
Lemma weak_3_parallelogram_weak_3_parallelogram_1 : forall A B C D, weak_3_parallelogram A B C D -> weak_3_parallelogram B C D A.
Lemma weak_3_parallelogram_weak_3_parallelogram_2 : forall A B C D, weak_3_parallelogram A B C D -> weak_3_parallelogram C D A B.
Lemma weak_3_parallelogram_weak_3_parallelogram_3 : forall A B C D, weak_3_parallelogram A B C D -> weak_3_parallelogram D A B C.
Lemma weak_3_parallelogram_weak_3_parallelogram_4 : forall A B C D, weak_3_parallelogram A B C D -> weak_3_parallelogram D C B A.