unfold double in |- *.
intros a b; try assumption.
apply transitive with (plus (plus b a) (plus a b)).
apply compatible; auto.
apply transitive with (plus b (plus a (plus a b))).
auto.
apply transitive with (plus b (plus (plus a a) b)).
apply compatible; auto.
apply transitive with (plus (plus (plus a a) b) b).
auto.
auto.
Qed.
Hint Resolve double_plus.
Definition colineaire (u v : V) : Prop := R (double (cons u v)) zero.
Definition orthogonal (u v : V) := R (double (cons u v)) pi.

Lemma orthogonal_sym : forall u v : V, orthogonal u v -> orthogonal v u.
unfold orthogonal, double in |- *; intros.