Add Parametric Morphism : CReal_plus
    with signature CRealEq ==> CRealEq ==> CRealEq
      as CReal_plus_morph.#[global]
Instance CReal_plus_morph_T
  : CMorphisms.Proper
      (CMorphisms.respectful CRealEq (CMorphisms.respectful CRealEq CRealEq)) CReal_plus.

(* Specifications: *)
Lemma CReal_plus_eq_reg_l : forall (r r1 r2 : CReal), r + r1 == r + r2 -> r1 == r2.
Lemma CReal_opp_0 : -0 == 0.
Lemma CReal_opp_plus_distr : forall r1 r2, - (r1 + r2) == - r1 + - r2.
Lemma CReal_opp_involutive : forall x:CReal, --x == x.
Lemma CReal_opp_gt_lt_contravar : forall r1 r2, r1 > r2 -> - r1 < - r2.
Lemma CReal_opp_ge_le_contravar : forall r1 r2, r1 >= r2 -> - r1 <= - r2.
Lemma inject_Q_plus : forall q r : Q, inject_Q (q + r) == inject_Q q + inject_Q r.
Lemma inject_Q_one : inject_Q 1 == 1.
Lemma inject_Q_lt : forall q r : Q, Qlt q r -> inject_Q q < inject_Q r.
Lemma opp_inject_Q : forall q : Q, inject_Q (-q) == - inject_Q q.
Lemma lt_inject_Q : forall q r : Q, inject_Q q < inject_Q r -> (q < r)%Q.
Lemma le_inject_Q : forall q r : Q, inject_Q q <= inject_Q r -> (q <= r)%Q.
Lemma inject_Q_le : forall q r : Q, (q <= r)%Q -> inject_Q q <= inject_Q r.
Lemma inject_Z_plus : forall q r : Z, inject_Z (q + r) == inject_Z q + inject_Z r.
Lemma opp_inject_Z : forall n : Z, inject_Z (-n) == - inject_Z n.