intros u v w; try assumption.
apply
transitive
with
(plus (cons u v)
(plus (plus (cons (opp v) (opp w)) (plus (cons (opp w) w) pi))
(cons w (opp u)))).
apply compatible.
apply reflexive.
cut
(R
(plus (plus (cons (opp v) (opp w)) (plus (cons (opp w) w) pi))
(cons w (opp u)))
(plus (cons w (opp u))
(plus (cons (opp v) (opp w)) (plus (cons (opp w) w) pi)))).
intros.
apply
transitive
with
(plus (cons w (opp u))
(plus (cons (opp v) (opp w)) (plus (cons (opp w) w) pi))).
apply compatible.
apply reflexive.
apply transitive with (plus (cons (opp v) (opp w)) zero).
apply symetrique.
apply plus_zero.
apply compatible.
apply reflexive.
apply transitive with (plus pi pi).
apply symetrique.
try exact pi_plus_pi.
apply symetrique.
apply compatible.
apply oppu_u.
apply reflexive.
apply plus_sym.
apply plus_sym.
cut
(R
(plus (plus (cons (opp v) (opp w)) (plus (cons (opp w) w) pi))
(cons w (opp u)))
(plus
(plus (cons (opp v) (opp w)) (plus (cons (opp w) w) (cons w (opp u))))
pi)).
intros.
apply
transitive
with
(plus (cons u v)
(plus
(plus (cons (opp v) (opp w))
(plus (cons (opp w) w) (cons w (opp u)))) pi)).
apply compatible.
apply reflexive.
try exact H.
apply transitive with (plus (cons u v) (plus (cons (opp v) (opp u)) pi)).
apply compatible.
apply reflexive.
apply compatible.
apply symetrique.
apply (Chasles_2 (opp v) (opp w) w (opp u)).
apply reflexive.
apply transitive with (plus (plus (cons u v) (cons (opp v) (opp u))) pi).
apply point_angle.plus_assoc.
apply transitive with (plus zero pi).
apply compatible.
apply transitive with (plus (cons u v) (cons v u)).
apply compatible.
apply reflexive.
apply oppu_oppv.
apply transitive with (cons u u).
apply Chasles.
apply angle_nul.
apply reflexive.
apply transitive with (plus pi zero).
apply plus_sym.
apply pi_plus_zero.
apply calcul2.
Qed.

(* Specifications: *)
Theorem somme_triangle :
forall A B C : PO,
R
(plus (cons (vec A B) (vec A C))
(plus (cons (vec B C) (vec B A)) (cons (vec C A) (vec C B)))) pi.