(* 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.
Proof with Perp.
intros.
cases_equality A B.
left;auto.
right.
assert (Per C B C).
eapply l8_3...
eauto with Col.
Perp.
Qed.

Lemma l8_10 : forall A B C A' B' C',
Per A B C -> Cong_3 A B C A' B' C' -> Per A' B' C'.