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.

Axiom non_zero_pi : ~ R pi zero.