Axiom
  construction_circonscrit :
    forall M A B : PO,
    ~ colineaire (vec M A) (vec M B) ->
    exists O : PO, isocele O A B /\ isocele O A M /\ isocele O B M.Definition circonscrit (M A B O : PO) :=
  isocele O A B /\ isocele O A M /\ isocele O B M.Definition sont_cocycliques (M A B M' : PO) :=
  ex
    (fun O : PO =>
     ex
       (fun O' : PO =>
        (circonscrit M A B O /\ circonscrit M' A B O') /\
        colineaire (vec O A) (vec O' A) /\ colineaire (vec O B) (vec O' B))).

(* Specifications: *)
Lemma isocele_sym : forall A B C : PO, isocele A B C -> isocele A C B.
Lemma unicite_perpendiculaire : forall u v u' v' : V, colineaire u u' -> orthogonal u v -> orthogonal u' v' -> colineaire v v'.
Theorem reciproque_cocyclique : forall M A B M' : PO, ~ colineaire (vec M A) (vec M B) -> R (double (cons (vec M' A) (vec M' B))) (double (cons (vec M A) (vec M B))) -> sont_cocycliques M A B M'.
Lemma isocele_sym : forall A B C : PO, isocele A B C -> isocele A C B.
Theorem reciproque_cocyclique : forall M A B M' : PO, ~ colineaire (vec M A) (vec M B) -> R (double (cons (vec M' A) (vec M' B))) (double (cons (vec M A) (vec M B))) -> sont_cocycliques M A B M'.