Require Export GeoCoq.Elements.OriginalProofs.euclidean_tactics.

Section Euclid.

Context `{Ax1:euclidean_neutral}.

Lemma lemma_parallelsymmetric : 
   forall A B C D, 
   Par A B C D ->
   Par C D A B.
Proof.
(* Goal: forall (A B C D : @Point Ax1) (_ : @Par Ax1 A B C D), @Par Ax1 C D A B *)
intros.
let Tf:=fresh in
assert (Tf:exists a b c d m, (neq A B /\ neq C D /\ Col A B a /\ Col A B b /\ neq a b /\ Col C D c /\ Col C D d /\ neq c d /\ ~ Meet A B C D /\ BetS a m d /\ BetS c m b)) by (conclude_def Par );destruct Tf as [a[b[c[d[m]]]]];spliter.
(* Goal: @Par Ax1 C D A B *)
assert (~ Meet C D A B).
(* Goal: not (@Meet Ax1 C D A B) *)
(* Goal: @Par Ax1 C D A B *)
 {
(* Goal: not (@Meet Ax1 C D A B) *)
 intro.
 let Tf:=fresh in
 assert (Tf:exists P, (neq C D /\ neq A B /\ Col C D P /\ Col A B P)) by (conclude_def Meet );destruct Tf as [P];spliter.
(* Goal: False *)
 assert (Meet A B C D) by (conclude_def Meet ).
(* Goal: False *)
 contradict.
 }
(* Goal: @Par Ax1 C D A B *)
assert (Par C D A B) by (conclude_def Par ).
(* Goal: @Par Ax1 C D A B *)
close.
Qed.

End Euclid.


