Require Export GeoCoq.Tarski_dev.Ch14_prod.
Section Order.
Context `{T2D:Tarski_2D}.
Context `{TE:@Tarski_euclidean Tn TnEQD}.

(* Specifications: *)
Lemma l14_36_a : forall O E E' A B C,
Sum O E E' A B C -> Out O A B -> Bet O A C.
Lemma l14_36_b : forall O E E' A B C,
Sum O E E' A B C -> Out O A B -> O <> A /\ O <> C /\ A <> C.
(** Lemma 14.37 *)
Lemma O_not_positive : forall O E, ~ Ps O E O.
Lemma pos_null_neg : forall O E E' A MA,
Opp O E E' A MA -> Ps O E A \/ O = A \/ Ps O E MA.
Lemma sum_pos_pos : forall O E E' A B AB,
Ps O E A -> Ps O E B -> Sum O E E' A B AB -> Ps O E AB.
Lemma prod_pos_pos : forall O E E' A B AB,
Ps O E A -> Ps O E B -> Prod O E E' A B AB -> Ps O E AB.
Lemma pos_not_neg : forall O E A, Ps O E A -> ~Ng O E A.
Lemma neg_not_pos : forall O E A, Ng O E A -> ~Ps O E A.
Lemma opp_pos_neg : forall O E E' A MA, Ps O E A ->  Opp O E E' A MA -> Ng O E MA.
Lemma opp_neg_pos : forall O E E' A MA, Ng O E A ->  Opp O E E' A MA -> Ps O E MA.
Lemma ltP_ar2 : forall O E E' A B, LtP O E E' A B -> Ar2 O E E' A B A.
Lemma ltP_neq : forall O E E' A B, LtP O E E' A B -> A <> B.
Lemma leP_refl : forall O E E' A, LeP O E E' A A.
Lemma ltP_sum_pos : forall O E E' A B C , Ps O E B -> Sum O E E' A B C -> LtP O E E' A C.
Lemma pos_opp_neg : forall O E E' A mA, Ps O E A -> Opp O E E' A mA -> Ng O E mA.
Lemma diff_pos_diff_neg : forall O E E' A B AmB BmA,
Diff O E E' A B AmB -> Diff O E E' B A BmA -> Ps O E AmB -> Ng O E BmA.
Lemma not_pos_and_neg : forall O E A, ~(Ps O E A /\ Ng O E A).
Lemma leP_asym : forall O E E' A B, LeP O E E' A B -> LeP O E E' B A -> A = B.
Lemma leP_trans : forall O E E' A B C, LeP O E E' A B -> LeP O E E' B C -> LeP O E E' A C.
(* sum_preserves leP : a <= x /\ b <= y => a + b <= x + y *)
Lemma leP_sum_leP : forall O E E' A B C X Y Z,
LeP O E E' A X -> LeP O E E' B Y -> Sum O E E' A B C -> Sum O E E' X Y Z ->
LeP O E E' C Z.
Lemma square_pos : forall O E E' A A2,
O <> A -> Prod O E E' A A A2 -> Ps O E A2.