Built with Alectryon, running Coq+SerAPI v8.10.0+0.7.0. Coq sources are in this panel; goals and messages will appear in the other. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑ Ctrl+↓ to navigate, Ctrl+🖱️ to focus.
This file is part of the Flocq formalization of floating-point arithmetic in Coq: http://flocq.gforge.inria.fr/
Copyright (C) 2010-2018 Sylvie Boldo
Copyright (C) 2010-2018 Guillaume Melquiond
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the COPYING file for more details.

Error of the multiplication is in the FLX/FLT format

Require Import Core Operations Plus_error.

Section Fprop_mult_error.

Variable beta : radix.
Notation bpow e := (bpow beta e).

Variable prec : Z.
Context { prec_gt_0_ : Prec_gt_0 prec }.

Notation format := (generic_format beta (FLX_exp prec)).
Notation cexp := (cexp beta (FLX_exp prec)).

Variable rnd : R -> Z.
Context { valid_rnd : Valid_rnd rnd }.
Auxiliary result that provides the exponent
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x y : R, format x -> format y -> (round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R -> exists f : float beta, F2R f = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R /\ (cexp (F2R f) <= Fexp f)%Z /\ Fexp f = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x y : R, format x -> format y -> (round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R -> exists f : float beta, F2R f = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R /\ (cexp (F2R f) <= Fexp f)%Z /\ Fexp f = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R

exists f : float beta, F2R f = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R /\ (cexp (F2R f) <= Fexp f)%Z /\ Fexp f = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R = 0%R

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R = 0%R

(round beta (FLX_exp prec) rnd (x * y) - x * y)%R = 0%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R = 0%R

(round beta (FLX_exp prec) rnd 0 - 0)%R = 0%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R = 0%R

(0 - 0)%R = 0%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(x * y)%R <> 0%R -> (bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(f - x * y)%R <> 0%R -> (bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R

x <> 0%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
Hxy0:x = 0%R

(x * y)%R = 0%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

y <> 0%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R
Hxy0:y = 0%R

(x * y)%R = 0%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
(* *)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

(cexp (x * y) - prec <= cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

(mag beta (x * y) - prec - prec <= mag beta x - prec + (mag beta y - prec))%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

(mag beta (x * y) - prec - prec <= ex - prec + (mag beta y - prec))%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

(mag beta (x * y) - prec - prec <= ex - prec + (ey - prec))%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

(exy - prec - prec <= ex - prec + (ey - prec))%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

(exy - 1 < ex + ey)%Z -> (exy - prec - prec <= ex - prec + (ey - prec))%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
(exy - 1 < ex + ey)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

(exy - 1 < ex + ey)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

(bpow (exy - 1) < bpow (ex + ey))%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

(Rabs (x * y) < bpow (ex + ey))%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

(Rabs x * Rabs y < bpow (ex + ey))%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

(Rabs x * Rabs y < bpow ex * bpow ey)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

(0 <= Rabs x)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
(0 <= Rabs y)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
(Rabs x < bpow ex)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
(Rabs y < bpow ey)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

(0 <= Rabs y)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
(Rabs x < bpow ex)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
(Rabs y < bpow ey)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

(Rabs x < bpow ex)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
(Rabs y < bpow ey)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R

(Rabs y < bpow ey)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
(* *)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(cexp x + cexp y <= cexp (x * y))%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(mag beta x - prec + (mag beta y - prec) <= mag beta (x * y) - prec)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(ex - prec + (mag beta y - prec) <= mag beta (x * y) - prec)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(ex - prec + (ey - prec) <= mag beta (x * y) - prec)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(ex - prec + (ey - prec) <= exy - prec)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(ex - 1 + (ey - 1) < exy)%Z -> (ex - prec + (ey - prec) <= exy - prec)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
(ex - 1 + (ey - 1) < exy)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(0 < prec)%Z -> (ex - 1 + (ey - 1) < exy)%Z -> (ex - prec + (ey - prec) <= exy - prec)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
(ex - 1 + (ey - 1) < exy)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(ex - 1 + (ey - 1) < exy)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(bpow (ex - 1 + (ey - 1)) < bpow exy)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(bpow (ex - 1 + (ey - 1)) <= Rabs (x * y))%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(bpow (ex - 1 + (ey - 1)) <= Rabs x * Rabs y)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(bpow (ex - 1) * bpow (ey - 1) <= Rabs x * Rabs y)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(0 <= bpow (ex - 1))%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
(0 <= bpow (ey - 1))%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
(bpow (ex - 1) <= Rabs x)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
(bpow (ey - 1) <= Rabs y)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(0 <= bpow (ey - 1))%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
(bpow (ex - 1) <= Rabs x)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
(bpow (ey - 1) <= Rabs y)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(bpow (ex - 1) <= Rabs x)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
(bpow (ey - 1) <= Rabs y)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z

(bpow (ey - 1) <= Rabs y)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
(* *)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLX_exp prec) x); Fexp := cexp x |} * y)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLX_exp prec) x); Fexp := cexp x |} * F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLX_exp prec) y); Fexp := cexp y |})%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - F2R (Fmult {| Fnum := Ztrunc (scaled_mantissa beta (FLX_exp prec) x); Fexp := cexp x |} {| Fnum := Ztrunc (scaled_mantissa beta (FLX_exp prec) y); Fexp := cexp y |}))%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y); Fexp := cexp x + cexp y |})%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (F2R {| Fnum := rnd (scaled_mantissa beta (FLX_exp prec) (x * y)); Fexp := cexp (x * y) |} + - F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y); Fexp := cexp x + cexp y |})%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = F2R (Fplus (Fopp {| Fnum := Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y); Fexp := cexp x + cexp y |}) {| Fnum := rnd (scaled_mantissa beta (FLX_exp prec) (x * y)); Fexp := cexp (x * y) |})
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = F2R (let '(m1, m2, e) := Falign (Fopp {| Fnum := Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y); Fexp := cexp x + cexp y |}) {| Fnum := rnd (scaled_mantissa beta (FLX_exp prec) (x * y)); Fexp := cexp (x * y) |} in {| Fnum := m1 + m2; Fexp := e |})
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = F2R (let '(m1, m2, e) := if (cexp x + cexp y <=? cexp (x * y))%Z then ((- (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)))%Z, (rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)))%Z, (cexp x + cexp y)%Z) else ((- (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) * beta ^ (cexp x + cexp y - cexp (x * y)))%Z, rnd (scaled_mantissa beta (FLX_exp prec) (x * y)), cexp (x * y)) in {| Fnum := m1 + m2; Fexp := e |})
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R

exists f0 : float beta, F2R f0 = (f - x * y)%R /\ (cexp (F2R f0) <= Fexp f0)%Z /\ Fexp f0 = (cexp x + cexp y)%Z
(* *)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R

F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R /\ (cexp (F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |}) <= Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |})%Z /\ Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R

