Add Parametric Morphism : CReal_abs
with signature CRealEq ==> CRealEq
as CReal_abs_morph.

(* Specifications: *)
Lemma CReal_abs_le : forall a b:CReal, -b <= a <= b -> CReal_abs a <= b.
Lemma CReal_abs_minus_sym : forall x y : CReal,
CReal_abs (x - y) == CReal_abs (y - x).
Lemma CReal_abs_lt : forall x y : CReal,
CReal_abs x < y -> prod (x < y) (-x < y).
Lemma CReal_abs_triang : forall x y : CReal,
CReal_abs (x + y) <= CReal_abs x + CReal_abs y.
Lemma CReal_abs_triang_inv : forall x y : CReal,
CReal_abs x - CReal_abs y <= CReal_abs (x - y).
Lemma CReal_abs_triang_inv2 : forall x y : CReal,
CReal_abs (CReal_abs x - CReal_abs y) <= CReal_abs (x - y).
Lemma CReal_abs_gt : forall x : CReal,
x < CReal_abs x -> x < 0.
Lemma Rabs_def1 : forall x y : CReal,
x < y -> -x < y -> CReal_abs x < y.
(* The proof by cases on the signs of x and y applies constructively, because of the positivity hypotheses. *)
Lemma CReal_abs_mult : forall x y : CReal,
CReal_abs (x * y) == CReal_abs x * CReal_abs y.
Lemma CReal_abs_def2 : forall x a:CReal,
CReal_abs x <= a -> (x <= a) /\ (- a <= x).