Definition CReal_opp (x : CReal) : CReal :=
{|
  seq := CReal_opp_seq x;
  scale := CReal_opp_scale x;
  cauchy := CReal_opp_cauchy x;
  bound := CReal_opp_bound x
|}.Notation "- x" := (CReal_opp x) : CReal_scope.Definition CReal_minus (x y : CReal) : CReal
  := CReal_plus x (CReal_opp y).Infix "-" := CReal_minus : CReal_scope.

(* Specifications: *)
Lemma CReal_red_seq: forall (a : Z -> Q) (b : Z) (c : QCauchySeq a) (d : QBound a b), seq (mkCReal a b c d) = a.
Lemma CReal_plus_assoc : forall (x y z : CReal), (x + y) + z == x + (y + z).
Lemma CReal_plus_comm : forall x y : CReal, x + y == y + x.
Lemma CReal_plus_0_l : forall r : CReal, inject_Q 0 + r == r.
Lemma CReal_plus_0_r : forall r : CReal, r + 0 == r.
Lemma CReal_plus_lt_compat_l : forall x y z : CReal, y < z -> x + y < x + z.
Lemma CReal_plus_lt_compat_r : forall x y z : CReal, y < z -> y + x < z + x.
Lemma CReal_plus_lt_reg_l : forall x y z : CReal, x + y < x + z -> y < z.
Lemma CReal_plus_lt_reg_r : forall x y z : CReal, y + x < z + x -> y < z.
Lemma CReal_plus_le_reg_l : forall x y z : CReal, x + y <= x + z -> y <= z.
Lemma CReal_plus_le_reg_r : forall x y z : CReal, y + x <= z + x -> y <= z.
Lemma CReal_plus_le_compat_l : forall r r1 r2, r1 <= r2 -> r + r1 <= r + r2.
Lemma CReal_plus_le_lt_compat : forall r1 r2 r3 r4 : CReal, r1 <= r2 -> r3 < r4 -> r1 + r3 < r2 + r4.
Lemma CReal_plus_le_compat : forall r1 r2 r3 r4 : CReal, r1 <= r2 -> r3 <= r4 -> r1 + r3 <= r2 + r4.
Lemma CReal_plus_opp_r : forall x : CReal, x + - x == 0.
Lemma CReal_plus_opp_l : forall x : CReal, - x + x == 0.
Lemma CReal_plus_proper_r : forall x y z : CReal, CRealEq x y -> CRealEq (CReal_plus x z) (CReal_plus y z).
Lemma CReal_plus_proper_l : forall x y z : CReal, CRealEq x y -> CRealEq (CReal_plus z x) (CReal_plus z y).