(cexp (F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |}) <= Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |})%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R

(cexp (f - x * y) <= Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |})%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R

(cexp (f - x * y) <= cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

(cexp (f - x * y) <= cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

(cexp (f - x * y) <= cexp (x * y) - prec)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
(cexp (x * y) - prec <= cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

(mag beta (f - x * y) - prec <= mag beta (x * y) - prec - prec)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
(cexp (x * y) - prec <= cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

(mag beta (f - x * y) <= mag beta (x * y) - prec)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
(cexp (x * y) - prec <= cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

(mag beta (f - x * y) <= exy - prec)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
(cexp (x * y) - prec <= cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

(Rabs (round beta (FLX_exp prec) rnd (x * y) - x * y) < bpow (exy - prec))%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
(cexp (x * y) - prec <= cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

(Rabs (round beta (FLX_exp prec) rnd (x * y) - x * y) < ulp beta (FLX_exp prec) (x * y))%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
ulp beta (FLX_exp prec) (x * y) = bpow (exy - prec)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
(cexp (x * y) - prec <= cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

ulp beta (FLX_exp prec) (x * y) = bpow (exy - prec)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
(cexp (x * y) - prec <= cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

bpow (cexp (x * y)) = bpow (exy - prec)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
(cexp (x * y) - prec <= cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

bpow (FLX_exp prec (mag beta (x * y))) = bpow (exy - prec)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
(cexp (x * y) - prec <= cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z

(cexp (x * y) - prec <= cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R
Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hz:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
f:=round beta (FLX_exp prec) rnd (x * y):R
Hxy0:(x * y)%R <> 0%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x * y) < bpow exy)%R
er:Z
Her:(bpow (er - 1) <= Rabs (f - x * y) < bpow er)%R
ex:Z
Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
ey:Z
Hey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
Hy0:y <> 0%R
Hc1:(cexp (x * y) - prec <= cexp x + cexp y)%Z
Hc2:(cexp x + cexp y <= cexp (x * y))%Z
Hr:F2R {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (f - x * y)%R

Fexp {| Fnum := - (Ztrunc (scaled_mantissa beta (FLX_exp prec) x) * Ztrunc (scaled_mantissa beta (FLX_exp prec) y)) + rnd (scaled_mantissa beta (FLX_exp prec) (x * y)) * beta ^ (cexp (x * y) - (cexp x + cexp y)); Fexp := cexp x + cexp y |} = (cexp x + cexp y)%Z
reflexivity. Qed.
Error of the multiplication in FLX
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x y : R, format x -> format y -> format (round beta (FLX_exp prec) rnd (x * y) - x * y)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x y : R, format x -> format y -> format (round beta (FLX_exp prec) rnd (x * y) - x * y)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y

format (round beta (FLX_exp prec) rnd (x * y) - x * y)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hr0:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R = 0%R

format (round beta (FLX_exp prec) rnd (x * y) - x * y)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hr0:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
format (round beta (FLX_exp prec) rnd (x * y) - x * y)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hr0:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R = 0%R

format 0
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hr0:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
format (round beta (FLX_exp prec) rnd (x * y) - x * y)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hr0:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R

format (round beta (FLX_exp prec) rnd (x * y) - x * y)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hr0:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R
H2:(cexp (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (cexp x + cexp y)%Z

format (round beta (FLX_exp prec) rnd (x * y) - x * y)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hr0:(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R
H2:(cexp (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (cexp x + cexp y)%Z

format (F2R {| Fnum := m; Fexp := e |})
now apply generic_format_F2R. Qed.
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall (x : R) (e : Z), format x -> format (x * bpow e)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall (x : R) (e : Z), format x -> format (x * bpow e)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x

format (x * bpow e)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
Zx:x = 0%R

format (x * bpow e)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
Nzx:x <> 0%R
format (x * bpow e)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
Zx:x = 0%R

format (x * bpow e)
rewrite Zx, Rmult_0_l; apply generic_format_0.
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
Nzx:x <> 0%R

format (x * bpow e)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
Nzx:x <> 0%R

format (F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLX_exp prec) x); Fexp := cexp x |} * bpow e)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLX_exp prec) x):Z
ex:=cexp x:Z

format (F2R {| Fnum := mx; Fexp := ex |} * bpow e)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLX_exp prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta

format (F2R {| Fnum := mx; Fexp := ex |} * bpow e)
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLX_exp prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta

F2R f = (F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLX_exp prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta
(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R -> (cexp (F2R {| Fnum := mx; Fexp := ex |} * bpow e) <= Fexp f)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLX_exp prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta

F2R f = (F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R
now unfold F2R; simpl; rewrite bpow_plus, Rmult_assoc.
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLX_exp prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta

(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R -> (cexp (F2R {| Fnum := mx; Fexp := ex |} * bpow e) <= Fexp f)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLX_exp prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta
Nzmx:(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R

(cexp (x * bpow e) <= Fexp f)%Z
beta:radix
prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLX_exp prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta
Nzmx:(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R

(FLX_exp prec (mag beta x + e) <= FLX_exp prec (mag beta x) + e)%Z
unfold FLX_exp; omega. Qed. End Fprop_mult_error. Section Fprop_mult_error_FLT. Variable beta : radix. Notation bpow e := (bpow beta e). Variable emin prec : Z. Context { prec_gt_0_ : Prec_gt_0 prec }. Notation format := (generic_format beta (FLT_exp emin prec)). Notation cexp := (cexp beta (FLT_exp emin prec)). Variable rnd : R -> Z. Context { valid_rnd : Valid_rnd rnd }.
Error of the multiplication in FLT with underflow requirements
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x y : R, format x -> format y -> ((x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R) -> format (round beta (FLT_exp emin prec) rnd (x * y) - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x y : R, format x -> format y -> ((x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R) -> format (round beta (FLT_exp emin prec) rnd (x * y) - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R

format (round beta (FLT_exp emin prec) rnd (x * y) - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R

format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R = 0%R

format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R = 0%R

format 0
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R

format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R = 0%R

format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R = 0%R

format (round beta (FLT_exp emin prec) rnd (x * y) - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R = 0%R

format (round beta (FLT_exp emin prec) rnd 0 - 0)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R = 0%R

format (0 - 0)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R = 0%R

format 0
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x * y)%R <> 0%R -> (bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R

format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R

format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R

generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
generic_format beta (FLX_exp prec) y
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R

generic_format beta (FLX_exp prec) y
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R

(round beta (FLX_exp prec) rnd (x * y) - x * y)%R <> 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R

(round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R <> 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
(bpow (emin + prec - 1) <= Rabs (x * y))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R

(bpow (emin + prec - 1) <= Rabs (x * y))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R

(bpow (emin + prec - 1) <= bpow (emin + 2 * prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R

(emin + prec - 1 <= emin + 2 * prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R

(0 < prec)%Z -> (emin + prec - 1 <= emin + 2 * prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z

format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z

format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
(bpow (emin + prec - 1) <= Rabs (x * y))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z

format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLX_exp prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
(bpow (emin + prec - 1) <= bpow (emin + 2 * prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z

format (f - x * y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z

format (F2R {| Fnum := m; Fexp := e |})
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z

m <> 0%Z -> (cexp (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= Fexp {| Fnum := m; Fexp := e |})%Z
H3:Fexp {| Fnum := m; Fexp := e |} = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z

(cexp (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z

(cexp (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z

(Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin <= e)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec >= emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec)%Z

(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec <= e)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
(emin <= e)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec >= emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec)%Z

(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec <= Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
(emin <= e)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec >= emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec)%Z

(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec <= mag beta (F2R {| Fnum := m; Fexp := e |}) - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
(emin <= e)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin

(emin <= e)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin

(emin <= Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin

(emin <= mag beta x - prec + (mag beta y - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin

(x * y)%R <> 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
(emin <= mag beta x - prec + (mag beta y - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hr0:(x * y)%R = 0%R

(f - x * y)%R = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
(emin <= mag beta x - prec + (mag beta y - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hr0:(x * y)%R = 0%R

(round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
(emin <= mag beta x - prec + (mag beta y - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hr0:(x * y)%R = 0%R

(round beta (FLT_exp emin prec) rnd 0 - 0)%R = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
(emin <= mag beta x - prec + (mag beta y - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hr0:(x * y)%R = 0%R

(0 - 0)%R = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
(emin <= mag beta x - prec + (mag beta y - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R

(emin <= mag beta x - prec + (mag beta y - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R

x <> 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
(emin <= mag beta x - prec + (mag beta y - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:x = 0%R

(x * y)%R = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
(emin <= mag beta x - prec + (mag beta y - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R

(emin <= mag beta x - prec + (mag beta y - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R

y <> 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R
(emin <= mag beta x - prec + (mag beta y - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hx0:x <> 0%R
Hxy0:y = 0%R

(x * y)%R = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R
(emin <= mag beta x - prec + (mag beta y - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R

(emin <= mag beta x - prec + (mag beta y - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R
ex:Z
Ex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R

(emin <= ex - prec + (mag beta y - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R
ex:Z
Ex:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(emin <= ex - prec + (mag beta y - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R
ex:Z
Ex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Ey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

(emin <= ex - prec + (ey - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R
ex:Z
Ex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Ey:(bpow (ey - 1) <= Rabs y < bpow ey)%R

(emin <= ex - prec + (ey - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R
ex:Z
Ex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Ey:(bpow (ey - 1) <= Rabs y < bpow ey)%R

(emin + 2 * prec - 1 < ex + ey)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R
ex:Z
Ex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Ey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
H:(emin + 2 * prec - 1 < ex + ey)%Z
(emin <= ex - prec + (ey - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R
ex:Z
Ex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Ey:(bpow (ey - 1) <= Rabs y < bpow ey)%R

(emin + 2 * prec - 1 < ex + ey)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R
ex:Z
Ex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Ey:(bpow (ey - 1) <= Rabs y < bpow ey)%R

(bpow (emin + 2 * prec - 1) < bpow (ex + ey))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R
ex:Z
Ex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Ey:(bpow (ey - 1) <= Rabs y < bpow ey)%R

(Rabs (x * y) < bpow (ex + ey))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R
ex:Z
Ex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Ey:(bpow (ey - 1) <= Rabs y < bpow ey)%R

(Rabs x * Rabs y < bpow ex * bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R
ex:Z
Ex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Ey:(bpow (ey - 1) <= Rabs y < bpow ey)%R

(Rabs x < bpow ex)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R
ex:Z
Ex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Ey:(bpow (ey - 1) <= Rabs y < bpow ey)%R
(Rabs y < bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(bpow (emin + 2 * prec - 1) <= Rabs (x * y))%R
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Hr0:(f - x * y)%R <> 0%R
Hxy':(x * y)%R <> 0%R
m, e:Z
H1:F2R {| Fnum := m; Fexp := e |} = (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R
H2:(Generic_fmt.cexp beta (FLX_exp prec) (F2R {| Fnum := m; Fexp := e |}) <= e)%Z
H3:e = (Generic_fmt.cexp beta (FLX_exp prec) x + Generic_fmt.cexp beta (FLX_exp prec) y)%Z
M1:(mag beta (F2R {| Fnum := m; Fexp := e |}) - prec < emin)%Z
M2:Z.max (mag beta (F2R {| Fnum := m; Fexp := e |}) - prec) emin = emin
Hxy0:(x * y)%R <> 0%R
Hx0:x <> 0%R
Hy0:y <> 0%R
ex:Z
Ex:(bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Ey:(bpow (ey - 1) <= Rabs y < bpow ey)%R

(Rabs y < bpow ey)%R
apply Ey. Qed.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall y : float beta, F2R y <> 0%R -> (bpow (Fexp y) <= Rabs (F2R y))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall y : float beta, F2R y <> 0%R -> (bpow (Fexp y) <= Rabs (F2R y))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z

F2R {| Fnum := ny; Fexp := ey |} <> 0%R -> (bpow (Fexp {| Fnum := ny; Fexp := ey |}) <= Rabs (F2R {| Fnum := ny; Fexp := ey |}))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z

(IZR ny * bpow ey)%R <> 0%R -> (bpow ey <= IZR (Z.abs ny) * bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z

(0 <= Z.abs ny)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
(0 < Z.abs ny)%Z -> (IZR ny * bpow ey)%R <> 0%R -> (bpow ey <= IZR (Z.abs ny) * bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
0%Z = Z.abs ny -> (IZR ny * bpow ey)%R <> 0%R -> (bpow ey <= IZR (Z.abs ny) * bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z

(0 < Z.abs ny)%Z -> (IZR ny * bpow ey)%R <> 0%R -> (bpow ey <= IZR (Z.abs ny) * bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
0%Z = Z.abs ny -> (IZR ny * bpow ey)%R <> 0%R -> (bpow ey <= IZR (Z.abs ny) * bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
Hy:(0 < Z.abs ny)%Z

(bpow ey <= IZR (Z.abs ny) * bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
0%Z = Z.abs ny -> (IZR ny * bpow ey)%R <> 0%R -> (bpow ey <= IZR (Z.abs ny) * bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
Hy:(0 < Z.abs ny)%Z

(1 * bpow ey <= IZR (Z.abs ny) * bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
0%Z = Z.abs ny -> (IZR ny * bpow ey)%R <> 0%R -> (bpow ey <= IZR (Z.abs ny) * bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
Hy:(0 < Z.abs ny)%Z

(0 <= bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
Hy:(0 < Z.abs ny)%Z
(1 <= IZR (Z.abs ny))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
0%Z = Z.abs ny -> (IZR ny * bpow ey)%R <> 0%R -> (bpow ey <= IZR (Z.abs ny) * bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
Hy:(0 < Z.abs ny)%Z

(1 <= IZR (Z.abs ny))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
0%Z = Z.abs ny -> (IZR ny * bpow ey)%R <> 0%R -> (bpow ey <= IZR (Z.abs ny) * bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z

0%Z = Z.abs ny -> (IZR ny * bpow ey)%R <> 0%R -> (bpow ey <= IZR (Z.abs ny) * bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
H1:0%Z = Z.abs ny

(IZR ny * bpow ey)%R = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
H1:0%Z = Z.abs ny

(0 * bpow ey)%R = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
H1:0%Z = Z.abs ny
0%Z = ny
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
ny, ey:Z
H1:0%Z = Z.abs ny

0%Z = ny
now apply sym_eq, Z.abs_0_iff, sym_eq. Qed.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall (x y : R) (e : Z), format x -> format y -> (bpow (e + 2 * prec - 1) <= Rabs (x * y))%R -> (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R <> 0%R -> (bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x * y) - x * y))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall (x y : R) (e : Z), format x -> format y -> (bpow (e + 2 * prec - 1) <= Rabs (x * y))%R -> (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R <> 0%R -> (bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x * y) - x * y))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z

format x -> format y -> (bpow (e + 2 * prec - 1) <= Rabs (x * y))%R -> (round beta (FLT_exp emin prec) rnd (x * y) - x * y)%R <> 0%R -> (bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x * y) - x * y))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R

format x -> format y -> (bpow (e + 2 * prec - 1) <= Rabs (x * y))%R -> (f - x * y)%R <> 0%R -> (bpow e <= Rabs (f - x * y))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R

(f - x * y)%R <> 0%R -> (bpow e <= Rabs (f - x * y))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R

(round beta (FLT_exp emin prec) rnd (F2R (Fmult {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x); Fexp := cexp x |} {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp y |})) - F2R (Fmult {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x); Fexp := cexp x |} {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp y |}))%R <> 0%R -> (bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (F2R (Fmult {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x); Fexp := cexp x |} {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp y |})) - F2R (Fmult {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x); Fexp := cexp x |} {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp y |})))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R

(round beta (FLT_exp emin prec) rnd (F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |}) - F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |})%R <> 0%R -> (bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |}) - F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |}))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
Hn:round beta (FLT_exp emin prec) rnd (F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |}) = F2R {| Fnum := n; Fexp := cexp x + cexp y |}

(round beta (FLT_exp emin prec) rnd (F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |}) - F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |})%R <> 0%R -> (bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |}) - F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |}))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z

(F2R {| Fnum := n; Fexp := cexp x + cexp y |} - F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |})%R <> 0%R -> (bpow e <= Rabs (F2R {| Fnum := n; Fexp := cexp x + cexp y |} - F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |}))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z

F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R -> (bpow e <= Rabs (F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |}))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R

(bpow e <= Rabs (F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |}))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R

(bpow e <= bpow (Fexp {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |}))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R

(bpow e <= bpow (cexp x + cexp y))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R

(e <= cexp x + cexp y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R

(e <= Z.max (mag beta x - prec) emin + Z.max (mag beta y - prec) emin)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R

(e <= Z.max (Build_mag_prop beta x ex Hx - prec) emin + Z.max (mag beta y - prec) emin)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

(e <= Z.max (Build_mag_prop beta x ex Hx - prec) emin + Z.max (Build_mag_prop beta y ey Hy - prec) emin)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

(e <= ex - prec + (ey - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R
(ex - prec + (ey - prec) <= Z.max (ex - prec) emin + Z.max (ey - prec) emin)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

(e <= ex - prec + (ey - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

(e + 2 * prec - 1 < ex + ey)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

(bpow (e + 2 * prec - 1) < bpow (ex + ey))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

(Rabs (x * y) < bpow (ex + ey))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

(Rabs x * Rabs y < bpow ex * bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

(0 <= Rabs x)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R
(0 <= Rabs y)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R
(Rabs x < bpow ex)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R
(Rabs y < bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

(0 <= Rabs y)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R
(Rabs x < bpow ex)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R
(Rabs y < bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

(Rabs x < bpow ex)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R
(Rabs y < bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

x <> 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R
(Rabs y < bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R
K':x = 0%R

(Rabs (x * y) < bpow (e + 2 * prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R
(Rabs y < bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

(Rabs y < bpow ey)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
H1:(bpow (e + 2 * prec - 1) <= Rabs (x * y))%R
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R

y <> 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
e:Z
f:=round beta (FLT_exp emin prec) rnd (x * y):R
Fx:format x
Fy:format y
n:Z
K:F2R {| Fnum := n - Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x) * Ztrunc (scaled_mantissa beta (FLT_exp emin prec) y); Fexp := cexp x + cexp y |} <> 0%R
ex:Z
Hx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
ey:Z
Hy:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R
K':y = 0%R

(Rabs (x * y) < bpow (e + 2 * prec - 1))%R
rewrite K', Rmult_0_r, Rabs_R0; apply bpow_gt_0. Qed.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall (x : R) (e : Z), format x -> (emin + prec - mag beta x <= e)%Z -> format (x * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall (x : R) (e : Z), format x -> (emin + prec - mag beta x <= e)%Z -> format (x * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z

format (x * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z
Zx:x = 0%R

format (x * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z
Nzx:x <> 0%R
format (x * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z
Zx:x = 0%R

format (x * bpow e)
rewrite Zx, Rmult_0_l; apply generic_format_0.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z
Nzx:x <> 0%R

format (x * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z
Nzx:x <> 0%R

format (F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x); Fexp := cexp x |} * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z

format (F2R {| Fnum := mx; Fexp := ex |} * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta

format (F2R {| Fnum := mx; Fexp := ex |} * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta

F2R f = (F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta
(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R -> (cexp (F2R {| Fnum := mx; Fexp := ex |} * bpow e) <= Fexp f)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta

F2R f = (F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R
now unfold F2R; simpl; rewrite bpow_plus, Rmult_assoc.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta

(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R -> (cexp (F2R {| Fnum := mx; Fexp := ex |} * bpow e) <= Fexp f)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta
Nzmx:(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R

(cexp (x * bpow e) <= Fexp f)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta
Nzmx:(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R

(FLT_exp emin prec (mag beta x + e) <= FLT_exp emin prec (mag beta x) + e)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta
Nzmx:(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R

(mag beta x + e - prec <= Z.max (mag beta x - prec + e) (emin + e))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(emin + prec - mag beta x <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta
Nzmx:(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R
n:=(mag beta x - prec + e)%Z:Z

(n <= Z.max n (emin + e))%Z
apply Z.le_max_l. Qed.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall (x : R) (e : Z), format x -> (0 <= e)%Z -> format (x * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall (x : R) (e : Z), format x -> (0 <= e)%Z -> format (x * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z

format (x * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z
Zx:x = 0%R

format (x * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z
Nzx:x <> 0%R
format (x * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z
Zx:x = 0%R

format (x * bpow e)
rewrite Zx, Rmult_0_l; apply generic_format_0.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z
Nzx:x <> 0%R

format (x * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z
Nzx:x <> 0%R

format (F2R {| Fnum := Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x); Fexp := cexp x |} * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z

format (F2R {| Fnum := mx; Fexp := ex |} * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta

format (F2R {| Fnum := mx; Fexp := ex |} * bpow e)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta

F2R f = (F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta
(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R -> (cexp (F2R {| Fnum := mx; Fexp := ex |} * bpow e) <= Fexp f)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta

F2R f = (F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R
now unfold F2R; simpl; rewrite bpow_plus, Rmult_assoc.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta

(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R -> (cexp (F2R {| Fnum := mx; Fexp := ex |} * bpow e) <= Fexp f)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta
Nzmx:(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R

(cexp (x * bpow e) <= Fexp f)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta
Nzmx:(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R

(FLT_exp emin prec (mag beta x + e) <= FLT_exp emin prec (mag beta x) + e)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta
Nzmx:(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R

(Z.max (mag beta x + e - prec) emin <= Z.max (mag beta x - prec + e) (emin + e))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(0 <= e)%Z
Nzx:x <> 0%R
mx:=Ztrunc (scaled_mantissa beta (FLT_exp emin prec) x):Z
ex:=cexp x:Z
f:={| Fnum := mx; Fexp := ex + e |} : float beta:float beta
Nzmx:(F2R {| Fnum := mx; Fexp := ex |} * bpow e)%R <> 0%R

(Z.max (mag beta x + e - prec) emin <= Z.max (mag beta x + e - prec) (emin + e))%Z
apply Z.max_le_compat_l; omega. Qed. End Fprop_mult_error_FLT.