Ltac cases_per A B C := elim (per_dec A B C);intros.

(* Specifications: *)
Lemma l_28_midpoint : forall O A B P Q, mid_point O A B -> 2 * Py O P Q = Py A P Q + Py B P Q.
Lemma l_28_b_midpoint : forall O A B P Q, mid_point O A B -> 2 * Py P O Q = Py P A Q + Py P B Q - 1/ 2 * Py A B A.
Lemma l_27_a : forall A B C D P Q, weak_3_parallelogram A B C D -> Py A P Q + Py C P Q = Py B P Q + Py D P Q.
Lemma l_27_b : forall A B C D P Q, weak_3_parallelogram A B C D -> Py4 A P B Q = Py4 D P C Q.
Lemma midpoint_is_midpoint: forall I A B, mid_point I A B -> A<>B -> is_midpoint I A B.
Lemma midpoint_on_line_d: forall I A B, mid_point I A B -> A<>B -> on_line_d A I B (0-1).
Lemma symmetric_point_unicity : forall O B C D, mid_point O B D -> mid_point O D C -> B=C.
Lemma weak_3_parallelogram_parallel : forall A B C D, weak_3_parallelogram A B C D -> parallel B C A D.
Lemma eq_half_eq_zero : forall x : F, x = 1/2 * x -> x=0.
Lemma l3_6_b : forall A B C D, weak_3_parallelogram A B C D -> Py A B C = - Py B A D.
Lemma l_27_c : forall A B C D P Q, weak_3_parallelogram A B C D -> Py P A Q + Py P C Q = Py P B Q + Py P D Q + 2 * Py B A D.
Lemma l3_8_a : forall A B C D P, weak_3_parallelogram A B C D -> Py P A B = Py4 P D A C.
Lemma l3_8_b : forall A B C D P, weak_3_parallelogram A B C D -> Py P A B = Py P D C - Py A D C.
Lemma on_foot_per : forall A B C F, on_foot F A B C -> per A F B.
Lemma herron_qin : forall A B C, S A B C * S A B C = 1 / (2*2*2*2) * (Py A B A * Py A C A - Py B A C * Py B A C).
Lemma perp_not_parallel : forall A B C D, perp A B C D -> A <> B -> C <> D -> ~ parallel A B C D.
Lemma not_perp_to_itself : forall A B, A <> B ->~ perp A B A B.
Lemma parallel_not_perp : forall A B C D, parallel A B C D -> A <> B -> C <> D -> ~ perp A B C D.