unfold orthogonal in |- *.
intros A B O T T' H H0 H1; try assumption.
unfold colineaire in |- *.
lapply (tangente (A:=A) (B:=B) (O:=O) (T:=T)); auto.
intros H2; try assumption.
apply
transitive
with (double (plus (cons (vec A T) (vec A B)) (cons (vec A B) (vec A T'))));
auto.
unfold double in |- *.
apply
transitive
with
(plus (plus (cons (vec A T) (vec A B)) (cons (vec A T) (vec A B)))
(plus (cons (vec A B) (vec A T')) (cons (vec A B) (vec A T'))));
auto.
apply calcul4.
apply
transitive with (plus (cons (vec O A) (vec O B)) (cons (vec O B) (vec O A))).
apply compatible; auto.
apply transitive with (double (cons (vec A B) (vec A T'))); auto.
apply
regulier
with
(a := double (cons (vec A T') (vec A B)))
(c := cons (vec O A) (vec O B)); auto.
apply
transitive
with
(double (plus (cons (vec A T') (vec A B)) (cons (vec A B) (vec A T'))));
auto.
apply transitive with (double (cons (vec A T') (vec A T'))); auto.
apply transitive with (plus zero zero); auto.
unfold double in |- *.
apply compatible; auto.
apply transitive with zero; auto.
apply transitive with (cons (vec O A) (vec O A)); auto.
Qed.

(* Specifications: *)
Theorem cocyclique :
forall M A B O M' : PO,
isocele O A B ->
isocele O M A ->
isocele O M B ->
isocele O M' A ->
isocele O M' B ->
R (double (cons (vec M' A) (vec M' B))) (double (cons (vec M A) (vec M B))).