(* Specifications: *)
Lemma calcul4 : forall a b c d : AV, R (plus (plus a b) (plus c d)) (plus (plus a c) (plus b d)).
Theorem angle_inscrit : forall A B M O : PO, isocele O M A -> isocele O M B -> R (double (cons (vec M A) (vec M B))) (cons (vec O A) (vec O B)).
Theorem tangente : forall A B O T : PO, isocele O A B -> orthogonal (vec A T) (vec O A) -> R (double (cons (vec A T) (vec A B))) (cons (vec O A) (vec O B)).
Theorem tangente_reciproque : forall A B O T T' : PO, isocele O A B -> orthogonal (vec A T) (vec O A) -> R (double (cons (vec A T') (vec A B))) (cons (vec O A) (vec O B)) -> colineaire (vec A T) (vec A T').
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))).
Lemma exists_opp_angle : forall a : AV, exists b : AV, R (plus a b) zero.
Lemma calcul4 : forall a b c d : AV, R (plus (plus a b) (plus c d)) (plus (plus a c) (plus b d)).
Theorem angle_inscrit : forall A B M O : PO, isocele O M A -> isocele O M B -> R (double (cons (vec M A) (vec M B))) (cons (vec O A) (vec O B)).
Lemma triangle_rectangle : forall A B M O : PO, isocele O M A -> isocele O M B -> orthogonal (vec M A) (vec M B) -> R (cons (vec O A) (vec O B)) pi.
Lemma triangle_diametre : forall A B M O : PO, isocele O M A -> isocele O M B -> R (cons (vec O A) (vec O B)) pi -> orthogonal (vec M A) (vec M B).
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))).
Lemma exists_opp_angle : forall a : AV, exists b : AV, R (plus a b) zero.
Lemma colineaire_sym : forall u v : V, colineaire u v -> colineaire v u.
Lemma colineaire_modulo_pi : forall u v u' v' : V, colineaire u u' -> colineaire v v' -> R (double (cons u' v')) (double (cons u v)).
Lemma orthogonal_opp : forall u v : V, orthogonal u v -> orthogonal u (opp v).
Lemma orthogonal_colineaire : forall u v w : V, orthogonal u v -> colineaire v w -> orthogonal u w.
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)))).
Theorem droite_Simson : forall A B C M P Q T : PO, ~ colineaire (vec C A) (vec C M) -> 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) -> (colineaire (vec P Q) (vec P T) <-> sont_cocycliques C A M B).
Lemma colineaire_sym : forall u v : V, colineaire u v -> colineaire v u.
Lemma colineaire_modulo_pi : forall u v u' v' : V, colineaire u u' -> colineaire v v' -> R (double (cons u' v')) (double (cons u v)).
Lemma orthogonal_opp : forall u v : V, orthogonal u v -> orthogonal u (opp v).
Lemma orthogonal_colineaire : forall u v w : V, orthogonal u v -> colineaire v w -> orthogonal u w.
Lemma colineaire_transitive : forall u v w : V, colineaire u v -> colineaire v w -> colineaire u w.
Lemma double_orthogonal : forall u u' v v' : V, orthogonal u u' -> orthogonal v v' -> R (double (cons u v)) (double (cons u' v')).
Lemma critere_orthogonal : forall u v : V, R (cons u v) (cons v (opp u)) -> orthogonal u v.
Lemma critere_orthogonal_reciproque : forall u v : V, orthogonal u v -> R (cons u v) (cons v (opp u)).