# Library GeoCoq.Elements.OriginalProofs.lemma_doublereverse

Require Export GeoCoq.Elements.OriginalProofs.lemma_congruencetransitive.

Section Euclid.

Context `{Ax1:euclidean_neutral}.

Lemma lemma_doublereverse :

∀ A B C D,

Cong A B C D →

Cong D C B A ∧ Cong B A D C.

Proof.

intros.

assert (Cong C D D C) by (conclude cn_equalityreverse).

assert (Cong A B D C) by (conclude lemma_congruencetransitive).

assert (Cong B A A B) by (conclude cn_equalityreverse).

assert (Cong B A D C) by (conclude lemma_congruencetransitive).

assert (Cong D C B A) by (conclude lemma_congruencesymmetric).

close.

Qed.

End Euclid.

Section Euclid.

Context `{Ax1:euclidean_neutral}.

Lemma lemma_doublereverse :

∀ A B C D,

Cong A B C D →

Cong D C B A ∧ Cong B A D C.

Proof.

intros.

assert (Cong C D D C) by (conclude cn_equalityreverse).

assert (Cong A B D C) by (conclude lemma_congruencetransitive).

assert (Cong B A A B) by (conclude cn_equalityreverse).

assert (Cong B A D C) by (conclude lemma_congruencetransitive).

assert (Cong D C B A) by (conclude lemma_congruencesymmetric).

close.

Qed.

End Euclid.