Set Implicit Arguments.
Unset Strict Implicit.
Require Export point_cocyclicite.
unfold colineaire in |- *; intros.
apply regulier with (a := double (cons u v)) (c := double (cons u v)); auto.
apply transitive with (double (plus (cons u v) (cons v u))); auto.
apply transitive with (double zero); auto.
apply transitive with (plus zero zero); auto.
apply compatible; auto.
Qed.
Hint Resolve colineaire_sym.
unfold colineaire in |- *; intros.
apply
transitive with (double (plus (cons u' u) (plus (cons u v) (cons v v'))));
auto.
apply
transitive
with (plus (double (cons u' u)) (double (plus (cons u v) (cons v v'))));
auto.
apply
transitive
with
(plus (double (cons u' u))
(plus (double (cons u v)) (double (cons v v'))));
auto.
apply compatible; auto.
apply
transitive with (plus zero (plus (double (cons u v)) (double (cons v v'))));
auto.
apply compatible; auto.
cut (colineaire u' u); intros; auto.
apply transitive with (plus (double (cons u v)) (double (cons v v'))); auto.
apply transitive with (plus (double (cons u v)) zero); auto.
apply compatible; auto.
apply transitive with (plus zero (double (cons u v))); auto.
Qed.
Hint Resolve colineaire_modulo_pi.
unfold orthogonal in |- *; intros.
apply transitive with (double (plus (cons u v) (cons v (opp v)))); auto.
apply transitive with (plus (double (cons u v)) (double (cons v (opp v))));
auto.
apply transitive with (plus pi (double pi)); auto.
apply compatible; auto.
apply transitive with (plus pi zero); auto.
apply compatible; auto.
apply transitive with (plus zero pi); auto.
Qed.
Hint Resolve orthogonal_opp.
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.

Lemma colineaire_transitive :
forall u v w : V, colineaire u v -> colineaire v w -> colineaire u w.