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) 2009-2018 Sylvie Boldo
Copyright (C) 2009-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.

Floating-point format with abrupt underflow

Require Import Raux Defs Round_pred Generic_fmt.
Require Import Float_prop Ulp FLX.

Section RND_FTZ.

Variable beta : radix.

Notation bpow e := (bpow beta e).

Variable emin prec : Z.

Context { prec_gt_0_ : Prec_gt_0 prec }.

Inductive FTZ_format (x : R) : Prop :=
  FTZ_spec (f : float beta) :
    x = F2R f ->
    (x <> 0%R -> Zpower beta (prec - 1) <= Z.abs (Fnum f) < Zpower beta prec)%Z ->
    (emin <= Fexp f)%Z ->
    FTZ_format x.

Definition FTZ_exp e := if Zlt_bool (e - prec) emin then (emin + prec - 1)%Z else (e - prec)%Z.
Properties of the FTZ format
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

Valid_exp FTZ_exp
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

Valid_exp FTZ_exp
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z

((FTZ_exp k < k)%Z -> (FTZ_exp (k + 1) <= k)%Z) /\ ((k <= FTZ_exp k)%Z -> (FTZ_exp (FTZ_exp k + 1) <= FTZ_exp k)%Z /\ (forall l : Z, (l <= FTZ_exp k)%Z -> FTZ_exp l = FTZ_exp k))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z

(((if k - prec <? emin then emin + prec - 1 else k - prec) < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= (if k - prec <? emin then emin + prec - 1 else k - prec))%Z -> ((if (if k - prec <? emin then emin + prec - 1 else k - prec) + 1 - prec <? emin then emin + prec - 1 else (if k - prec <? emin then emin + prec - 1 else k - prec) + 1 - prec) <= (if k - prec <? emin then emin + prec - 1 else k - prec))%Z /\ (forall l : Z, (l <= (if k - prec <? emin then emin + prec - 1 else k - prec))%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (if (k - prec <? emin)%Z then (emin + prec - 1)%Z else (k - prec)%Z)))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z

(if (k - prec <? emin)%Z then (k - prec < emin)%Z else (k - prec >= emin)%Z) -> (((if k - prec <? emin then emin + prec - 1 else k - prec) < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= (if k - prec <? emin then emin + prec - 1 else k - prec))%Z -> ((if (if k - prec <? emin then emin + prec - 1 else k - prec) + 1 - prec <? emin then emin + prec - 1 else (if k - prec <? emin then emin + prec - 1 else k - prec) + 1 - prec) <= (if k - prec <? emin then emin + prec - 1 else k - prec))%Z /\ (forall l : Z, (l <= (if k - prec <? emin then emin + prec - 1 else k - prec))%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (if (k - prec <? emin)%Z then (emin + prec - 1)%Z else (k - prec)%Z)))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z

