Definition double_round_mult_hyp fexp1 fexp2 :=
(forall ex ey, (fexp2 (ex + ey) <= fexp1 ex + fexp1 ey)%Z)
/\ (forall ex ey, (fexp2 (ex + ey - 1) <= fexp1 ex + fexp1 ey)%Z).

(* Specifications: *)
Lemma double_round_mult_aux :
forall (fexp1 fexp2 : Z -> Z),
double_round_mult_hyp fexp1 fexp2 ->
forall x y,
generic_format beta fexp1 x -> generic_format beta fexp1 y ->
generic_format beta fexp2 (x * y).
Lemma double_round_mult_aux :
forall (fexp1 fexp2 : Z -> Z),
double_round_mult_hyp fexp1 fexp2 ->
forall x y,
generic_format beta fexp1 x -> generic_format beta fexp1 y ->
generic_format beta fexp2 (x * y).