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.