(* Julien Narboux *)
(* Formalization of *)
(* Tarski's axiomatic *)
Require Export Ch07_midpoint.
Unset Regular Subst Tactic.
Definition Per := fun A B C =>
exists C', is_midpoint B C C' /\ Cong A C A C'.
Hint Resolve l8_2 : Perp.
Ltac Perp := eauto with Perp.
intros.
unfold Per.
exists B;intuition.
Qed.
Hint Resolve l8_5 : Perp.
intros.
unfold Per in *.
DecompExAnd H C'.
suppose (Cong A' C A' C').
assert (C=C').
eapply l4_19.
2:apply H4.
2:apply H.
assumption.
subst C'.
eapply l7_3.
assumption.
DecompExAnd H0 C''.
assert (Cong C C C' C'').
eapply l7_13.
apply l7_2.
apply H3.
apply l7_2.
apply H2.
treat_equalities.
auto.
Qed.
Ltac let_symmetric C P A :=
let id1:=fresh in (assert (id1:(exists A', is_midpoint P A A'));
[apply symmetric_point_construction|DecompEx id1 C]).
Hint Resolve l8_7 : Perp.
Proof with Perp.
intros.
eapply l8_7...
Qed.

Lemma l8_9 : forall A B C, Per A B C -> Col A B C -> A=B \/ C=B.