unfold colineaire, orthogonal in |- *; intros.
apply transitive with (double (plus (cons u v) (cons v w))); auto.
apply transitive with (plus (double (cons u v)) (double (cons v w))); auto.
apply transitive with (plus pi zero); auto.
apply compatible; auto.
apply transitive with (plus zero pi); auto.
Qed.

(* Specifications: *)
Lemma projete_ortho_cote :
forall A B C M P Q T : PO,
colineaire (vec C A) (vec C Q) ->
colineaire (vec P C) (vec P B) ->
colineaire (vec B A) (vec B T) ->
orthogonal (vec T M) (vec T B) ->
orthogonal (vec P M) (vec P B) ->
orthogonal (vec Q M) (vec Q C) ->
R (double (cons (vec P Q) (vec P T)))
(plus (double (cons (vec C A) (vec C M)))
(double (cons (vec B M) (vec B A)))).
Lemma colineaire_transitive :
forall u v w : V, colineaire u v -> colineaire v w -> colineaire u w.