Definition CReal_mult (x y : CReal) : CReal :=
{|
seq := CReal_mult_seq x y;
scale := CReal_mult_scale x y;
cauchy := CReal_mult_cauchy x y;
bound := CReal_mult_bound x y
|}.
Infix "*" := CReal_mult : CReal_scope.

(* Correctness lemma for the Definition CReal_mult_lt_0_compat below. *)
Lemma CReal_mult_lt_0_compat_correct
: forall (x y : CReal) (Hx : 0 < x) (Hy : 0 < y),
(2 * 2^(proj1_sig Hx + proj1_sig Hy - 1)%Z <
seq (x * y)%CReal (proj1_sig Hx + proj1_sig Hy - 1)%Z -
seq (inject_Q 0) (proj1_sig Hx + proj1_sig Hy - 1)%Z)%Q.