intros A B C D H H0; try assumption.
cut
(ex
(fun O : PO =>
(circonscrit C A B O /\ circonscrit D A B O) /\ isocele O C D));
intros.
unfold circonscrit in H1.
elim H1; intros O H2; elim H2; intros H3 H4; elim H3; intros H5 H6; elim H5;
intros H7 H8; elim H8; intros H9 H10; clear H8 H5 H3 H2 H1;
try exact H9.
elim H6; intros H1 H2; elim H2; intros H3 H5; clear H2 H6; try exact H3.
apply (cocyclique (M:=D) (A:=C) (B:=A) (O:=O) (M':=B)); auto.
apply cocyclicite_six.
apply reciproque_cocyclique; auto.
Qed.

(* Specifications: *)
Axiom non_zero_pi : ~ R pi zero.
Lemma deux_rectangles :
forall A B C D : PO,
orthogonal (vec C A) (vec C B) ->
orthogonal (vec D A) (vec D B) ->
R (double (cons (vec B C) (vec B A))) (double (cons (vec D C) (vec D A))).