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.
Copyright (C) 2009-2018 Guillaume Melquiond
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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precValid_exp FTZ_expbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precValid_exp FTZ_expbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck: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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck: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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck: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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(emin + prec - 1 < k)%Z((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(k <= emin + prec - 1)%Zforall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(k <= emin + prec - 1)%Zforall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(k <= emin + prec - 1)%ZH3:(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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(k <= emin + prec - 1)%ZH3:(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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(k <= emin + prec - 1)%Zforall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(k <= emin + prec - 1)%ZH3:(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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(k <= emin + prec - 1)%Zforall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(k <= emin + prec - 1)%ZH3:(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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(k <= emin + prec - 1)%Zforall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(k <= emin + prec - 1)%ZH3:(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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(k <= emin + prec - 1)%Zforall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(k <= emin + prec - 1)%Zforall l : Z, (l <= emin + prec - 1)%Z -> (if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(k <= emin + prec - 1)%Zl:ZH3:(l <= emin + prec - 1)%Z(if (l - prec <? emin)%Z then (emin + prec - 1)%Z else (l - prec)%Z) = (emin + prec - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec < emin)%ZH2:(k <= emin + prec - 1)%Zl:ZH3:(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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec >= emin)%ZH2:(k - prec < k)%Z((if k + 1 - prec <? emin then emin + prec - 1 else k + 1 - prec) <= k)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec >= emin)%ZH2:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec >= emin)%ZH2:(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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec >= emin)%ZH2:(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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec >= emin)%ZH2:(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)split ; intros ; omega. Qed.beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preck:ZH1:(k - prec >= emin)%ZH2:(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)beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precforall x : R, FTZ_format x -> FLXN_format beta prec xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precforall x : R, FTZ_format x -> FLXN_format beta prec xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:x <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := xm; Fexp := xe |}) < beta ^ prec)%ZHx3:(emin <= Fexp {| Fnum := xm; Fexp := xe |})%ZFLXN_format beta prec xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:x <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := xm; Fexp := xe |}) < beta ^ prec)%ZHx3:(emin <= Fexp {| Fnum := xm; Fexp := xe |})%Zx = F2R ?fbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:x <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := xm; Fexp := xe |}) < beta ^ prec)%ZHx3:(emin <= Fexp {| Fnum := xm; Fexp := xe |})%Zx <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum ?f) < beta ^ prec)%Zexact Hx2. Qed.beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:x <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := xm; Fexp := xe |}) < beta ^ prec)%ZHx3:(emin <= Fexp {| Fnum := xm; Fexp := xe |})%Zx <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := xm; Fexp := xe |}) < beta ^ prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precforall x : R, FTZ_format x -> generic_format beta FTZ_exp xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precforall x : R, FTZ_format x -> generic_format beta FTZ_exp xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta FTZ_exp xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) x -> generic_format beta FTZ_exp xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xx <> 0%R -> (FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xZx:x <> 0%R(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:x <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := xm; Fexp := xe |}) < beta ^ prec)%ZHx3:(emin <= Fexp {| Fnum := xm; Fexp := xe |})%ZZx:x <> 0%R(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:x <> 0%R -> (beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%R(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%R(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%Rxm <> 0%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%RZxm:xm <> 0%Z(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:xm = 0%Zx = 0%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%RZxm:xm <> 0%Z(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:xm = 0%ZF2R {| Fnum := 0; Fexp := xe |} = 0%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%RZxm:xm <> 0%Z(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%RZxm:xm <> 0%Z(FTZ_exp (mag beta x) <= FLX_exp prec (mag beta x))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%RZxm:xm <> 0%Z((if mag beta x - prec <? emin then emin + prec - 1 else mag beta x - prec) <= mag beta x - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%RZxm:xm <> 0%Z(mag beta x - prec <= mag beta x - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%RZxm:xm <> 0%Z(emin <= mag beta x - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%RZxm:xm <> 0%Z(emin <= mag beta x - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%RZxm:xm <> 0%Z(emin <= mag beta (IZR xm) + xe - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%RZxm:xm <> 0%Z(prec - 1 < mag beta (IZR xm))%Z -> (emin <= mag beta (IZR xm) + xe - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%RZxm:xm <> 0%Z(prec - 1 < mag beta (IZR xm))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%RZxm:xm <> 0%Z(prec - 1 < mag beta (IZR xm))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rxm, xe:ZHx1:x = F2R {| Fnum := xm; Fexp := xe |}Hx2:(beta ^ (prec - 1) <= Z.abs xm < beta ^ prec)%ZHx3:(emin <= xe)%ZZx:x <> 0%RZxm:xm <> 0%Z(beta ^ (prec - 1) <= Z.abs xm)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xgeneric_format beta (FLX_exp prec) xnow apply FLXN_format_FTZ. Qed.beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:FTZ_format xFLXN_format beta prec xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precforall x : R, generic_format beta FTZ_exp x -> FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precforall x : R, generic_format beta FTZ_exp x -> FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:generic_format beta FTZ_exp xFTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precHx:generic_format beta FTZ_exp 0FTZ_format 0beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:generic_format beta FTZ_exp xHx3:x <> 0%RFTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precHx:generic_format beta FTZ_exp 00%R = F2R {| Fnum := 0; Fexp := emin |}beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precHx:generic_format beta FTZ_exp 00%R <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := 0; Fexp := emin |}) < beta ^ prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precHx:generic_format beta FTZ_exp 0(emin <= Fexp {| Fnum := 0; Fexp := emin |})%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:generic_format beta FTZ_exp xHx3:x <> 0%RFTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precHx:generic_format beta FTZ_exp 00%R <> 0%R -> (beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := 0; Fexp := emin |}) < beta ^ prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precHx:generic_format beta FTZ_exp 0(emin <= Fexp {| Fnum := 0; Fexp := emin |})%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:generic_format beta FTZ_exp xHx3:x <> 0%RFTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precHx:generic_format beta FTZ_exp 0H:0%R <> 0%R(beta ^ (prec - 1) <= Z.abs (Fnum {| Fnum := 0; Fexp := emin |}) < beta ^ prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precHx:generic_format beta FTZ_exp 0(emin <= Fexp {| Fnum := 0; Fexp := emin |})%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:generic_format beta FTZ_exp xHx3:x <> 0%RFTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precHx:generic_format beta FTZ_exp 0(emin <= Fexp {| Fnum := 0; Fexp := emin |})%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:generic_format beta FTZ_exp xHx3:x <> 0%RFTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:generic_format beta FTZ_exp xHx3:x <> 0%RFTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx: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%RFTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RHx: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%RFTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RHx: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%RFTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx: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%RFTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx: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 xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3: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 xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(Rabs x >= bpow ex)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(bpow ex <= Rabs x)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2: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 |})%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2: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 |})%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2: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 |}))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2: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))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(0 <= 1)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(0 <= bpow ex)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(1 <= IZR (Z.abs (Ztrunc (x * bpow (- (emin + prec - 1))))))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(bpow ex <= bpow (emin + prec - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(0 <= bpow ex)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(1 <= IZR (Z.abs (Ztrunc (x * bpow (- (emin + prec - 1))))))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(bpow ex <= bpow (emin + prec - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(1 <= IZR (Z.abs (Ztrunc (x * bpow (- (emin + prec - 1))))))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(bpow ex <= bpow (emin + prec - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(1 <= Z.abs (Ztrunc (x * bpow (- (emin + prec - 1)))))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(bpow ex <= bpow (emin + prec - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(0 < Z.abs (Ztrunc (x * bpow (- (emin + prec - 1)))))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(bpow ex <= bpow (emin + prec - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(0 < IZR (Z.abs (Ztrunc (x * bpow (- (emin + prec - 1))))))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(bpow ex <= bpow (emin + prec - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(0 < bpow (emin + prec - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2: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))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(bpow ex <= bpow (emin + prec - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2: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))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(bpow ex <= bpow (emin + prec - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2: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))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(bpow ex <= bpow (emin + prec - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2: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 |})%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(bpow ex <= bpow (emin + prec - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(0 < Rabs x)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(bpow ex <= bpow (emin + prec - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(bpow ex <= bpow (emin + prec - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec < emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (emin + prec - 1))); Fexp := emin + prec - 1 |}(ex <= emin + prec - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}FTZ_format (F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |})beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)))))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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))))))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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))))))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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 |})%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2: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)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Znow apply Z.ge_le. Qed.beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rex:ZHx4:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx3:x <> 0%RHx5:(ex - prec >= emin)%ZHx2:x = F2R {| Fnum := Ztrunc (x * bpow (- (ex - prec))); Fexp := ex - prec |}(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precsatisfies_any FTZ_formatbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precsatisfies_any FTZ_formatbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precforall x : R, generic_format beta FTZ_exp x <-> FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rgeneric_format beta FTZ_exp x <-> FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rgeneric_format beta FTZ_exp x -> FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RFTZ_format x -> generic_format beta FTZ_exp xapply generic_format_FTZ. Qed.beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RFTZ_format x -> generic_format beta FTZ_exp xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precforall x : R, (bpow (emin + prec - 1) <= Rabs x)%R -> FLXN_format beta prec x -> FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precforall x : R, (bpow (emin + prec - 1) <= Rabs x)%R -> FLXN_format beta prec x -> FTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:(bpow (emin + prec - 1) <= Rabs x)%RFx:FLXN_format beta prec xFTZ_format xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:(bpow (emin + prec - 1) <= Rabs x)%RFx:FLXN_format beta prec xgeneric_format beta FTZ_exp xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:RHx:(bpow (emin + prec - 1) <= Rabs x)%RFx:generic_format beta (FLX_exp prec) xgeneric_format beta FTZ_exp xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:R(bpow (emin + prec - 1) <= Rabs x)%R -> generic_format beta (FLX_exp prec) x -> generic_format beta FTZ_exp xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Rforall e : Z, (emin + prec - 1 < e)%Z -> (FTZ_exp e <= FLX_exp prec e)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Re:ZHe:(emin + prec - 1 < e)%Z(FTZ_exp e <= FLX_exp prec e)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Re:ZHe:(emin + prec - 1 < e)%Z((if e - prec <? emin then emin + prec - 1 else e - prec) <= FLX_exp prec e)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Re:ZHe:(emin + prec - 1 < e)%Z(e - prec <= FLX_exp prec e)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Re:ZHe:(emin + prec - 1 < e)%Z(emin <= e - prec)%Zomega. Qed.beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precx:Re:ZHe:(emin + prec - 1 < e)%Z(emin <= e - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preculp beta FTZ_exp 0 = bpow (emin + prec - 1)beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 preculp beta FTZ_exp 0 = bpow (emin + prec - 1)beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precmatch negligible_exp FTZ_exp with | Some n => bpow (FTZ_exp n) | None => 0%R end = bpow (emin + prec - 1)beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 prec(forall n : Z, (FTZ_exp n < n)%Z) -> 0%R = bpow (emin + prec - 1)beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precforall n : Z, (n <= FTZ_exp n)%Z -> bpow (FTZ_exp n) = bpow (emin + prec - 1)beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 prec~ (FTZ_exp (emin - 1) < emin - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precforall n : Z, (n <= FTZ_exp n)%Z -> bpow (FTZ_exp n) = bpow (emin + prec - 1)beta:radixemin, prec:Zprec_gt_0_:(0 < prec)%Z(emin - 1 <= (if emin - 1 - prec <? emin then emin + prec - 1 else emin - 1 - prec))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precforall n : Z, (n <= FTZ_exp n)%Z -> bpow (FTZ_exp n) = bpow (emin + prec - 1)beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precforall n : Z, (n <= FTZ_exp n)%Z -> bpow (FTZ_exp n) = bpow (emin + prec - 1)beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precFTZ_exp (emin + prec - 1) = (emin + prec - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precV:FTZ_exp (emin + prec - 1) = (emin + prec - 1)%Zforall n : Z, (n <= FTZ_exp n)%Z -> bpow (FTZ_exp n) = bpow (emin + prec - 1)beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precV:FTZ_exp (emin + prec - 1) = (emin + prec - 1)%Zforall n : Z, (n <= FTZ_exp n)%Z -> bpow (FTZ_exp n) = bpow (emin + prec - 1)beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precV:FTZ_exp (emin + prec - 1) = (emin + prec - 1)%Zn:ZH2:(n <= FTZ_exp n)%Zbpow (FTZ_exp n) = bpow (FTZ_exp (emin + prec - 1))omega. Qed. Section FTZ_round.beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precV:FTZ_exp (emin + prec - 1) = (emin + prec - 1)%Zn:ZH2:(n <= FTZ_exp n)%Z(emin + prec - 1 <= FTZ_exp (emin + prec - 1))%Z
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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndValid_rnd Zrnd_FTZbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndValid_rnd Zrnd_FTZ(* *)beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall x y : R, (x <= y)%R -> (Zrnd_FTZ x <= Zrnd_FTZ y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%R(Zrnd_FTZ x <= Zrnd_FTZ y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(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))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(1 <= Rabs y)%R(rnd x <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(Rabs y < 1)%R(rnd x <= 0)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(0 <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(Rabs y < 1)%R(0 <= 0)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = n(* 1 <= |x| *)beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(1 <= Rabs y)%R(rnd x <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(Rabs y < 1)%R(rnd x <= 0)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(0 <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(Rabs y < 1)%R(rnd x <= 0)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(0 <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(Rabs y < 1)%R(rnd x <= rnd 0)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(0 <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(Rabs y < 1)%R(x <= 0)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(0 <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(Rabs y < 1)%R(x <= -1)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(Rabs y < 1)%R(-1 <= 0)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(0 <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(Rabs y < 1)%R(x <= -1)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(0 <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(Rabs y < 1)%RHx1:(x <= - (1))%R(x <= -1)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(Rabs y < 1)%RHx1:(1 <= x)%R(x <= -1)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(0 <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(Rabs y < 1)%RHx1:(1 <= x)%R(x <= -1)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(0 <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(Rabs y < 1)%RHx1:(1 <= x)%R(x < 1)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(0 <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(Rabs y < 1)%RHx1:(1 <= x)%R(x <= Rabs y)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(0 <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(1 <= Rabs x)%RHy:(Rabs y < 1)%RHx1:(1 <= x)%R(y <= Rabs y)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(0 <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = n(* |x| < 1 *)beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(0 <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(rnd 0 <= rnd y)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(0 <= y)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(0 <= 1)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(1 <= y)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%R(1 <= y)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%RHy1:(y <= - (1))%R(1 <= y)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%RHy1:(1 <= y)%R(1 <= y)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%RHy1:(y <= - (1))%R(- (1) < y)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%RHy1:(1 <= y)%R(1 <= y)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%RHy1:(y <= - (1))%R(- (1) < x)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%RHy1:(1 <= y)%R(1 <= y)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx, y:RHxy:(x <= y)%RHx:(Rabs x < 1)%RHy:(1 <= Rabs y)%RHy1:(1 <= y)%R(1 <= y)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = n(* *)beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall n : Z, Zrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndn:ZZrnd_FTZ (IZR n) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndn:Z(if Rle_bool 1 (Rabs (IZR n)) then rnd (IZR n) else 0%Z) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndn:Z(if Rle_bool 1 (Rabs (IZR n)) then n else 0%Z) = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndn:Z(1 <= Rabs (IZR n))%R -> n = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndn:Z(Rabs (IZR n) < 1)%R -> 0%Z = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndn:Z(Rabs (IZR n) < 1)%R -> 0%Z = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndn:Z(IZR (Z.abs n) < 1)%R -> 0%Z = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndn:ZH:(IZR (Z.abs n) < 1)%R0%Z = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndn:ZH:(IZR (Z.abs n) < 1)%R(Z.abs n < 1)%Z -> 0%Z = nnow case n ; trivial ; simpl ; intros [p|p|]. Qed.n:Z(Z.abs n < 1)%Z -> 0%Z = nbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall x : R, (bpow (emin + prec - 1) <= Rabs x)%R -> round beta FTZ_exp Zrnd_FTZ x = round beta (FLX_exp prec) rnd xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall x : R, (bpow (emin + prec - 1) <= Rabs x)%R -> round beta FTZ_exp Zrnd_FTZ x = round beta (FLX_exp prec) rnd xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rround beta FTZ_exp Zrnd_FTZ x = round beta (FLX_exp prec) rnd xbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%RF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%Rx <> 0%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x = 0%RFalsebeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x = 0%R(Rabs x < bpow (emin + prec - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x = 0%R(0 < bpow (emin + prec - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%R(emin + prec <= ex)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%R(bpow (emin + prec - 1) < bpow ex)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%R(Rabs x < bpow ex)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZF2R {| 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:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(1 <= Rabs (x * bpow (- FLX_exp prec ex)))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(1 <= Rabs (x * bpow (- FLX_exp prec ex)))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(1 <= Rabs x * Rabs (bpow (- FLX_exp prec ex)))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(1 <= Rabs x * bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(0 <= bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(bpow 0 <= Rabs x * bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(0 <= bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(bpow (FLX_exp prec ex + - FLX_exp prec ex) <= Rabs x * bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(0 <= bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(bpow (FLX_exp prec ex) * bpow (- FLX_exp prec ex) <= Rabs x * bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(0 <= bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(0 <= bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(bpow (FLX_exp prec ex) <= Rabs x)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(0 <= bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(bpow (FLX_exp prec ex) <= Rabs x)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(0 <= bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(bpow (FLX_exp prec ex) <= bpow (ex - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(0 <= bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(FLX_exp prec ex <= ex - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(0 <= bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(ex - prec <= ex - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(0 <= bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(0 < prec)%Z -> (ex - prec <= ex - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(0 <= bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(0 <= bpow (- FLX_exp prec ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%ZFLX_exp prec ex = FTZ_exp exbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(ex - prec)%Z = (if (ex - prec <? emin)%Z then (emin + prec - 1)%Z else (ex - prec)%Z)beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(ex - prec)%Z = (ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(emin <= ex - prec)%Zclear -He' ; omega. Qed.beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(bpow (emin + prec - 1) <= Rabs x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx0:x <> 0%RHe':(emin + prec <= ex)%Z(emin <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall x : R, (Rabs x < bpow (emin + prec - 1))%R -> round beta FTZ_exp Zrnd_FTZ x = 0%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndforall x : R, (Rabs x < bpow (emin + prec - 1))%R -> round beta FTZ_exp Zrnd_FTZ x = 0%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%Rround beta FTZ_exp Zrnd_FTZ x = 0%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x = 0%Rround beta FTZ_exp Zrnd_FTZ x = 0%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rround beta FTZ_exp Zrnd_FTZ x = 0%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x = 0%Rround beta FTZ_exp Zrnd_FTZ 0 = 0%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rround beta FTZ_exp Zrnd_FTZ x = 0%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rround beta FTZ_exp Zrnd_FTZ x = 0%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%RF2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp (mag beta x))); Fexp := FTZ_exp (mag beta x) |} = 0%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RF2R {| 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%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RF2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp ex)); Fexp := FTZ_exp ex |} = 0%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RF2R {| Fnum := Zrnd_FTZ (x * bpow (- FTZ_exp ex)); Fexp := FTZ_exp ex |} = 0%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RF2R {| 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%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RF2R {| Fnum := 0; Fexp := FTZ_exp ex |} = 0%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs (x * bpow (- FTZ_exp ex)) < 1)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs (x * bpow (- FTZ_exp ex)) < 1)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs x * Rabs (bpow (- FTZ_exp ex)) < 1)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs x * bpow (- FTZ_exp ex) < 1)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs x * bpow (- FTZ_exp ex) < bpow 0)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs x * bpow (- FTZ_exp ex) < bpow (FTZ_exp ex + - FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs x * bpow (- FTZ_exp ex) < bpow (FTZ_exp ex) * bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 < bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs x < bpow (FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs x < bpow (FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(bpow (emin + prec - 1) <= bpow (FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(emin + prec - 1 <= FTZ_exp ex)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(emin + prec - 1 <= (if ex - prec <? emin then emin + prec - 1 else ex - prec))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(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))%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(ex - prec < emin)%Z -> (emin + prec - 1 <= emin + prec - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(ex - prec >= emin)%Z -> (emin + prec - 1 <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(emin + prec - 1 <= emin + prec - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(ex - prec >= emin)%Z -> (emin + prec - 1 <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(ex - prec >= emin)%Z -> (emin + prec - 1 <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHe':(ex - prec >= emin)%Z(emin + prec - 1 <= ex - prec)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHe':(ex - prec >= emin)%Z(bpow (emin + prec - 1) <= Rabs x)%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHe':(ex - prec >= emin)%Z(bpow (emin + prec - 1) <= bpow (ex - 1))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%RHe':(ex - prec >= emin)%Z(emin + prec - 1 <= ex - 1)%Zbeta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%Rapply bpow_ge_0. Qed. End FTZ_round. End RND_FTZ.beta:radixemin, prec:Zprec_gt_0_:Prec_gt_0 precrnd:R -> Zvalid_rnd:Valid_rnd rndx:RHx:(Rabs x < bpow (emin + prec - 1))%RHx0:x <> 0%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= bpow (- FTZ_exp ex))%R