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

(* Specifications: *)
Lemma l_3_4_b : forall A B C P,
Col A B C ->
Py P A B * A**C =  Py P A C * A**B.
Lemma l_28_b : forall A B U V Y,
U <> V ->
Col Y U V ->
Py A B Y = U**Y/U**V * Py A B V + Y**V/U**V * Py A B U.
Lemma l3_5_py : forall A B U V Y,
U <> V ->
Col Y U V ->
Py A Y B = U**Y / U**V * Py A V B + Y**V/ U**V * Py A U B
- (U**Y/ U**V) * (Y**V / U**V) * Py U V U.
Lemma midpoint_ratio_1 : forall O B D,
mid_point O B D ->  B<>D -> B ** O / B ** D = 1/2.
Lemma midpoint_ratio_2 : forall O B D,
mid_point O B D ->  B<>D -> O ** D / B ** D = 1/2.
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 weak_3_parallelogram_eq_side : forall A B C D,
weak_3_parallelogram A B C D -> B**C= A**D.
Lemma l3_6 : forall A B C D,
weak_3_parallelogram A B C D ->
A**C * A**C + B**D * B**D = 2*A**B * A**B + 2*B**C*B**C.
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 l_28_a : forall A B U V Y,
Col Y U V -> U <> V ->
S A B Y = U**Y/U**V * S A B V + Y**V/U**V * S A B U.
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 l3_9_aux : forall B D P Q R S Y ,
Col Y B D ->
B<>D ->
B ** Y = Q ** S ->
weak_3_parallelogram B Y S Q ->
Py4 P Q R S = Q ** S / B ** D * Py4 P B R D.
Lemma l3_9 : forall P Q R S A B C D,
parallel P R A C ->
parallel Q S B D ->
B<>D -> A<>C -> ~ perp A C B D ->
Py4 P Q R S / Py4 A B C D = (P**R / A**C) * (Q**S / B**D).
Lemma l3_10 : forall A B C D,
parallel A B C D ->
C<>D ->
A**B/C**D = Py4 A C B D / - Py C D C.
Lemma l3_10b : forall A B C D,
parallel A B C D ->
C<>D ->
A**B/C**D = Py4 B C A D / Py C D 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.
Lemma l_25_a : forall A B P Q Y,
P<>Q -> Q<>Y -> Py Q A B <> 0 ->
on_inter_line_perp Y A P Q A B ->
P**Y / Q**Y = Py P A B / Py Q A B.
Lemma l_25_b : forall A B P Q Y,
P<>Q -> Q<>Y -> Py Q A B <> 0 ->
on_inter_line_perp Y A P Q A B ->
P**Y / P**Q = Py P A B / Py4 P A Q B.
Lemma l_25_c : forall A B P Q Y,
P<>Q -> Q<>Y -> Py Q A B <> 0 ->
on_inter_line_perp Y A P Q A B ->
Q**Y / P**Q = Py Q A B / Py4 P A Q B.