End Double_round_mult_FLT.
Section Double_round_mult_FTZ.
Variable emin prec : Z.
Variable emin' prec' : Z.
Context { prec_gt_0_ : Prec_gt_0 prec }.
Context { prec_gt_0_' : Prec_gt_0 prec' }.

(* Specifications: *)
Theorem double_round_mult_FTZ :
(emin' + prec' <= 2 * emin + prec)%Z ->
(2 * prec <= prec')%Z ->
forall x y,
FTZ_format beta emin prec x -> FTZ_format beta emin prec y ->
round beta (FTZ_exp emin prec) rnd
(round beta (FTZ_exp emin' prec') rnd (x * y))
= round beta (FTZ_exp emin prec) rnd (x * y).
Theorem double_round_mult_FTZ :
(emin' + prec' <= 2 * emin + prec)%Z ->
(2 * prec <= prec')%Z ->
forall x y,
FTZ_format beta emin prec x -> FTZ_format beta emin prec y ->
round beta (FTZ_exp emin prec) rnd
(round beta (FTZ_exp emin' prec') rnd (x * y))
= round beta (FTZ_exp emin prec) rnd (x * y).