Require Export GeoCoq.Elements.OriginalProofs.lemma_congruencetransitive.

Section Euclid.

Context `{Ax1:euclidean_neutral}.

Lemma lemma_doublereverse : 
   forall A B C D, 
   Cong A B C D ->
   Cong D C B A /\ Cong B A D C.
Proof.
(* Goal: forall (A B C D : @Point Ax1) (_ : @Cong Ax1 A B C D), and (@Cong Ax1 D C B A) (@Cong Ax1 B A D C) *)
intros.
(* Goal: and (@Cong Ax1 D C B A) (@Cong Ax1 B A D C) *)
assert (Cong C D D C) by (conclude cn_equalityreverse).
(* Goal: and (@Cong Ax1 D C B A) (@Cong Ax1 B A D C) *)
assert (Cong A B D C) by (conclude lemma_congruencetransitive).
(* Goal: and (@Cong Ax1 D C B A) (@Cong Ax1 B A D C) *)
assert (Cong B A A B) by (conclude cn_equalityreverse).
(* Goal: and (@Cong Ax1 D C B A) (@Cong Ax1 B A D C) *)
assert (Cong B A D C) by (conclude lemma_congruencetransitive).
(* Goal: and (@Cong Ax1 D C B A) (@Cong Ax1 B A D C) *)
assert (Cong D C B A) by (conclude lemma_congruencesymmetric).
(* Goal: and (@Cong Ax1 D C B A) (@Cong Ax1 B A D C) *)
close.
Qed.

End Euclid.


