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 H6;
intros H7 H8; elim H8; intros H9 H10; clear H8 H6 H3 H2 H1;
try exact H10.
elim H5; intros H1 H2; elim H2; intros H3 H6; clear H2 H5; try exact H3.
apply (cocyclique (M:=B) (A:=C) (B:=D) (O:=O) (M':=A)); auto.
apply cocyclicite_six.
apply reciproque_cocyclique; auto.
Qed.

(* Specifications: *)
Lemma changement_base_cocyclique_2 :
forall A B C D : PO,
~ colineaire (vec C A) (vec C B) ->
R (double (cons (vec C A) (vec C B))) (double (cons (vec D A) (vec D B))) ->
R (double (cons (vec B C) (vec B A))) (double (cons (vec D C) (vec D A))).