proposition: Theorem round_round_mult_FLT : (emin' <= 2 * emin)%Z -> (2 * prec <= prec')%Z -> forall x y, FLT_format beta emin prec x -> FLT_format beta emin prec y -> round beta (FLT_exp emin prec) rnd (round beta (FLT_exp emin' prec') rnd (x * y)) = round beta (FLT_exp emin prec) rnd (x * y).
proof: Proof. intros Hemin Hprec x y Fx Fy. apply round_round_mult; [|now apply generic_format_FLT|now apply generic_format_FLT]. unfold round_round_mult_hyp; split; intros ex ey; unfold FLT_exp; generalize (Zmax_spec (ex + ey - prec') emin'); generalize (Zmax_spec (ex + ey - 1 - prec') emin'); generalize (Zmax_spec (ex - prec) emin); generalize (Zmax_spec (ey - prec) emin); lia. Qed.
imports: Coq(ZArith Reals Psatz) Core FTZ