Parameter pisurdeux : AV.Axiom double_pisurdeux : R (double pisurdeux) pi.

(* Specifications: *)
Lemma construction_orthogonal : forall u : V, exists v : V, orthogonal v u.
Lemma unicite_circonscrit : forall M A B O O' : PO, isocele O A B -> isocele O M B -> isocele O M A -> isocele O' A B -> isocele O' M B -> isocele O' M A -> (colineaire (vec O A) (vec O' A) /\ colineaire (vec O B) (vec O' B)) /\ colineaire (vec O M) (vec O' M).
Lemma construction_isocele_base : forall (A B : PO) (a : AV), exists u : V, (exists v : V, R (cons (vec A B) u) (cons v (vec B A)) /\ R (cons u v) (double a)).
Lemma abba : forall A B : PO, R (cons (vec A B) (vec B A)) pi.
Lemma calcul5 : forall a b c d : AV, R (plus (plus a (plus b c)) (plus d d)) (plus a (plus (plus d b) (plus d c))).
Lemma construction_circonscrit_vecteur : forall M A B : PO, ex (fun u : V => ex (fun v : V => ex (fun w : V => (R (cons u v) (double (cons (vec M A) (vec M B))) /\ R (cons u w) (double (cons (vec B A) (vec B M))) /\ R (cons v w) (double (cons (vec A B) (vec A M)))) /\ R (cons (vec A B) u) (cons v (vec B A)) /\ R (cons w (vec M B)) (cons (vec B M) v) /\ R (cons (vec M A) w) (cons u (vec A M))))).
Lemma construction_orthogonal : forall u : V, exists v : V, orthogonal v u.
Lemma unicite_circonscrit : forall M A B O O' : PO, isocele O A B -> isocele O M B -> isocele O M A -> isocele O' A B -> isocele O' M B -> isocele O' M A -> (colineaire (vec O A) (vec O' A) /\ colineaire (vec O B) (vec O' B)) /\ colineaire (vec O M) (vec O' M).
Lemma construction_isocele_base : forall (A B : PO) (a : AV), exists u : V, (exists v : V, R (cons (vec A B) u) (cons v (vec B A)) /\ R (cons u v) (double a)).
Lemma abba : forall A B : PO, R (cons (vec A B) (vec B A)) pi.
Lemma calcul5 : forall a b c d : AV, R (plus (plus a (plus b c)) (plus d d)) (plus a (plus (plus d b) (plus d c))).
Lemma construction_circonscrit_vecteur : forall M A B : PO, ex (fun u : V => ex (fun v : V => ex (fun w : V => (R (cons u v) (double (cons (vec M A) (vec M B))) /\ R (cons u w) (double (cons (vec B A) (vec B M))) /\ R (cons v w) (double (cons (vec A B) (vec A M)))) /\ R (cons (vec A B) u) (cons v (vec B A)) /\ R (cons w (vec M B)) (cons (vec B M) v) /\ R (cons (vec M A) w) (cons u (vec A M))))).