((emin + prec - 1 < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= emin + prec - 1)%Z -> ((if emin + prec - 1 + 1 - prec <? emin then emin + prec - 1 else emin + prec - 1 + 1 - prec) <= emin + prec - 1)%Z /\ (forall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Z))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
((k - prec < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= k - prec)%Z -> ((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(emin + prec - 1 < k)%Z

((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z
((if emin + prec - 1 + 1 - prec <? emin then emin + prec - 1 else emin + prec - 1 + 1 - prec) <= emin + prec - 1)%Z /\ (forall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Z)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
((k - prec < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= k - prec)%Z -> ((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z

((if emin + prec - 1 + 1 - prec <? emin then emin + prec - 1 else emin + prec - 1 + 1 - prec) <= emin + prec - 1)%Z /\ (forall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Z)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
((k - prec < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= k - prec)%Z -> ((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z

((if emin + prec - 1 + 1 - prec <? emin then emin + prec - 1 else emin + prec - 1 + 1 - prec) <= emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z
forall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
((k - prec < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= k - prec)%Z -> ((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z

(if (emin + prec + 1 - prec <? emin)%Z then (emin + prec + 1 - prec < emin)%Z else (emin + prec + 1 - prec >= emin)%Z) -> ((if emin + prec - 1 + 1 - prec <? emin then emin + prec - 1 else emin + prec - 1 + 1 - prec) <= emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z
forall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
((k - prec < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= k - prec)%Z -> ((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z
H3:(emin + prec + 1 - prec < emin)%Z

((if emin + prec - 1 + 1 - prec <? emin then emin + prec - 1 else emin + prec - 1 + 1 - prec) <= emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z
H3:(emin + prec + 1 - prec >= emin)%Z
((if emin + prec - 1 + 1 - prec <? emin then emin + prec - 1 else emin + prec - 1 + 1 - prec) <= emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z
forall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
((k - prec < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= k - prec)%Z -> ((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z
H3:(emin + prec + 1 - prec >= emin)%Z

((if emin + prec - 1 + 1 - prec <? emin then emin + prec - 1 else emin + prec - 1 + 1 - prec) <= emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z
forall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
((k - prec < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= k - prec)%Z -> ((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z
H3:(emin + prec + 1 - prec >= emin)%Z

(if (emin + prec - 1 + 1 - prec <? emin)%Z then (emin + prec - 1 + 1 - prec < emin)%Z else (emin + prec - 1 + 1 - prec >= emin)%Z) -> ((if emin + prec - 1 + 1 - prec <? emin then emin + prec - 1 else emin + prec - 1 + 1 - prec) <= emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z
forall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
((k - prec < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= k - prec)%Z -> ((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z
H3:(emin + prec + 1 - prec >= emin)%Z

(0 < prec)%Z -> (if (emin + prec - 1 + 1 - prec <? emin)%Z then (emin + prec - 1 + 1 - prec < emin)%Z else (emin + prec - 1 + 1 - prec >= emin)%Z) -> ((if emin + prec - 1 + 1 - prec <? emin then emin + prec - 1 else emin + prec - 1 + 1 - prec) <= emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z
forall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
((k - prec < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= k - prec)%Z -> ((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z

forall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
((k - prec < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= k - prec)%Z -> ((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z
l:Z
H3:(l <= emin + prec - 1)%Z

(if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
((k - prec < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= k - prec)%Z -> ((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec < emin)%Z
H2:(k <= emin + prec - 1)%Z
l:Z
H3:(l <= emin + prec - 1)%Z

(if (l - prec <? emin)%Z then (l - prec < emin)%Z else (l - prec >= emin)%Z) -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
((k - prec < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= k - prec)%Z -> ((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z

((k - prec < k)%Z -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z) /\ ((k <= k - prec)%Z -> ((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
H2:(k - prec < k)%Z

((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
H2:(k <= k - prec)%Z
((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
H2:(k - prec < k)%Z

(if (k + 1 - prec <? emin)%Z then (k + 1 - prec < emin)%Z else (k + 1 - prec >= emin)%Z) -> ((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
H2:(k <= k - prec)%Z
((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
H2:(k <= k - prec)%Z

((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
k:Z
H1:(k - prec >= emin)%Z
H2:(k <= k - prec)%Z

(0 < prec)%Z -> ((if k - prec + 1 - prec <? emin then emin + prec - 1 else k - prec + 1 - prec) <= k - prec)%Z /\ (forall l : Z, (l <= k - prec)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (k - prec)%Z)
split ; intros ; omega. Qed.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

forall x : R, FTZ_format x -> FLXN_format beta prec x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

forall x : R, FTZ_format x -> FLXN_format beta prec x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:x <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := xm; Fexp := xe |}) < beta ^ prec)%Z
Hx3:(emin <= Fexp {| Fnum := xm; Fexp := xe |})%Z

FLXN_format beta prec x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:x <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := xm; Fexp := xe |}) < beta ^ prec)%Z
Hx3:(emin <= Fexp {| Fnum := xm; Fexp := xe |})%Z

x = F2R ?f
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:x <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := xm; Fexp := xe |}) < beta ^ prec)%Z
Hx3:(emin <= Fexp {| Fnum := xm; Fexp := xe |})%Z
x <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum ?f) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:x <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := xm; Fexp := xe |}) < beta ^ prec)%Z
Hx3:(emin <= Fexp {| Fnum := xm; Fexp := xe |})%Z

x <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := xm; Fexp := xe |}) < beta ^ prec)%Z
exact Hx2. Qed.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

forall x : R, FTZ_format x -> generic_format beta FTZ_exp x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

forall x : R, FTZ_format x -> generic_format beta FTZ_exp x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x

generic_format beta FTZ_exp x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x

generic_format beta (FLX_exp prec) x -> generic_format beta FTZ_exp x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x

x <> 0%R -> (FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
Zx:x <> 0%R

(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:x <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := xm; Fexp := xe |}) < beta ^ prec)%Z
Hx3:(emin <= Fexp {| Fnum := xm; Fexp := xe |})%Z
Zx:x <> 0%R

(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:x <> 0%R -> (beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R

(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R

(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R

xm <> 0%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R
Zxm:xm <> 0%Z
(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:xm = 0%Z

x = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R
Zxm:xm <> 0%Z
(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:xm = 0%Z

F2R {| Fnum := 0; Fexp := xe |} = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R
Zxm:xm <> 0%Z
(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R
Zxm:xm <> 0%Z

(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R
Zxm:xm <> 0%Z

((if mag beta x - prec <? emin then emin + prec - 1 else mag beta x - prec) <= mag beta x - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R
Zxm:xm <> 0%Z

(mag beta x - prec <= mag beta x - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R
Zxm:xm <> 0%Z
(emin <= mag beta x - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R
Zxm:xm <> 0%Z

(emin <= mag beta x - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R
Zxm:xm <> 0%Z

(emin <= mag beta (IZR xm) + xe - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R
Zxm:xm <> 0%Z

(prec - 1 < mag beta (IZR xm))%Z -> (emin <= mag beta (IZR xm) + xe - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R
Zxm:xm <> 0%Z
(prec - 1 < mag beta (IZR xm))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R
Zxm:xm <> 0%Z

(prec - 1 < mag beta (IZR xm))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
xm, xe:Z
Hx1:x = F2R {| Fnum := xm; Fexp := xe |}
Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%Z
Hx3:(emin <= xe)%Z
Zx:x <> 0%R
Zxm:xm <> 0%Z

(beta ^ (prec - 1) <= Z.abs xm)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x
generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x

generic_format beta (FLX_exp prec) x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:FTZ_format x

FLXN_format beta prec x
now apply FLXN_format_FTZ. Qed.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

forall x : R, generic_format beta FTZ_exp x -> FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

forall x : R, generic_format beta FTZ_exp x -> FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:generic_format beta FTZ_exp x

FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
Hx:generic_format beta FTZ_exp 0

FTZ_format 0
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:generic_format beta FTZ_exp x
Hx3:x <> 0%R
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
Hx:generic_format beta FTZ_exp 0

0%R = F2R {| Fnum := 0; Fexp := emin |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
Hx:generic_format beta FTZ_exp 0
0%R <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := 0; Fexp := emin |}) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
Hx:generic_format beta FTZ_exp 0
(emin <= Fexp {| Fnum := 0; Fexp := emin |})%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:generic_format beta FTZ_exp x
Hx3:x <> 0%R
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
Hx:generic_format beta FTZ_exp 0

0%R <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := 0; Fexp := emin |}) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
Hx:generic_format beta FTZ_exp 0
(emin <= Fexp {| Fnum := 0; Fexp := emin |})%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:generic_format beta FTZ_exp x
Hx3:x <> 0%R
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
Hx:generic_format beta FTZ_exp 0
H:0%R <> 0%R

(beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := 0; Fexp := emin |}) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
Hx:generic_format beta FTZ_exp 0
(emin <= Fexp {| Fnum := 0; Fexp := emin |})%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:generic_format beta FTZ_exp x
Hx3:x <> 0%R
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
Hx:generic_format beta FTZ_exp 0

(emin <= Fexp {| Fnum := 0; Fexp := emin |})%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:generic_format beta FTZ_exp x
Hx3:x <> 0%R
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:generic_format beta FTZ_exp x
Hx3:x <> 0%R

FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:x = F2R {| Fnum := Ztrunc (x * bpow (- (if (mag beta x - prec <? emin)%Z then (emin + prec - 1)%Z else (mag beta x - prec)%Z))); Fexp := if (mag beta x - prec <? emin)%Z then (emin + prec - 1)%Z else (mag beta x - prec)%Z |}
Hx3:x <> 0%R

FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx:x = F2R {| Fnum := Ztrunc (x * bpow (- (if (Build_mag_prop beta x ex Hx4 - prec <? emin)%Z then (emin + prec - 1)%Z else (Build_mag_prop beta x ex Hx4 - prec)%Z))); Fexp := if (Build_mag_prop beta x ex Hx4 - prec <? emin)%Z then (emin + prec - 1)%Z else (Build_mag_prop beta x ex Hx4 - prec)%Z |}
Hx3:x <> 0%R

FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx:x = F2R {| Fnum := Ztrunc (x * bpow (- (if (ex - prec <? emin)%Z then (emin + prec - 1)%Z else (ex - prec)%Z))); Fexp := if (ex - prec <? emin)%Z then (emin + prec - 1)%Z else (ex - prec)%Z |}
Hx3:x <> 0%R

FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx:x = F2R {| Fnum := Ztrunc (x * bpow (- (if (ex - prec <? emin)%Z then (emin + prec - 1)%Z else (ex - prec)%Z))); Fexp := if (ex - prec <? emin)%Z then (emin + prec - 1)%Z else (ex - prec)%Z |}
Hx3:x <> 0%R

FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx:x = F2R {| Fnum := Ztrunc (x * bpow (- (if (ex - prec <? emin)%Z then (emin + prec - 1)%Z else (ex - prec)%Z))); Fexp := if (ex - prec <? emin)%Z then (emin + prec - 1)%Z else (ex - prec)%Z |}
Hx3:x <> 0%R

(if (ex - prec <? emin)%Z then (ex - prec < emin)%Z else (ex - prec >= emin)%Z) -> x = F2R {| Fnum := Ztrunc (x * bpow (- (if (ex - prec <? emin)%Z then (emin + prec - 1)%Z else (ex - prec)%Z))); Fexp := if (ex - prec <? emin)%Z then (emin + prec - 1)%Z else (ex - prec)%Z |} -> FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R

(if (ex - prec <? emin)%Z then (ex - prec < emin)%Z else (ex - prec >= emin)%Z) -> x = F2R {| Fnum := Ztrunc (x * bpow (- (if (ex - prec <? emin)%Z then (emin + prec - 1)%Z else (ex - prec)%Z))); Fexp := if (ex - prec <? emin)%Z then (emin + prec - 1)%Z else (ex - prec)%Z |} -> FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(Rabs x >= bpow ex)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(bpow ex <= Rabs x)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(bpow ex <= F2R {| Fnum := Z.abs (Ztrunc (x * bpow (- (emin + prec - 1)))); Fexp := emin + prec - 1 |})%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(1 * bpow ex <= F2R {| Fnum := Z.abs (Ztrunc (x * bpow (- (emin + prec - 1)))); Fexp := emin + prec - 1 |})%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(1 * bpow ex <= IZR (Fnum {| Fnum := Z.abs (Ztrunc (x * bpow (- (emin + prec - 1)))); Fexp := emin + prec - 1 |}) * bpow (Fexp {| Fnum := Z.abs (Ztrunc (x * bpow (- (emin + prec - 1)))); Fexp := emin + prec - 1 |}))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(1 * bpow ex <= IZR (Z.abs (Ztrunc (x * bpow (- (emin + prec - 1))))) * bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(0 <= 1)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}
(0 <= bpow ex)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}
(1 <= IZR (Z.abs (Ztrunc (x * bpow (- (emin + prec - 1))))))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}
(bpow ex <= bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(0 <= bpow ex)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}
(1 <= IZR (Z.abs (Ztrunc (x * bpow (- (emin + prec - 1))))))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}
(bpow ex <= bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(1 <= IZR (Z.abs (Ztrunc (x * bpow (- (emin + prec - 1))))))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}
(bpow ex <= bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(1 <= Z.abs (Ztrunc (x * bpow (- (emin + prec - 1)))))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}
(bpow ex <= bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(0 < Z.abs (Ztrunc (x * bpow (- (emin + prec - 1)))))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}
(bpow ex <= bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(0 < IZR (Z.abs (Ztrunc (x * bpow (- (emin + prec - 1))))))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}
(bpow ex <= bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(0 < bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}
(0 * bpow (emin + prec - 1) < IZR (Z.abs (Ztrunc (x * bpow (- (emin + prec - 1))))) * bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}
(bpow ex <= bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(0 * bpow (emin + prec - 1) < IZR (Z.abs (Ztrunc (x * bpow (- (emin + prec - 1))))) * bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}
(bpow ex <= bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(0 < IZR (Z.abs (Ztrunc (x * bpow (- (emin + prec - 1))))) * bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}
(bpow ex <= bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(0 < F2R {| Fnum := Z.abs (Ztrunc (x * bpow (- (emin + prec - 1)))); Fexp := emin + prec - 1 |})%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}
(bpow ex <= bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(0 < Rabs x)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}
(bpow ex <= bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(bpow ex <= bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec < emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}

(ex <= emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}

FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}

FTZ_format (F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |})
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(beta ^ (prec - 1) <= Z.abs (Ztrunc (x * bpow (- (ex - prec)))))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(Z.abs (Ztrunc (x * bpow (- (ex - prec)))) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(IZR (beta ^ (prec - 1)) <= IZR (Z.abs (Ztrunc (x * bpow (- (ex - prec))))))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(Z.abs (Ztrunc (x * bpow (- (ex - prec)))) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(bpow (prec - 1) <= IZR (Z.abs (Ztrunc (x * bpow (- (ex - prec))))))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(0 <= prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(Z.abs (Ztrunc (x * bpow (- (ex - prec)))) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(0 < bpow (ex - prec))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(bpow (prec - 1) * bpow (ex - prec) <= IZR (Z.abs (Ztrunc (x * bpow (- (ex - prec))))) * bpow (ex - prec))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(0 <= prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(Z.abs (Ztrunc (x * bpow (- (ex - prec)))) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(bpow (prec - 1) * bpow (ex - prec) <= IZR (Z.abs (Ztrunc (x * bpow (- (ex - prec))))) * bpow (ex - prec))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(0 <= prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(Z.abs (Ztrunc (x * bpow (- (ex - prec)))) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(bpow (prec - 1 + (ex - prec)) <= IZR (Z.abs (Ztrunc (x * bpow (- (ex - prec))))) * bpow (ex - prec))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(0 <= prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(Z.abs (Ztrunc (x * bpow (- (ex - prec)))) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(bpow (ex - 1) <= IZR (Z.abs (Ztrunc (x * bpow (- (ex - prec))))) * bpow (ex - prec))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(0 <= prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(Z.abs (Ztrunc (x * bpow (- (ex - prec)))) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(bpow (ex - 1) <= F2R {| Fnum := Z.abs (Ztrunc (x * bpow (- (ex - prec)))); Fexp := ex - prec |})%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(0 <= prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(Z.abs (Ztrunc (x * bpow (- (ex - prec)))) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(bpow (ex - 1) <= Rabs x)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(0 <= prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(Z.abs (Ztrunc (x * bpow (- (ex - prec)))) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(0 <= prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(Z.abs (Ztrunc (x * bpow (- (ex - prec)))) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(1 <= prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(Z.abs (Ztrunc (x * bpow (- (ex - prec)))) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(Z.abs (Ztrunc (x * bpow (- (ex - prec)))) < beta ^ prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(IZR (Z.abs (Ztrunc (x * bpow (- (ex - prec))))) < IZR (beta ^ prec))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(IZR (Z.abs (Ztrunc (x * bpow (- (ex - prec))))) < bpow prec)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(0 <= prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(0 < bpow (ex - prec))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(IZR (Z.abs (Ztrunc (x * bpow (- (ex - prec))))) * bpow (ex - prec) < bpow prec * bpow (ex - prec))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(0 <= prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(IZR (Z.abs (Ztrunc (x * bpow (- (ex - prec))))) * bpow (ex - prec) < bpow prec * bpow (ex - prec))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(0 <= prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(IZR (Z.abs (Ztrunc (x * bpow (- (ex - prec))))) * bpow (ex - prec) < bpow (prec + (ex - prec)))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(0 <= prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(IZR (Z.abs (Ztrunc (x * bpow (- (ex - prec))))) * bpow (ex - prec) < bpow ex)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(0 <= prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(F2R {| Fnum := Z.abs (Ztrunc (x * bpow (- (ex - prec)))); Fexp := ex - prec |} < bpow ex)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(0 <= prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(Rabs x < bpow ex)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R
(0 <= prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
H:F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |} <> 0%R

(0 <= prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
ex:Z
Hx4:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx3:x <> 0%R
Hx5:(ex - prec >= emin)%Z
Hx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}

(emin <= ex - prec)%Z
now apply Z.ge_le. Qed.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

satisfies_any FTZ_format
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

satisfies_any FTZ_format
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

forall x : R, generic_format beta FTZ_exp x <-> FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R

generic_format beta FTZ_exp x <-> FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R

generic_format beta FTZ_exp x -> FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
FTZ_format x -> generic_format beta FTZ_exp x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R

FTZ_format x -> generic_format beta FTZ_exp x
apply generic_format_FTZ. Qed.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

forall x : R, (bpow (emin + prec - 1) <= Rabs x)%R -> FLXN_format beta prec x -> FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

forall x : R, (bpow (emin + prec - 1) <= Rabs x)%R -> FLXN_format beta prec x -> FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
Fx:FLXN_format beta prec x

FTZ_format x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
Fx:FLXN_format beta prec x

generic_format beta FTZ_exp x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
Fx:generic_format beta (FLX_exp prec) x

generic_format beta FTZ_exp x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R

(bpow (emin + prec - 1) <= Rabs x)%R -> generic_format beta (FLX_exp prec) x -> generic_format beta FTZ_exp x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R

forall e : Z, (emin + prec - 1 < e)%Z -> (FTZ_exp e <= FLX_exp prec e)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
e:Z
He:(emin + prec - 1 < e)%Z

(FTZ_exp e <= FLX_exp prec e)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
e:Z
He:(emin + prec - 1 < e)%Z

((if e - prec <? emin then emin + prec - 1 else e - prec) <= FLX_exp prec e)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
e:Z
He:(emin + prec - 1 < e)%Z

(e - prec <= FLX_exp prec e)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
e:Z
He:(emin + prec - 1 < e)%Z
(emin <= e - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x:R
e:Z
He:(emin + prec - 1 < e)%Z

(emin <= e - prec)%Z
omega. Qed.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

ulp beta FTZ_exp 0 = bpow (emin + prec - 1)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

ulp beta FTZ_exp 0 = bpow (emin + prec - 1)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

match negligible_exp FTZ_exp with | Some n => bpow (FTZ_exp n) | None => 0%R end = bpow (emin + prec - 1)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

(forall n : Z, (FTZ_exp n < n)%Z) -> 0%R = bpow (emin + prec - 1)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
forall n : Z, (n <= FTZ_exp n)%Z -> bpow (FTZ_exp n) = bpow (emin + prec - 1)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

~ (FTZ_exp (emin - 1) < emin - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
forall n : Z, (n <= FTZ_exp n)%Z -> bpow (FTZ_exp n) = bpow (emin + prec - 1)
beta:radix
emin, prec:Z
prec_gt_0_:(0 < prec)%Z

(emin - 1 <= (if emin - 1 - prec <? emin then emin + prec - 1 else emin - 1 - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
forall n : Z, (n <= FTZ_exp n)%Z -> bpow (FTZ_exp n) = bpow (emin + prec - 1)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

forall n : Z, (n <= FTZ_exp n)%Z -> bpow (FTZ_exp n) = bpow (emin + prec - 1)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

FTZ_exp (emin + prec - 1) = (emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
V:FTZ_exp (emin + prec - 1) = (emin + prec - 1)%Z
forall n : Z, (n <= FTZ_exp n)%Z -> bpow (FTZ_exp n) = bpow (emin + prec - 1)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
V:FTZ_exp (emin + prec - 1) = (emin + prec - 1)%Z

forall n : Z, (n <= FTZ_exp n)%Z -> bpow (FTZ_exp n) = bpow (emin + prec - 1)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
V:FTZ_exp (emin + prec - 1) = (emin + prec - 1)%Z
n:Z
H2:(n <= FTZ_exp n)%Z

bpow (FTZ_exp n) = bpow (FTZ_exp (emin + prec - 1))
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
V:FTZ_exp (emin + prec - 1) = (emin + prec - 1)%Z
n:Z
H2:(n <= FTZ_exp n)%Z

(emin + prec - 1 <= FTZ_exp (emin + prec - 1))%Z
omega. Qed. Section FTZ_round.
Rounding with FTZ
Variable rnd : R -> Z.
Context { valid_rnd : Valid_rnd rnd }.

Definition Zrnd_FTZ x :=
  if Rle_bool 1 (Rabs x) then rnd x else Z0.

beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

Valid_rnd Zrnd_FTZ
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

Valid_rnd Zrnd_FTZ
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x y : R, (x <= y)%R -> (Zrnd_FTZ x <= Zrnd_FTZ y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
(* *)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R

(Zrnd_FTZ x <= Zrnd_FTZ y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R

((if Rle_bool 1 (Rabs x) then rnd x else 0) <= (if Rle_bool 1 (Rabs y) then rnd y else 0))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(1 <= Rabs y)%R

(rnd x <= rnd 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
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(Rabs y < 1)%R
(rnd x <= 0)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
(0 <= rnd 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
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(Rabs y < 1)%R
(0 <= 0)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(1 <= Rabs y)%R

(rnd x <= rnd 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
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(Rabs y < 1)%R
(rnd x <= 0)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
(0 <= rnd y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
(* 1 <= |x| *)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(Rabs y < 1)%R

(rnd x <= 0)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
(0 <= rnd y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(Rabs y < 1)%R

(rnd x <= rnd 0)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
(0 <= rnd y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(Rabs y < 1)%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
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
(0 <= rnd y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(Rabs y < 1)%R

(x <= -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
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(Rabs y < 1)%R
(-1 <= 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
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
(0 <= rnd y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(Rabs y < 1)%R

(x <= -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
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
(0 <= rnd y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(Rabs y < 1)%R
Hx1:(x <= - (1))%R

(x <= -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
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(Rabs y < 1)%R
Hx1:(1 <= x)%R
(x <= -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
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
(0 <= rnd y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(Rabs y < 1)%R
Hx1:(1 <= x)%R

(x <= -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
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
(0 <= rnd y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(Rabs y < 1)%R
Hx1:(1 <= x)%R

(x < 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
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
(0 <= rnd y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(Rabs y < 1)%R
Hx1:(1 <= x)%R

(x <= 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
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
(0 <= rnd y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(1 <= Rabs x)%R
Hy:(Rabs y < 1)%R
Hx1:(1 <= x)%R

(y <= 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
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
(0 <= rnd y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R

(0 <= rnd y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
(* |x| < 1 *)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R

(rnd 0 <= rnd y)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R

(0 <= y)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R

(0 <= 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
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
(1 <= y)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R

(1 <= y)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
Hy1:(y <= - (1))%R

(1 <= 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
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
Hy1:(1 <= y)%R
(1 <= y)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
Hy1:(y <= - (1))%R

(- (1) < 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
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
Hy1:(1 <= y)%R
(1 <= y)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
Hy1:(y <= - (1))%R

(- (1) < 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
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
Hy1:(1 <= y)%R
(1 <= y)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hxy:(x <= y)%R
Hx:(Rabs x < 1)%R
Hy:(1 <= Rabs y)%R
Hy1:(1 <= y)%R

(1 <= y)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
forall n : Z, Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall n : Z, Zrnd_FTZ (IZR n) = n
(* *)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
n:Z

Zrnd_FTZ (IZR n) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
n:Z

(if Rle_bool 1 (Rabs (IZR n)) then rnd (IZR n) else 0%Z) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
n:Z

(if Rle_bool 1 (Rabs (IZR n)) then n else 0%Z) = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
n:Z

(1 <= Rabs (IZR n))%R -> n = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
n:Z
(Rabs (IZR n) < 1)%R -> 0%Z = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
n:Z

(Rabs (IZR n) < 1)%R -> 0%Z = n
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
n:Z

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

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

(Z.abs n < 1)%Z -> 0%Z = n
n:Z

(Z.abs n < 1)%Z -> 0%Z = n
now case n ; trivial ; simpl ; intros [p|p|]. Qed.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x : R, (bpow (emin + prec - 1) <= Rabs x)%R -> round beta FTZ_exp Zrnd_FTZ x = round beta (FLX_exp prec) rnd x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x : R, (bpow (emin + prec - 1) <= Rabs x)%R -> round beta FTZ_exp Zrnd_FTZ x = round beta (FLX_exp prec) rnd x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R

round beta FTZ_exp Zrnd_FTZ x = round beta (FLX_exp prec) rnd x
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R

F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp (mag beta x))); Fexp := FTZ_exp (mag beta x) |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec (mag beta x))); Fexp := FLX_exp prec (mag beta x) |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R

F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp (Build_mag_prop beta x ex He))); Fexp := FTZ_exp (Build_mag_prop beta x ex He) |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec (Build_mag_prop beta x ex He))); Fexp := FLX_exp prec (Build_mag_prop beta x ex He) |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R

F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp ex)); Fexp := FTZ_exp ex |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%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:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp ex)); Fexp := FTZ_exp ex |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x = 0%R

False
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp ex)); Fexp := FTZ_exp ex |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x = 0%R

(Rabs x < bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp ex)); Fexp := FTZ_exp ex |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x = 0%R

(0 < bpow (emin + prec - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp ex)); Fexp := FTZ_exp ex |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R

F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp ex)); Fexp := FTZ_exp ex |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R

F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp ex)); Fexp := FTZ_exp ex |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R

(emin + prec <= ex)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp ex)); Fexp := FTZ_exp ex |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R

(bpow (emin + prec - 1) < bpow ex)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp ex)); Fexp := FTZ_exp ex |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%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:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp ex)); Fexp := FTZ_exp ex |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp ex)); Fexp := FTZ_exp ex |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

F2R {| Fnum := Zrnd_FTZ (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

F2R {| Fnum := if Rle_bool 1 (Rabs (x * bpow (- FLX_exp prec ex))) then rnd (x * bpow (- FLX_exp prec ex)) else 0%Z; Fexp := FLX_exp prec ex |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

F2R {| Fnum := rnd (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |} = F2R {| Fnum := rnd (x * bpow (- FLX_exp prec ex)); Fexp := FLX_exp prec ex |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
(1 <= Rabs (x * bpow (- FLX_exp prec ex)))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(1 <= Rabs (x * bpow (- FLX_exp prec ex)))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(1 <= Rabs x * Rabs (bpow (- FLX_exp prec ex)))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(1 <= Rabs x * bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
(0 <= bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(bpow 0 <= Rabs x * bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
(0 <= bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(bpow (FLX_exp prec ex + - FLX_exp prec ex) <= Rabs x * bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
(0 <= bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(bpow (FLX_exp prec ex) * bpow (- FLX_exp prec ex) <= Rabs x * bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
(0 <= bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(0 <= bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
(bpow (FLX_exp prec ex) <= Rabs x)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
(0 <= bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(bpow (FLX_exp prec ex) <= Rabs x)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
(0 <= bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(bpow (FLX_exp prec ex) <= bpow (ex - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
(0 <= bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(FLX_exp prec ex <= ex - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
(0 <= bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(ex - prec <= ex - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
(0 <= bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(0 < prec)%Z -> (ex - prec <= ex - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
(0 <= bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(0 <= bpow (- FLX_exp prec ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

FLX_exp prec ex = FTZ_exp ex
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(ex - prec)%Z = (if (ex - prec <? emin)%Z then (emin + prec - 1)%Z else (ex - prec)%Z)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(ex - prec)%Z = (ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z
(emin <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(bpow (emin + prec - 1) <= Rabs x)%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
Hx0:x <> 0%R
He':(emin + prec <= ex)%Z

(emin <= ex - prec)%Z
clear -He' ; omega. Qed.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd

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

forall x : R, (Rabs x < bpow (emin + prec - 1))%R -> round beta FTZ_exp Zrnd_FTZ x = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R

round beta FTZ_exp Zrnd_FTZ x = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x = 0%R

round beta FTZ_exp Zrnd_FTZ x = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
round beta FTZ_exp Zrnd_FTZ x = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x = 0%R

round beta FTZ_exp Zrnd_FTZ 0 = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
round beta FTZ_exp Zrnd_FTZ x = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R

round beta FTZ_exp Zrnd_FTZ x = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R

F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp (mag beta x))); Fexp := FTZ_exp (mag beta x) |} = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R

F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp (Build_mag_prop beta x ex He))); Fexp := FTZ_exp (Build_mag_prop beta x ex He) |} = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R

F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp ex)); Fexp := FTZ_exp ex |} = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

F2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp ex)); Fexp := FTZ_exp ex |} = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

F2R {| Fnum := if Rle_bool 1 (Rabs (x * bpow (- FTZ_exp ex))) then rnd (x * bpow (- FTZ_exp ex)) else 0%Z; Fexp := FTZ_exp ex |} = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

F2R {| Fnum := 0; Fexp := FTZ_exp ex |} = 0%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(Rabs (x * bpow (- FTZ_exp ex)) < 1)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(Rabs (x * bpow (- FTZ_exp ex)) < 1)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(Rabs x * Rabs (bpow (- FTZ_exp ex)) < 1)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(Rabs x * bpow (- FTZ_exp ex) < 1)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(Rabs x * bpow (- FTZ_exp ex) < bpow 0)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(Rabs x * bpow (- FTZ_exp ex) < bpow (FTZ_exp ex + - FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(Rabs x * bpow (- FTZ_exp ex) < bpow (FTZ_exp ex) * bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(0 < bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(Rabs x < bpow (FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(Rabs x < bpow (FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(bpow (emin + prec - 1) <= bpow (FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(emin + prec - 1 <= FTZ_exp ex)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(emin + prec - 1 <= (if ex - prec <? emin then emin + prec - 1 else ex - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(if (ex - prec <? emin)%Z then (ex - prec < emin)%Z else (ex - prec >= emin)%Z) -> (emin + prec - 1 <= (if ex - prec <? emin then emin + prec - 1 else ex - prec))%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(ex - prec < emin)%Z -> (emin + prec - 1 <= emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(ex - prec >= emin)%Z -> (emin + prec - 1 <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(emin + prec - 1 <= emin + prec - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(ex - prec >= emin)%Z -> (emin + prec - 1 <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(ex - prec >= emin)%Z -> (emin + prec - 1 <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
He':(ex - prec >= emin)%Z

(emin + prec - 1 <= ex - prec)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
He':(ex - prec >= emin)%Z

(bpow (emin + prec - 1) <= Rabs x)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
He':(ex - prec >= emin)%Z

(bpow (emin + prec - 1) <= bpow (ex - 1))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
He':(ex - prec >= emin)%Z

(emin + prec - 1 <= ex - 1)%Z
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R
(0 <= bpow (- FTZ_exp ex))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
Hx:(Rabs x < bpow (emin + prec - 1))%R
Hx0:x <> 0%R
ex:Z
He:(bpow (ex - 1) <= Rabs x < bpow ex)%R

(0 <= bpow (- FTZ_exp ex))%R
apply bpow_ge_0. Qed. End FTZ_round. End RND_FTZ.