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 Reals Psatz. Require Import Raux Defs Round_pred Generic_fmt Float_prop. Section Fcore_ulp. Variable beta : radix. Notation bpow e := (bpow beta e). Variable fexp : Z -> Z.
Definition and basic properties about the minimal exponent, when it exists
beta:radixfexp:Z -> Zforall x y : Z, (x <= y)%Z \/ ~ (x <= y)%Zbeta:radixfexp:Z -> Zforall x y : Z, (x <= y)%Z \/ ~ (x <= y)%Zbeta:radixfexp:Z -> Zx, y:Z(x <= y)%Z \/ ~ (x <= y)%Zbeta:radixfexp:Z -> Zx, y:Zl:(x <= y)%Z(x <= y)%Z \/ ~ (x <= y)%Zbeta:radixfexp:Z -> Zx, y:Zn:~ (x <= y)%Z(x <= y)%Z \/ ~ (x <= y)%Znow right. Qed.beta:radixfexp:Z -> Zx, y:Zn:~ (x <= y)%Z(x <= y)%Z \/ ~ (x <= y)%Z
negligible_exp is either none (as in FLX) or Some n such that n <= fexp n.
Definition negligible_exp: option Z := match (LPO_Z _ (fun z => Z_le_dec_aux z (fexp z))) with | inleft N => Some (proj1_sig N) | inright _ => None end. Inductive negligible_exp_prop: option Z -> Prop := | negligible_None: (forall n, (fexp n < n)%Z) -> negligible_exp_prop None | negligible_Some: forall n, (n <= fexp n)%Z -> negligible_exp_prop (Some n).beta:radixfexp:Z -> Znegligible_exp_prop negligible_expbeta:radixfexp:Z -> Znegligible_exp_prop negligible_expbeta:radixfexp:Z -> Zn:ZHn:(n <= fexp n)%Znegligible_exp_prop (Some (proj1_sig (exist (fun n0 : Z => (n0 <= fexp n0)%Z) n Hn)))beta:radixfexp:Z -> ZHn:forall n : Z, ~ (n <= fexp n)%Znegligible_exp_prop Nonebeta:radixfexp:Z -> ZHn:forall n : Z, ~ (n <= fexp n)%Znegligible_exp_prop Noneintros n; specialize (Hn n); omega. Qed.beta:radixfexp:Z -> ZHn:forall n : Z, ~ (n <= fexp n)%Zforall n : Z, (fexp n < n)%Zbeta:radixfexp:Z -> Znegligible_exp = None /\ (forall n : Z, (fexp n < n)%Z) \/ (exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z)beta:radixfexp:Z -> Znegligible_exp = None /\ (forall n : Z, (fexp n < n)%Z) \/ (exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z)beta:radixfexp:Z -> Zn:ZHn:(n <= fexp n)%ZSome (proj1_sig (exist (fun n0 : Z => (n0 <= fexp n0)%Z) n Hn)) = None /\ (forall n0 : Z, (fexp n0 < n0)%Z) \/ (exists n0 : Z, Some (proj1_sig (exist (fun n1 : Z => (n1 <= fexp n1)%Z) n Hn)) = Some n0 /\ (n0 <= fexp n0)%Z)beta:radixfexp:Z -> ZHn:forall n : Z, ~ (n <= fexp n)%ZNone = None /\ (forall n : Z, (fexp n < n)%Z) \/ (exists n : Z, None = Some n /\ (n <= fexp n)%Z)beta:radixfexp:Z -> ZHn:forall n : Z, ~ (n <= fexp n)%ZNone = None /\ (forall n : Z, (fexp n < n)%Z) \/ (exists n : Z, None = Some n /\ (n <= fexp n)%Z)intros n; specialize (Hn n); omega. Qed. Context { valid_exp : Valid_exp fexp }.beta:radixfexp:Z -> ZHn:forall n : Z, ~ (n <= fexp n)%Zforall n : Z, (fexp n < n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall n m : Z, (n <= fexp n)%Z -> (m <= fexp m)%Z -> fexp n = fexp mbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall n m : Z, (n <= fexp n)%Z -> (m <= fexp m)%Z -> fexp n = fexp mbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpn, m:ZHn:(n <= fexp n)%ZHm:(m <= fexp m)%Zfexp n = fexp mbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpn, m:ZHn:(n <= fexp n)%ZHm:(m <= fexp m)%ZH:(n <= m)%Zfexp n = fexp mbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpn, m:ZHn:(n <= fexp n)%ZHm:(m <= fexp m)%ZH:(m < n)%Zfexp n = fexp mapply sym_eq, valid_exp; omega. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpn, m:ZHn:(n <= fexp n)%ZHm:(m <= fexp m)%ZH:(m < n)%Zfexp n = fexp m
Definition and basic properties about the ulp
Now includes a nice ulp(0): ulp(0) is now 0 when there is no minimal
exponent, such as in FLX, and beta^(fexp n) when there is a n such
that n <= fexp n. For instance, the value of ulp(O) is then
beta^emin in FIX and FLT. The main lemma to use is ulp_neq_0 that
is equivalent to the previous "unfold ulp" provided the value is
not zero.
Definition ulp x := match Req_bool x 0 with | true => match negligible_exp with | Some n => bpow (fexp n) | None => 0%R end | false => bpow (cexp beta fexp x) end.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, x <> 0%R -> ulp x = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, x <> 0%R -> ulp x = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:x <> 0%Rulp x = bpow (cexp beta fexp x)intros H; now contradict H. Qed. Notation F := (generic_format beta fexp).beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:x <> 0%Rx = 0%R -> match negligible_exp with | Some n => bpow (fexp n) | None => 0%R end = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, ulp (- x) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, ulp (- x) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Rulp (- x) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:R(if Req_bool (- x) 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0%R end else bpow (cexp beta fexp (- x))) = (if Req_bool x 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0%R end else bpow (cexp beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:(- x)%R = 0%Rmatch negligible_exp with | Some n => bpow (fexp n) | None => 0%R end = (if Req_bool x 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0%R end else bpow (cexp beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:(- x)%R <> 0%Rbpow (cexp beta fexp (- x)) = (if Req_bool x 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0%R end else bpow (cexp beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:(- x)%R = 0%Rx = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:(- x)%R <> 0%Rbpow (cexp beta fexp (- x)) = (if Req_bool x 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0%R end else bpow (cexp beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:(- x)%R <> 0%Rbpow (cexp beta fexp (- x)) = (if Req_bool x 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0%R end else bpow (cexp beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:(- x)%R <> 0%Rbpow (cexp beta fexp (- x)) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:(- x)%R <> 0%Rx <> 0%Rintros H2; apply H1; rewrite H2; ring. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:(- x)%R <> 0%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, ulp (Rabs x) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, ulp (Rabs x) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Rulp (Rabs x) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:x = 0%R(if Req_bool (Rabs x) 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0%R end else bpow (cexp beta fexp (Rabs x))) = match negligible_exp with | Some n => bpow (fexp n) | None => 0%R endbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:x <> 0%R(if Req_bool (Rabs x) 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0%R end else bpow (cexp beta fexp (Rabs x))) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:x = 0%RRabs x = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:x <> 0%R(if Req_bool (Rabs x) 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0%R end else bpow (cexp beta fexp (Rabs x))) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:x <> 0%R(if Req_bool (Rabs x) 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0%R end else bpow (cexp beta fexp (Rabs x))) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:x <> 0%Rbpow (cexp beta fexp (Rabs x)) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:x <> 0%RRabs x <> 0%Rnow apply Rabs_no_R0. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH1:x <> 0%RRabs x <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH:x = 0%R(0 <= match negligible_exp with | Some n => bpow (fexp n) | None => 0 end)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH:x <> 0%R(0 <= bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH:x = 0%Rz:Z(0 <= bpow (fexp z))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH:x = 0%R(0 <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH:x <> 0%R(0 <= bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH:x = 0%R(0 <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH:x <> 0%R(0 <= bpow (cexp beta fexp x))%Rapply bpow_ge_0. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RH:x <> 0%R(0 <= bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> (ulp x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> (ulp x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(ulp x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(1 * ulp x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(1 * ulp x <= F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(1 * bpow (cexp beta fexp x) <= F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(1 * bpow (cexp beta fexp x) <= F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(1 * bpow (cexp beta fexp x) <= IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(0 <= bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(1 <= IZR (Ztrunc (scaled_mantissa beta fexp x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(1 <= IZR (Ztrunc (scaled_mantissa beta fexp x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(0 < Ztrunc (scaled_mantissa beta fexp x))%Znow rewrite <- Fx. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(0 < F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, x <> 0%R -> F x -> (ulp x <= Rabs x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, x <> 0%R -> F x -> (ulp x <= Rabs x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RFx:F x(ulp x <= Rabs x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RFx:F x(ulp (Rabs x) <= Rabs x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RFx:F x(0 < Rabs x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RFx:F xF (Rabs x)now apply generic_format_abs. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RFx:F xF (Rabs x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, ~ F x -> round beta fexp Zceil x = (round beta fexp Zfloor x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, ~ F x -> round beta fexp Zceil x = (round beta fexp Zfloor x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xround beta fexp Zceil x = (round beta fexp Zfloor x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xround beta fexp Zceil x = (round beta fexp Zfloor x + bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xF2R {| Fnum := Zceil (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} = (F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} + bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xF2R {| Fnum := Zceil (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} = (F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} + bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F x(IZR (Fnum {| Fnum := Zceil (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}) * bpow (Fexp {| Fnum := Zceil (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}))%R = (IZR (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}) * bpow (Fexp {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}) + bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F x(IZR (Zceil (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x))%R = (IZR (Zfloor (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x) + bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F x(IZR (Zfloor (scaled_mantissa beta fexp x) + 1) * bpow (cexp beta fexp x))%R = (IZR (Zfloor (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x) + bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xIZR (Zfloor (scaled_mantissa beta fexp x)) <> scaled_mantissa beta fexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F x((IZR (Zfloor (scaled_mantissa beta fexp x)) + 1) * bpow (cexp beta fexp x))%R = (IZR (Zfloor (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x) + bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xIZR (Zfloor (scaled_mantissa beta fexp x)) <> scaled_mantissa beta fexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F x((IZR (Zfloor (scaled_mantissa beta fexp x)) + 1) * bpow (cexp beta fexp x))%R = (IZR (Zfloor (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x) + bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xIZR (Zfloor (scaled_mantissa beta fexp x)) <> scaled_mantissa beta fexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xIZR (Zfloor (scaled_mantissa beta fexp x)) <> scaled_mantissa beta fexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xH:IZR (Zfloor (scaled_mantissa beta fexp x)) = scaled_mantissa beta fexp xFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xH:IZR (Zfloor (scaled_mantissa beta fexp x)) = scaled_mantissa beta fexp xF xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xH:IZR (Zfloor (scaled_mantissa beta fexp x)) = scaled_mantissa beta fexp xx = (IZR (Fnum {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}) * bpow (Fexp {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xH:IZR (Zfloor (scaled_mantissa beta fexp x)) = scaled_mantissa beta fexp xx = (IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xH:IZR (Zfloor (scaled_mantissa beta fexp x)) = scaled_mantissa beta fexp xx = (IZR (Ztrunc (IZR (Zfloor (scaled_mantissa beta fexp x)))) * bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xH:IZR (Zfloor (scaled_mantissa beta fexp x)) = scaled_mantissa beta fexp xx = (IZR (Zfloor (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xH:IZR (Zfloor (scaled_mantissa beta fexp x)) = scaled_mantissa beta fexp xx = (scaled_mantissa beta fexp x * bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xV:x = 0%RF xapply generic_format_0. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xV:x = 0%RF 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall m e : Z, m <> 0%Z -> canonical beta fexp {| Fnum := m; Fexp := e |} -> ulp (F2R {| Fnum := m; Fexp := e |}) = bpow ebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall m e : Z, m <> 0%Z -> canonical beta fexp {| Fnum := m; Fexp := e |} -> ulp (F2R {| Fnum := m; Fexp := e |}) = bpow ebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpm, e:ZHm:m <> 0%ZHc:canonical beta fexp {| Fnum := m; Fexp := e |}ulp (F2R {| Fnum := m; Fexp := e |}) = bpow ebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpm, e:ZHm:m <> 0%ZHc:canonical beta fexp {| Fnum := m; Fexp := e |}bpow (cexp beta fexp (F2R {| Fnum := m; Fexp := e |})) = bpow enow apply sym_eq. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpm, e:ZHm:m <> 0%ZHc:canonical beta fexp {| Fnum := m; Fexp := e |}cexp beta fexp (F2R {| Fnum := m; Fexp := e |}) = ebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall e : Z, ulp (bpow e) = bpow (fexp (e + 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall e : Z, ulp (bpow e) = bpow (fexp (e + 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zulp (bpow e) = bpow (fexp (e + 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zbpow (cexp beta fexp (bpow e)) = bpow (fexp (e + 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zbpow e <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zcexp beta fexp (bpow e) = fexp (e + 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zbpow e <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(bpow (e + 1 - 1) <= Rabs (bpow e) < bpow (e + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zbpow e <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(bpow (e + 1 - 1) <= bpow e < bpow (e + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(0 <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zbpow e <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(bpow (e + 1 - 1) <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(bpow e < bpow (e + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(0 <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zbpow e <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(bpow e <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(bpow e < bpow (e + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(0 <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zbpow e <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(bpow e < bpow (e + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(0 <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zbpow e <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(e < e + 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(0 <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zbpow e <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(0 <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zbpow e <> 0%Rapply Rgt_not_eq, Rlt_gt, bpow_gt_0. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zbpow e <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpF (ulp 0)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpF (ulp 0)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpF (if Req_bool 0 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0%R end else bpow (cexp beta fexp 0))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpF match negligible_exp with | Some n => bpow (fexp n) | None => 0 endbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(forall n : Z, (fexp n < n)%Z) -> F 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall n : Z, (n <= fexp n)%Z -> F (bpow (fexp n))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall n : Z, (n <= fexp n)%Z -> F (bpow (fexp n))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpn:ZH1:(n <= fexp n)%ZF (bpow (fexp n))now apply valid_exp. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpn:ZH1:(n <= fexp n)%Z(fexp (fexp n + 1) <= fexp n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall e : Z, (ulp 0 <= bpow e)%R -> F (bpow e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall e : Z, (ulp 0 <= bpow e)%R -> F (bpow e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z((if Req_bool 0 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0 end else bpow (cexp beta fexp 0)) <= bpow e)%R -> F (bpow e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(match negligible_exp with | Some n => bpow (fexp n) | None => 0 end <= bpow e)%R -> F (bpow e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(forall n : Z, (fexp n < n)%Z) -> (0 <= bpow e)%R -> F (bpow e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zforall n : Z, (n <= fexp n)%Z -> (bpow (fexp n) <= bpow e)%R -> F (bpow e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:ZH1:forall n : Z, (fexp n < n)%ZF (bpow e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zforall n : Z, (n <= fexp n)%Z -> (bpow (fexp n) <= bpow e)%R -> F (bpow e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:ZH1:forall n : Z, (fexp n < n)%Z(fexp (e + 1) <= e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zforall n : Z, (n <= fexp n)%Z -> (bpow (fexp n) <= bpow e)%R -> F (bpow e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zforall n : Z, (n <= fexp n)%Z -> (bpow (fexp n) <= bpow e)%R -> F (bpow e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RF (bpow e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%R(fexp (e + 1) <= e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RH4:(e + 1 <= fexp (e + 1))%Z(fexp (e + 1) <= e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RH4:(fexp (e + 1) < e + 1)%Z(fexp (e + 1) <= e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RH4:(e + 1 <= fexp (e + 1))%Z~ (e + 1 <= e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RH4:(e + 1 <= fexp (e + 1))%Z(e + 1 <= e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RH4:(fexp (e + 1) < e + 1)%Z(fexp (e + 1) <= e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RH4:(e + 1 <= fexp (e + 1))%Z(e + 1 <= e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RH4:(fexp (e + 1) < e + 1)%Z(fexp (e + 1) <= e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RH4:(e + 1 <= fexp (e + 1))%Z(fexp (e + 1) <= e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RH4:(fexp (e + 1) < e + 1)%Z(fexp (e + 1) <= e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RH4:(e + 1 <= fexp (e + 1))%Z(fexp n <= e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RH4:(e + 1 <= fexp (e + 1))%Zfexp n = fexp (e + 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RH4:(fexp (e + 1) < e + 1)%Z(fexp (e + 1) <= e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RH4:(e + 1 <= fexp (e + 1))%Zfexp n = fexp (e + 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RH4:(fexp (e + 1) < e + 1)%Z(fexp (e + 1) <= e)%Zomega. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe, n:ZH1:(n <= fexp n)%ZH2:(bpow (fexp n) <= bpow e)%RH4:(fexp (e + 1) < e + 1)%Z(fexp (e + 1) <= e)%Z
The three following properties are equivalent:
Exp_not_FTZ ; forall x, F (ulp x) ; forall x, ulp 0 <= ulp x
beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpExp_not_FTZ fexp -> forall x : R, F (ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpExp_not_FTZ fexp -> forall x : R, F (ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RF (ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x = 0%RF (ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%RF (ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%RF (ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%RF (bpow (cexp beta fexp x))apply H. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%R(fexp (cexp beta fexp x + 1) <= cexp beta fexp x)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(forall x : R, F (ulp x)) -> Exp_not_FTZ fexpbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(forall x : R, F (ulp x)) -> Exp_not_FTZ fexpbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall x : R, F (ulp x)e:Z(fexp (fexp e + 1) <= fexp e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:ZH:F (ulp (bpow (e - 1)))(fexp (fexp e + 1) <= fexp e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:ZH:F (bpow (cexp beta fexp (bpow (e - 1))))(fexp (fexp e + 1) <= fexp e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:ZH:F (ulp (bpow (e - 1)))bpow (e - 1) <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:ZH:F (bpow (cexp beta fexp (bpow (e - 1))))(fexp (fexp e + 1) <= fexp e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:ZH:F (bpow (fexp (mag beta (bpow (e - 1)))))(fexp (fexp e + 1) <= fexp e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:ZH:F (bpow (fexp (e - 1 + 1)))(fexp (fexp e + 1) <= fexp e)%Znow replace (e-1+1)%Z with e in H by ring. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:ZH:(fexp (fexp (e - 1 + 1) + 1) <= fexp (e - 1 + 1))%Z(fexp (fexp e + 1) <= fexp e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpExp_not_FTZ fexp -> forall x : R, (ulp 0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpExp_not_FTZ fexp -> forall x : R, (ulp 0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:R(ulp 0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x = 0%R(ulp 0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%R(ulp 0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%R(ulp 0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%R((if Req_bool 0 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0 end else bpow (cexp beta fexp 0)) <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%R(match negligible_exp with | Some n => bpow (fexp n) | None => 0 end <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%Rnegligible_exp = None /\ (forall n : Z, (fexp n < n)%Z) -> (match negligible_exp with | Some n => bpow (fexp n) | None => 0 end <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> (match negligible_exp with | Some n => bpow (fexp n) | None => 0 end <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> (match negligible_exp with | Some n => bpow (fexp n) | None => 0 end <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%Rn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Z(bpow (fexp n) <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%Rn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Z(bpow (fexp n) <= bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%Rn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Z(fexp n <= fexp (mag beta x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%Rn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Zl:mag_prop beta x(fexp n <= fexp l)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%Rn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Zl:mag_prop beta xHl:(l <= fexp l)%Z(fexp n <= fexp l)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%Rn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Zl:mag_prop beta xHl:(fexp l < l)%Z(fexp n <= fexp l)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%Rn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Zl:mag_prop beta xHl:(fexp l < l)%Z(fexp n <= fexp l)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%Rn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Zl:mag_prop beta xHl:(fexp l < l)%ZK:(fexp l < fexp n)%Z(fexp n <= fexp l)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%Rn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Zl:mag_prop beta xHl:(fexp l < l)%ZK:(fexp l < fexp n)%Z~ (fexp n <= fexp l)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%Rn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Zl:mag_prop beta xHl:(fexp l < l)%ZK:(fexp l < fexp n)%Z(fexp n <= fexp l)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%Rn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Zl:mag_prop beta xHl:(fexp l < l)%ZK:(fexp l < fexp n)%Z(fexp n <= fexp l)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%Rn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Zl:mag_prop beta xHl:(fexp l < l)%ZK:(fexp l < fexp n)%Z(fexp n <= fexp (fexp l + 1))%Zomega. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall e : Z, (fexp (fexp e + 1) <= fexp e)%Zx:RHx:x <> 0%Rn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Zl:mag_prop beta xHl:(fexp l < l)%ZK:(fexp l < fexp n)%Z(fexp l + 1 <= fexp n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(forall x : R, (ulp 0 <= ulp x)%R) -> Exp_not_FTZ fexpbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(forall x : R, (ulp 0 <= ulp x)%R) -> Exp_not_FTZ fexpbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall x : R, (ulp 0 <= ulp x)%Re:Z(fexp (fexp e + 1) <= fexp e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall x : R, (ulp 0 <= ulp x)%Re:ZF (bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall x : R, (ulp 0 <= ulp x)%Re:Z(ulp 0 <= bpow (fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall x : R, (ulp 0 <= ulp x)%Re:Z(ulp 0 <= bpow (fexp (e - 1 + 1)))%Rapply H. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:forall x : R, (ulp 0 <= ulp x)%Re:Z(ulp 0 <= ulp (bpow (e - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall x y : R, (0 <= x)%R -> (x <= y)%R -> (ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall x y : R, (0 <= x)%R -> (x <= y)%R -> (ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 <= x)%RHxy:(x <= y)%R(ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%R(ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:0%R = xHxy:(x <= y)%R(ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%R(bpow (cexp beta fexp x) <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:0%R = xHxy:(x <= y)%R(ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%R(bpow (cexp beta fexp x) <= bpow (cexp beta fexp y))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%Ry <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:0%R = xHxy:(x <= y)%R(ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%R(cexp beta fexp x <= cexp beta fexp y)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%Ry <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:0%R = xHxy:(x <= y)%R(ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%R(mag beta x <= mag beta y)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%Ry <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:0%R = xHxy:(x <= y)%R(ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%Ry <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:0%R = xHxy:(x <= y)%R(ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%R(0 < y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:0%R = xHxy:(x <= y)%R(ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:(0 < x)%RHxy:(x <= y)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:0%R = xHxy:(x <= y)%R(ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:0%R = xHxy:(x <= y)%R(ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:0%R = xHxy:(x <= y)%R(ulp 0 <= ulp y)%Rapply monotone_exp_not_FTZ... Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHx:0%R = xHxy:(x <= y)%RExp_not_FTZ fexpbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall x y : R, (Rabs x <= Rabs y)%R -> (ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall x y : R, (Rabs x <= Rabs y)%R -> (ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHxy:(Rabs x <= Rabs y)%R(ulp x <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHxy:(Rabs x <= Rabs y)%R(ulp (Rabs x) <= ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHxy:(Rabs x <= Rabs y)%R(ulp (Rabs x) <= ulp (Rabs y))%Rapply Rabs_pos. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpx, y:RHxy:(Rabs x <= Rabs y)%R(0 <= Rabs x)%R
Properties when there is no minimal exponent
beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpnegligible_exp = None -> forall rnd : R -> Z, Valid_rnd rnd -> forall x : R, round beta fexp rnd x = 0%R -> x = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpnegligible_exp = None -> forall rnd : R -> Z, Valid_rnd rnd -> forall x : R, round beta fexp rnd x = 0%R -> x = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%Rx = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%Rx = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%RRabs (round beta fexp rnd x) <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%RRabs (round beta fexp rnd x) = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%RRabs (round beta fexp rnd x) <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%R(Rabs (round beta fexp rnd x) > 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%R(0 < bpow (mag beta x - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%R(bpow (mag beta x - 1) <= Rabs (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%R(bpow (mag beta x - 1) <= Rabs (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%RF (bpow (mag beta x - 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%R(bpow (mag beta x - 1) <= Rabs x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%R(fexp (mag beta x - 1 + 1) <= mag beta x - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%R(bpow (mag beta x - 1) <= Rabs x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%RK1:negligible_exp = NoneK2:forall n : Z, (fexp n < n)%Z(fexp (mag beta x - 1 + 1) <= mag beta x - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> (fexp (mag beta x - 1 + 1) <= mag beta x - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%R(bpow (mag beta x - 1) <= Rabs x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%RK1:negligible_exp = NoneK2:forall n : Z, (fexp n < n)%Z(fexp (mag beta x) <= mag beta x - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> (fexp (mag beta x - 1 + 1) <= mag beta x - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%R(bpow (mag beta x - 1) <= Rabs x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> (fexp (mag beta x - 1 + 1) <= mag beta x - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%R(bpow (mag beta x - 1) <= Rabs x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%Rn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Z(fexp (mag beta x - 1 + 1) <= mag beta x - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%R(bpow (mag beta x - 1) <= Rabs x)%Rnow apply bpow_mag_le. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonernd:R -> ZVr:Valid_rnd rndx:RHx:round beta fexp rnd x = 0%RHx2:x <> 0%R(bpow (mag beta x - 1) <= Rabs x)%R
Definition and properties of pred and succ
Definition pred_pos x := if Req_bool x (bpow (mag beta x - 1)) then (x - bpow (fexp (mag beta x - 1)))%R else (x - ulp x)%R. Definition succ x := if (Rle_bool 0 x) then (x+ulp x)%R else (- pred_pos (-x))%R. Definition pred x := (- succ (-x))%R.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 <= x)%R -> pred x = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 <= x)%R -> pred x = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%R(- (if Rle_bool 0 (- x) then - x + ulp (- x) else - pred_pos (- - x)))%R = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(0 <= - x)%R(- (- x + ulp (- x)))%R = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(- x < 0)%R(- - pred_pos (- - x))%R = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(0 <= - x)%Rx = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(0 <= - x)%RK:x = 0%R(- (- x + ulp (- x)))%R = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(- x < 0)%R(- - pred_pos (- - x))%R = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(0 <= - x)%R(x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(0 <= - x)%RK:x = 0%R(- (- x + ulp (- x)))%R = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(- x < 0)%R(- - pred_pos (- - x))%R = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(0 <= - x)%R(- 0 <= - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(0 <= - x)%RK:x = 0%R(- (- x + ulp (- x)))%R = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(- x < 0)%R(- - pred_pos (- - x))%R = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(0 <= - x)%RK:x = 0%R(- (- x + ulp (- x)))%R = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(- x < 0)%R(- - pred_pos (- - x))%R = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(0 <= - x)%RK:x = 0%R(- (- 0 + ulp (- 0)))%R = (if Req_bool 0 (bpow (mag beta 0 - 1)) then (0 - bpow (fexp (mag beta 0 - 1)))%R else (0 - ulp 0)%R)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(- x < 0)%R(- - pred_pos (- - x))%R = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(0 <= - x)%RK:x = 0%R(- (- 0 + ulp (- 0)))%R = (0 - ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(0 <= - x)%RK:x = 0%R0%R <> bpow (mag beta 0 - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(- x < 0)%R(- - pred_pos (- - x))%R = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(0 <= - x)%RK:x = 0%R(- (- 0 + ulp (- 0)))%R = (0 - ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(- x < 0)%R(- - pred_pos (- - x))%R = pred_pos xnow rewrite 2!Ropp_involutive. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%RHx':(- x < 0)%R(- - pred_pos (- - x))%R = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 <= x)%R -> succ x = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 <= x)%R -> succ x = (x + ulp x)%Rnow rewrite Rle_bool_true. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 <= x)%R(if Rle_bool 0 x then (x + ulp x)%R else (- pred_pos (- x))%R) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, succ (- x) = (- pred x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, succ (- x) = (- pred x)%Rnow apply sym_eq, Ropp_involutive. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Rsucc (- x) = (- pred x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, pred (- x) = (- succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, pred (- x) = (- succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Rpred (- x) = (- succ x)%Rnow rewrite Ropp_involutive. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:R(- succ (- - x))%R = (- succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall e : Z, pred (bpow e) = (bpow e - bpow (fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall e : Z, pred (bpow e) = (bpow e - bpow (fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zpred (bpow e) = (bpow e - bpow (fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Zpred_pos (bpow e) = (bpow e - bpow (fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(if Req_bool (bpow e) (bpow (mag beta (bpow e) - 1)) then (bpow e - bpow (fexp (mag beta (bpow e) - 1)))%R else (bpow e - ulp (bpow e))%R) = (bpow e - bpow (fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(if Req_bool (bpow e) (bpow (e + 1 - 1)) then (bpow e - bpow (fexp (e + 1 - 1)))%R else (bpow e - ulp (bpow e))%R) = (bpow e - bpow (fexp e))%Rnow rewrite Req_bool_true. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpe:Z(if Req_bool (bpow e) (bpow e) then (bpow e - bpow (fexp e))%R else (bpow e - ulp (bpow e))%R) = (bpow e - bpow (fexp e))%R
pred and succ are in the format
(* cannont be x <> ulp 0, due to the counter-example 1-bit FP format fexp: e -> e-1 *) (* was pred_ge_bpow *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (x : R) (e : Z), F x -> x <> ulp x -> (bpow e < x)%R -> (bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (x : R) (e : Z), F x -> x <> ulp x -> (bpow e < x)%R -> (bpow e <= x - ulp x)%R(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%R(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%R(1 <= Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%R(0 < Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(0 < Ztrunc (scaled_mantissa beta fexp x))%Z(1 <= Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%R(0 < F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(0 < Ztrunc (scaled_mantissa beta fexp x))%Z(1 <= Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%R(0 < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(0 < Ztrunc (scaled_mantissa beta fexp x))%Z(1 <= Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%R(0 <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(0 < Ztrunc (scaled_mantissa beta fexp x))%Z(1 <= Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(0 < Ztrunc (scaled_mantissa beta fexp x))%Z(1 <= Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e <= x - ulp x)%R(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e <= F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e <= F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} - bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Zx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e <= IZR (Fnum {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}) * bpow (Fexp {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}) - bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Zx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e <= IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x) - bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Zx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e <= IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x) - 1 * bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Zx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e <= (IZR (Ztrunc (scaled_mantissa beta fexp x)) - 1) * bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Zx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e <= IZR (Ztrunc (scaled_mantissa beta fexp x) - 1) * bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Zx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Z(1 < Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e < F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := fexp (mag beta x) |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Zx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Z(bpow e < F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := fexp (mag beta x) |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Zx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Zx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:(1 < Ztrunc (scaled_mantissa beta fexp x))%Z(0 < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)(bpow e <= x - ulp x)%R(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx':x <> ulp xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)(bpow e <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)x = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)F2R {| Fnum := 1; Fexp := cexp beta fexp x |} = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)F2R {| Fnum := 1; Fexp := cexp beta fexp x |} = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)x <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)(1 * bpow (cexp beta fexp x))%R = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)x <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)x <> 0%Rapply Rlt_trans with (2:=Hx), bpow_gt_0. Qed. (* was succ_le_bpow *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZFx:F xHx:(bpow e < x)%RH:(1 <= Ztrunc (scaled_mantissa beta fexp x))%ZHm:1%Z = Ztrunc (scaled_mantissa beta fexp x)(0 < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (x : R) (e : Z), (0 < x)%R -> F x -> (x < bpow e)%R -> (x + ulp x <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (x : R) (e : Z), (0 < x)%R -> F x -> (x < bpow e)%R -> (x + ulp x <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%R(x + ulp x <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%R(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} + ulp x <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%R(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} + bpow (cexp beta fexp x) <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%R(IZR (Fnum {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}) * bpow (Fexp {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}) + bpow (cexp beta fexp x) <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%R(IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x) + bpow (cexp beta fexp x) <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%R(IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x) + 1 * bpow (cexp beta fexp x) <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%R((IZR (Ztrunc (scaled_mantissa beta fexp x)) + 1) * bpow (cexp beta fexp x) <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%R(IZR (Ztrunc (scaled_mantissa beta fexp x) + 1) * bpow (cexp beta fexp x) <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%R(0 < Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%R(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := fexp (mag beta x) |} < bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%R(0 < F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%R(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := fexp (mag beta x) |} < bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%R(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := fexp (mag beta x) |} < bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%Rx <> 0%Rnow apply Rgt_not_eq. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Re:ZZx:(0 < x)%RFx:F xHx:(x < bpow e)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> x <> bpow (mag beta x - 1) -> F (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> x <> bpow (mag beta x - 1) -> F (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)F (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (Build_mag_prop beta x ex Ex - 1)F (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)F (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)F (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)(bpow (ex - 1) < x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%RF (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= x < bpow ex)%RHx:x <> bpow (ex - 1)(bpow (ex - 1) < x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%RF (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZH:bpow (ex - 1) = xH':(x < bpow ex)%RHx:x <> bpow (ex - 1)(bpow (ex - 1) < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%RF (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%RF (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%RF (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(x - ulp x)%R = F2R {| Fnum := Ztrunc ((x - ulp x) * bpow (- fexp (mag beta (x - ulp x)))); Fexp := fexp (mag beta (x - ulp x)) |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(x - ulp x)%R = F2R {| Fnum := Ztrunc ((x - ulp x) * bpow (- fexp ex)); Fexp := fexp ex |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} - ulp x)%R = F2R {| Fnum := Ztrunc ((F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} - ulp x) * bpow (- fexp ex)); Fexp := fexp ex |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} - bpow (cexp beta fexp x))%R = F2R {| Fnum := Ztrunc ((F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} - bpow (cexp beta fexp x)) * bpow (- fexp ex)); Fexp := fexp ex |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(F2R {| Fnum := Ztrunc (x * bpow (- cexp beta fexp x)); Fexp := cexp beta fexp x |} - bpow (cexp beta fexp x))%R = F2R {| Fnum := Ztrunc ((F2R {| Fnum := Ztrunc (x * bpow (- cexp beta fexp x)); Fexp := cexp beta fexp x |} - bpow (cexp beta fexp x)) * bpow (- fexp ex)); Fexp := fexp ex |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(F2R {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |} - bpow (fexp ex))%R = F2R {| Fnum := Ztrunc ((F2R {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |} - bpow (fexp ex)) * bpow (- fexp ex)); Fexp := fexp ex |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(IZR (Fnum {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |}) * bpow (Fexp {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |}) - bpow (fexp ex))%R = (IZR (Fnum {| Fnum := Ztrunc ((IZR (Fnum {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |}) * bpow (Fexp {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |}) - bpow (fexp ex)) * bpow (- fexp ex)); Fexp := fexp ex |}) * bpow (Fexp {| Fnum := Ztrunc ((IZR (Fnum {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |}) * bpow (Fexp {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |}) - bpow (fexp ex)) * bpow (- fexp ex)); Fexp := fexp ex |}))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) - bpow (fexp ex))%R = (IZR (Ztrunc ((IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) - bpow (fexp ex)) * bpow (- fexp ex))) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) - bpow (fexp ex))%R = (IZR (Ztrunc (IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) * bpow (- fexp ex) - bpow (fexp ex) * bpow (- fexp ex))) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) - bpow (fexp ex))%R = (IZR (Ztrunc (IZR (Ztrunc (x * bpow (- fexp ex))) * (bpow (fexp ex) * bpow (- fexp ex)) - bpow (fexp ex) * bpow (- fexp ex))) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) - bpow (fexp ex))%R = (IZR (Ztrunc (IZR (Ztrunc (x * bpow (- fexp ex))) - bpow 0)) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) - bpow (fexp ex))%R = (IZR (Ztrunc (IZR (Ztrunc (x * bpow (- fexp ex))) - 1)) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) - bpow (fexp ex))%R = (IZR (Ztrunc (IZR (Ztrunc (x * bpow (- fexp ex)) - 1))) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) - bpow (fexp ex))%R = (IZR (Ztrunc (x * bpow (- fexp ex)) - 1) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) - bpow (fexp ex))%R = ((IZR (Ztrunc (x * bpow (- fexp ex))) - 1) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) - bpow (fexp ex))%R = (IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) - 1 * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= Rabs (x - ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= x - ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(x - ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(x - ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(x - ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%RH:x = bpow (cexp beta fexp x)Falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(x - ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%RH:x = bpow (cexp beta fexp x)(ex - 1 < cexp beta fexp x < ex)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%RH:x = bpow (cexp beta fexp x)H0:(ex - 1 < cexp beta fexp x < ex)%ZFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(x - ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%RH:x = bpow (cexp beta fexp x)H0:(ex - 1 < cexp beta fexp x < ex)%ZFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(x - ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zx:Rex:ZH0:(ex - 1 < cexp beta fexp x < ex)%ZFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(x - ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(x - ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (ex - 1) < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(x - ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(x - ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(x - ulp x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(x - ulp x <= x + 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(- ulp x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(- ulp x <= - 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(ulp x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(ulp x <= F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (cexp beta fexp x) <= F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(bpow (cexp beta fexp x) <= IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(1 * bpow (cexp beta fexp x) <= IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(1 <= IZR (Ztrunc (scaled_mantissa beta fexp x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(1 <= IZR (Ztrunc (scaled_mantissa beta fexp x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(1 <= Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 < Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%RH:(0 < Ztrunc (scaled_mantissa beta fexp x))%Z(1 <= Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 < F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%RH:(0 < Ztrunc (scaled_mantissa beta fexp x))%Z(1 <= Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%RH:(0 < Ztrunc (scaled_mantissa beta fexp x))%Z(1 <= Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%R(0 <= bpow (ex - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%RH:(0 < Ztrunc (scaled_mantissa beta fexp x))%Z(1 <= Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%RH:(0 < Ztrunc (scaled_mantissa beta fexp x))%Z(1 <= Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rnow apply Rgt_not_eq. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RHx:x <> bpow (ex - 1)Ex':(bpow (ex - 1) < x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> let e := mag_val beta x (mag beta x) in x = bpow (e - 1) -> F (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> let e := mag_val beta x (mag beta x) in x = bpow (e - 1) -> F (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)F (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RF (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:R(fexp (e - 1) <= e - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) <= e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RF (bpow (e - 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) <= e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) <= e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%Zf = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}F fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%Z(bpow (e - 1) - bpow (fexp (e - 1)))%R = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}F fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%Z(bpow (e - 1) - bpow (fexp (e - 1)))%R = (IZR (beta ^ (e - 1 - fexp (e - 1)) - 1) * bpow (fexp (e - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}F fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%Z(bpow (e - 1) - bpow (fexp (e - 1)))%R = ((bpow (e - 1 - fexp (e - 1)) - 1) * bpow (fexp (e - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%Z(0 <= e - 1 - fexp (e - 1))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}F fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%Z(bpow (e - 1) - bpow (fexp (e - 1)))%R = (bpow (e - 1 - fexp (e - 1)) * bpow (fexp (e - 1)) - bpow (fexp (e - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%Z(0 <= e - 1 - fexp (e - 1))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}F fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%Z(bpow (e - 1) - bpow (fexp (e - 1)))%R = (bpow (e - 1 - fexp (e - 1) + fexp (e - 1)) - bpow (fexp (e - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%Z(0 <= e - 1 - fexp (e - 1))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}F fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%Z(0 <= e - 1 - fexp (e - 1))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}F fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}F fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}F (F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |})beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(beta ^ (e - 1 - fexp (e - 1)) - 1)%Z <> 0%Z -> (cexp beta fexp (F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}) <= fexp (e - 1))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(cexp beta fexp (F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}) <= fexp (e - 1))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}cexp beta fexp (F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}) = fexp (e - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1 - 1) <= Rabs (F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1 - 1) <= Rabs f < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1 - 1) <= Rabs (bpow (e - 1) - bpow (fexp (e - 1))) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1 - 1) <= bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1 - 1) <= bpow (e - 1) - bpow (fexp (e - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (fexp (e - 1)) + bpow (e - 1 - 1) <= bpow (fexp (e - 1)) + (bpow (e - 1) - bpow (fexp (e - 1))))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (fexp (e - 1)) + bpow (e - 1 - 1) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (fexp (e - 1)) + bpow (e - 1 - 1) <= bpow (e - 2) + bpow (e - 2))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 2) + bpow (e - 2) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 2) + bpow (e - 2) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(2 * bpow (e - 2) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(2 * bpow (e - 2) <= bpow 1 * bpow (e - 2))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow 1 * bpow (e - 2) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(0 <= bpow (e - 2))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(2 <= bpow 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow 1 * bpow (e - 2) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(2 <= bpow 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow 1 * bpow (e - 2) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(2 <= IZR beta)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}IZR beta = bpow 1beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow 1 * bpow (e - 2) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(2 <= beta)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}IZR beta = bpow 1beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow 1 * bpow (e - 2) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(2 <=? beta)%Z = truebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}IZR beta = bpow 1beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow 1 * bpow (e - 2) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}IZR beta = bpow 1beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow 1 * bpow (e - 2) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}IZR beta = IZR (Z.pow_pos beta 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow 1 * bpow (e - 2) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}IZR beta = IZR (beta * 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow 1 * bpow (e - 2) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow 1 * bpow (e - 2) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (1 + (e - 2)) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1) + 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(- bpow (fexp (e - 1)) < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(- bpow (fexp (e - 1)) < - 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(0 < bpow (fexp (e - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (e - 1) - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(bpow (fexp (e - 1)) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:(fexp (e - 1) < e - 1)%ZH:f = F2R {| Fnum := beta ^ (e - 1 - fexp (e - 1)) - 1; Fexp := fexp (e - 1) |}(fexp (e - 1) <= e - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%ZF 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%Z0%R = fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%Z0%R = fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%Z0%R = (x - bpow (fexp (e - 1)))%Rring. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHx:x = bpow (e - 1)f:=(x - bpow (fexp (e - 1)))%R:RHe:fexp (e - 1) = (e - 1)%Z0%R = (bpow (e - 1) - bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> F (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> F (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%RF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%RF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%RF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(x + ulp x)%R = F2R {| Fnum := Ztrunc ((x + ulp x) * bpow (- fexp (mag beta (x + ulp x)))); Fexp := fexp (mag beta (x + ulp x)) |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(x + ulp x)%R = F2R {| Fnum := Ztrunc ((x + ulp x) * bpow (- fexp ex)); Fexp := fexp ex |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} + ulp x)%R = F2R {| Fnum := Ztrunc ((F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} + ulp x) * bpow (- fexp ex)); Fexp := fexp ex |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} + bpow (cexp beta fexp x))%R = F2R {| Fnum := Ztrunc ((F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} + bpow (cexp beta fexp x)) * bpow (- fexp ex)); Fexp := fexp ex |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(F2R {| Fnum := Ztrunc (x * bpow (- cexp beta fexp x)); Fexp := cexp beta fexp x |} + bpow (cexp beta fexp x))%R = F2R {| Fnum := Ztrunc ((F2R {| Fnum := Ztrunc (x * bpow (- cexp beta fexp x)); Fexp := cexp beta fexp x |} + bpow (cexp beta fexp x)) * bpow (- fexp ex)); Fexp := fexp ex |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(F2R {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |} + bpow (fexp ex))%R = F2R {| Fnum := Ztrunc ((F2R {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |} + bpow (fexp ex)) * bpow (- fexp ex)); Fexp := fexp ex |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(IZR (Fnum {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |}) * bpow (Fexp {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |}) + bpow (fexp ex))%R = (IZR (Fnum {| Fnum := Ztrunc ((IZR (Fnum {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |}) * bpow (Fexp {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |}) + bpow (fexp ex)) * bpow (- fexp ex)); Fexp := fexp ex |}) * bpow (Fexp {| Fnum := Ztrunc ((IZR (Fnum {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |}) * bpow (Fexp {| Fnum := Ztrunc (x * bpow (- fexp ex)); Fexp := fexp ex |}) + bpow (fexp ex)) * bpow (- fexp ex)); Fexp := fexp ex |}))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) + bpow (fexp ex))%R = (IZR (Ztrunc ((IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) + bpow (fexp ex)) * bpow (- fexp ex))) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) + bpow (fexp ex))%R = (IZR (Ztrunc (IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) * bpow (- fexp ex) + bpow (fexp ex) * bpow (- fexp ex))) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) + bpow (fexp ex))%R = (IZR (Ztrunc (IZR (Ztrunc (x * bpow (- fexp ex))) * (bpow (fexp ex) * bpow (- fexp ex)) + bpow (fexp ex) * bpow (- fexp ex))) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) + bpow (fexp ex))%R = (IZR (Ztrunc (IZR (Ztrunc (x * bpow (- fexp ex))) + bpow 0)) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) + bpow (fexp ex))%R = (IZR (Ztrunc (IZR (Ztrunc (x * bpow (- fexp ex))) + 1)) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) + bpow (fexp ex))%R = (IZR (Ztrunc (IZR (Ztrunc (x * bpow (- fexp ex)) + 1))) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) + bpow (fexp ex))%R = (IZR (Ztrunc (x * bpow (- fexp ex)) + 1) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) + bpow (fexp ex))%R = ((IZR (Ztrunc (x * bpow (- fexp ex))) + 1) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) + bpow (fexp ex))%R = (IZR (Ztrunc (x * bpow (- fexp ex))) * bpow (fexp ex) + 1 * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + ulp x) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= x + ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(0 <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(bpow (ex - 1) <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(x + ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(0 <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(x <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(x + ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(0 <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(x + 0 <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(x + ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(0 <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(x + ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(0 <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(x + ulp x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(0 <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(0 <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x < bpow ex)%R(0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exF (bpow ex)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow ex(fexp (ex + 1) <= ex)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow ex(fexp ex < ex)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%Z(fexp ex < ex)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%Z(x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%Z(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%Z(F2R {| Fnum := 0; Fexp := cexp beta fexp x |} <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%Z0%Z = Ztrunc (scaled_mantissa beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%Z(0 <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%Z0%Z = Ztrunc (scaled_mantissa beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%Z0%Z = Ztrunc (scaled_mantissa beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%Z0%Z = Ztrunc (x * bpow (- cexp beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%Z0%Z = Ztrunc (x * bpow (- fexp ex))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%ZH1:(0 < x * bpow (- fexp ex))%RH2:(x * bpow (- fexp ex) < 1)%R0%Z = Ztrunc (x * bpow (- fexp ex))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%ZH1:(0 < x * bpow (- fexp ex))%RH2:(x * bpow (- fexp ex) < 1)%R0%Z = Zfloor (x * bpow (- fexp ex))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%ZH1:(0 < x * bpow (- fexp ex))%RH2:(x * bpow (- fexp ex) < 1)%R(0 <= x * bpow (- fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%ZH1:(0 < x * bpow (- fexp ex))%RH2:(x * bpow (- fexp ex) < 1)%RZfloor (x * bpow (- fexp ex)) = 0%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%ZH1:(0 < x * bpow (- fexp ex))%RH2:(x * bpow (- fexp ex) < 1)%R(0 <= x * bpow (- fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%ZH1:(0 < x * bpow (- fexp ex))%RH2:(x * bpow (- fexp ex) < 1)%R(0 <= x * bpow (- fexp ex) < IZR (0 + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%ZH1:(0 < x * bpow (- fexp ex))%RH2:(x * bpow (- fexp ex) < 1)%R(0 <= x * bpow (- fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%ZH1:(0 < x * bpow (- fexp ex))%RH2:(x * bpow (- fexp ex) < 1)%R(0 <= x * bpow (- fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%ZH1:(0 < x * bpow (- fexp ex))%RH2:(x * bpow (- fexp ex) < 1)%R(x * bpow (- fexp ex) < IZR (0 + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%ZH1:(0 < x * bpow (- fexp ex))%RH2:(x * bpow (- fexp ex) < 1)%R(0 <= x * bpow (- fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%ZH1:(0 < x * bpow (- fexp ex))%RH2:(x * bpow (- fexp ex) < 1)%R(x * bpow (- fexp ex) < IZR (0 + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%ZH1:(0 < x * bpow (- fexp ex))%RH2:(x * bpow (- fexp ex) < 1)%R(0 <= x * bpow (- fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:(bpow (ex - 1) <= Rabs x < bpow ex)%REx':(bpow (ex - 1) <= x < bpow ex)%RH:(x + ulp x)%R = bpow exH0:(ex <= fexp ex)%ZH1:(0 < x * bpow (- fexp ex))%RH2:(x * bpow (- fexp ex) < 1)%R(0 <= x * bpow (- fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rnow apply Rlt_le. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx, Ex':(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> (0 < x)%R -> F (pred_pos x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> (0 < x)%R -> F (pred_pos x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:(0 < x)%RF (pred_pos x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:(0 < x)%RH:x = bpow (mag beta x - 1)F (x - bpow (fexp (mag beta x - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:(0 < x)%RH:x <> bpow (mag beta x - 1)F (x - ulp x)now apply generic_format_pred_aux1. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:(0 < x)%RH:x <> bpow (mag beta x - 1)F (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> F (succ x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> F (succ x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xF (succ x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:(0 <= x)%RF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:(x < 0)%RF (- pred_pos (- x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:(0 < x)%RF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:0%R = xF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:(x < 0)%RF (- pred_pos (- x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:0%R = xF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:(x < 0)%RF (- pred_pos (- x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:0%R = xF (ulp 0)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:(x < 0)%RF (- pred_pos (- x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:(x < 0)%RF (- pred_pos (- x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:(x < 0)%RF (pred_pos (- x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:(x < 0)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:(x < 0)%R(0 < - x)%Rnow apply Ropp_0_gt_lt_contravar. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xZx:(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> F (pred x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> F (pred x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xF (pred x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xF (- succ (- x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xF (succ (- x))now apply generic_format_opp. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, x <> 0%R -> (pred_pos x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, x <> 0%R -> (pred_pos x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%R(pred_pos x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%R((if Req_bool x (bpow (mag beta x - 1)) then x - bpow (fexp (mag beta x - 1)) else x - ulp x) < x)%R(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x = bpow (mag beta x - 1)(x - bpow (fexp (mag beta x - 1)) < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x <> bpow (mag beta x - 1)(x - ulp x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x = bpow (mag beta x - 1)(x - bpow (fexp (mag beta x - 1)) < x + 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x <> bpow (mag beta x - 1)(x - ulp x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x = bpow (mag beta x - 1)(- bpow (fexp (mag beta x - 1)) < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x <> bpow (mag beta x - 1)(x - ulp x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x = bpow (mag beta x - 1)(- bpow (fexp (mag beta x - 1)) < - 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x <> bpow (mag beta x - 1)(x - ulp x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x = bpow (mag beta x - 1)(0 < bpow (fexp (mag beta x - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x <> bpow (mag beta x - 1)(x - ulp x < x)%R(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x <> bpow (mag beta x - 1)(x - ulp x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x <> bpow (mag beta x - 1)(x - ulp x < x + 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x <> bpow (mag beta x - 1)(- ulp x < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x <> bpow (mag beta x - 1)(- ulp x < - 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x <> bpow (mag beta x - 1)(0 < ulp x)%Rapply bpow_gt_0. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RH:x <> bpow (mag beta x - 1)(0 < bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, x <> 0%R -> (x < succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, x <> 0%R -> (x < succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%R(x < (if Rle_bool 0 x then x + ulp x else - pred_pos (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RHx:(0 <= x)%R(x < x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RHx:(x < 0)%R(x < - pred_pos (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RHx:(0 <= x)%R(x + 0 < x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RHx:(x < 0)%R(x < - pred_pos (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RHx:(0 <= x)%R(0 < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RHx:(x < 0)%R(x < - pred_pos (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RHx:(0 <= x)%R(0 < bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RHx:(x < 0)%R(x < - pred_pos (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RHx:(x < 0)%R(x < - pred_pos (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RHx:(x < 0)%R(- - x < - pred_pos (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RHx:(x < 0)%R(pred_pos (- x) < - x)%Rauto with real. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%RHx:(x < 0)%R(- x)%R <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, x <> 0%R -> (pred x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, x <> 0%R -> (pred x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%R(- succ (- x) < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%R(- succ (- x) < - - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%R(- x < succ (- x))%Rauto with real. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:x <> 0%R(- x)%R <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (x <= succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (x <= succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Rx = 0%R -> (x <= succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Rx <> 0%R -> (x <= succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RV:x = 0%R(0 <= succ 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Rx <> 0%R -> (x <= succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RV:x = 0%R(0 <= 0 + ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Rx <> 0%R -> (x <= succ x)%Rintros; left; now apply succ_gt_id. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:Rx <> 0%R -> (x <= succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (pred x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (pred x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:R(- succ (- x) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:R(- succ (- x) <= - - x)%Rapply succ_ge_id. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:R(- x <= succ (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> (0 <= pred_pos x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> (0 <= pred_pos x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(0 <= pred_pos x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(0 <= (if Req_bool x (bpow (mag beta x - 1)) then x - bpow (fexp (mag beta x - 1)) else x - ulp x))%R(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x = bpow (mag beta x - 1)(0 <= x - bpow (fexp (mag beta x - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x = bpow (mag beta x - 1)(bpow (fexp (mag beta x - 1)) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x = bpow (mag beta x - 1)(bpow (fexp (mag beta (bpow (mag beta x - 1)) - 1)) <= bpow (mag beta x - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x = bpow (mag beta x - 1)(fexp (mag beta (bpow (mag beta x - 1)) - 1) <= mag beta x - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RH:x = bpow (Build_mag_prop beta x ex Ex - 1)(fexp (mag beta (bpow (ex - 1)) - 1) <= ex - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RH:x = bpow (Build_mag_prop beta x ex Ex - 1)(fexp (ex - 1 + 1 - 1) <= ex - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RH:x = bpow (Build_mag_prop beta x ex Ex - 1)(fexp (ex - 1) <= ex - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RH:x = bpow (Build_mag_prop beta x ex Ex - 1)F (bpow (ex - 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZEx:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RH:x = bpow (ex - 1)F (bpow (ex - 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(0 <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(0 <= x - ulp x)%Rnow apply ulp_le_id. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(ulp x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> (0 <= pred x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> (0 <= pred x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(0 <= pred x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(0 <= pred_pos x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(0 <= x)%Rnow left. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> x <> bpow (mag beta x - 1) -> (x - ulp x + ulp (x - ulp x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> x <> bpow (mag beta x - 1) -> (x - ulp x + ulp (x - ulp x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)(x - ulp x + ulp (x - ulp x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)(x - ulp x + ulp x)%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)ulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)ulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%Rulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%Rx <> bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RM:x = bpow (fexp (mag beta x))Falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RM:x = bpow (fexp (mag beta x))ex:ZHex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RT:mag beta x = Build_mag_prop beta x ex HexFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RM:x = bpow (fexp (mag beta x))ex:ZHex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RT:mag beta x = Build_mag_prop beta x ex Hexmag beta x = exbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RM:x = bpow (fexp (mag beta x))ex:ZHex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RT:mag beta x = Build_mag_prop beta x ex HexLex:mag beta x = exFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RM:x = bpow (fexp (mag beta x))ex:ZHex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RT:mag beta x = Build_mag_prop beta x ex HexLex:mag beta x = exFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RM:x = bpow (fexp ex)Hex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RT:mag beta x = Build_mag_prop beta x ex HexLex:mag beta x = exFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RM:x = bpow (fexp ex)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = exFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RM:x = bpow (fexp ex)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = exFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RM:x = bpow (fexp ex)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(ex - 1 < fexp ex < ex)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RM:x = bpow (fexp ex)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = exH0:(ex - 1 < fexp ex < ex)%ZFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RM:x = bpow (fexp ex)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(bpow (ex - 1) < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RM:x = bpow (fexp ex)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RM:x = bpow (fexp ex)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = exH0:(ex - 1 < fexp ex < ex)%ZFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RM:x = bpow (fexp ex)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RM:x = bpow (fexp ex)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = exH0:(ex - 1 < fexp ex < ex)%ZFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RM:x = bpow (fexp ex)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = exH0:(ex - 1 < fexp ex < ex)%ZFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ulp x = ulp (x - ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)bpow (cexp beta fexp x) = bpow (cexp beta fexp (x - bpow (cexp beta fexp x)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)cexp beta fexp x = cexp beta fexp (x - bpow (cexp beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)mag beta x = mag beta (x - bpow (fexp (mag beta x)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ex:ZHex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RT:mag beta x = Build_mag_prop beta x ex HexBuild_mag_prop beta x ex Hex = mag beta (x - bpow (fexp (Build_mag_prop beta x ex Hex)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ex:ZHex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RT:mag beta x = Build_mag_prop beta x ex Hexmag beta x = exbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ex:ZHex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RT:mag beta x = Build_mag_prop beta x ex HexLex:mag beta x = exBuild_mag_prop beta x ex Hex = mag beta (x - bpow (fexp (Build_mag_prop beta x ex Hex)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xHx:x <> bpow (mag beta x - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)ex:ZHex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RT:mag beta x = Build_mag_prop beta x ex HexLex:mag beta x = exBuild_mag_prop beta x ex Hex = mag beta (x - bpow (fexp (Build_mag_prop beta x ex Hex)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = exex = mag beta (x - bpow (fexp ex))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = exex = mag beta (x - bpow (fexp ex))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(bpow (ex - 1) <= Rabs (x - bpow (fexp ex)) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(bpow (ex - 1) <= x - bpow (fexp ex) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(bpow (ex - 1) <= x - bpow (fexp ex) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(bpow (ex - 1) <= x - bpow (fexp ex) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(bpow (ex - 1) <= x - bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)H1:(bpow (ex - 1) < x)%RH2:(x < bpow ex)%RLex:mag beta x = ex(bpow (ex - 1) <= x - bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)H1:bpow (ex - 1) = xH2:(x < bpow ex)%RLex:mag beta x = ex(bpow (ex - 1) <= x - bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)H1:(bpow (ex - 1) < x)%RH2:(x < bpow ex)%RLex:mag beta x = ex(bpow (ex - 1) <= x - ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)H1:(bpow (ex - 1) < x)%RH2:(x < bpow ex)%RLex:mag beta x = ex(x - ulp x <= x - bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)H1:bpow (ex - 1) = xH2:(x < bpow ex)%RLex:mag beta x = ex(bpow (ex - 1) <= x - bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)H1:(bpow (ex - 1) < x)%RH2:(x < bpow ex)%RLex:mag beta x = exx <> ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)H1:(bpow (ex - 1) < x)%RH2:(x < bpow ex)%RLex:mag beta x = ex(x - ulp x <= x - bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)H1:bpow (ex - 1) = xH2:(x < bpow ex)%RLex:mag beta x = ex(bpow (ex - 1) <= x - bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)H1:(bpow (ex - 1) < x)%RH2:(x < bpow ex)%RLex:mag beta x = ex(x - ulp x <= x - bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)H1:bpow (ex - 1) = xH2:(x < bpow ex)%RLex:mag beta x = ex(bpow (ex - 1) <= x - bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)H1:(bpow (ex - 1) < x)%RH2:(x < bpow ex)%RLex:mag beta x = ex(x - bpow (cexp beta fexp x) <= x - bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)H1:bpow (ex - 1) = xH2:(x < bpow ex)%RLex:mag beta x = ex(bpow (ex - 1) <= x - bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)H1:bpow (ex - 1) = xH2:(x < bpow ex)%RLex:mag beta x = ex(bpow (ex - 1) <= x - bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) <= x + 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(- bpow (fexp ex) <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(- bpow (fexp ex) <= - 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= x < bpow ex)%RLex:mag beta x = ex(0 <= bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(x - bpow (fexp ex) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(0 <= x - bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(bpow (fexp ex) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(bpow (fexp ex) <= F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(bpow (fexp ex) <= IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (fexp (mag beta x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(bpow (fexp ex) <= IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(1 * bpow (fexp ex) <= IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(0 <= bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(1 <= IZR (Ztrunc (scaled_mantissa beta fexp x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(1 <= IZR (Ztrunc (scaled_mantissa beta fexp x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(0 < Ztrunc (scaled_mantissa beta fexp x))%Znow rewrite <- Fx. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xex:ZHx:x <> bpow (ex - 1)H:x <> 0%RH':x <> bpow (cexp beta fexp x)Hex:(bpow (ex - 1) <= Rabs x < bpow ex)%RLex:mag beta x = ex(0 < F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> let e := mag_val beta x (mag beta x) in x = bpow (e - 1) -> (x - bpow (fexp (e - 1)))%R <> 0%R -> (x - bpow (fexp (e - 1)) + ulp (x - bpow (fexp (e - 1))))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> let e := mag_val beta x (mag beta x) in x = bpow (e - 1) -> (x - bpow (fexp (e - 1)))%R <> 0%R -> (x - bpow (fexp (e - 1)) + ulp (x - bpow (fexp (e - 1))))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%R(x - bpow (fexp (e - 1)) + ulp (x - bpow (fexp (e - 1))))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%R(x - bpow (fexp (e - 1)) + bpow (fexp (e - 1)))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%Rbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%Rbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%R(fexp (e - 1) <= e - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) <= e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RF (bpow (e - 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) <= e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) <= e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Zbpow (fexp (e - 1)) = bpow (cexp beta fexp (x - bpow (fexp (e - 1))))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Zfexp (e - 1) = cexp beta fexp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(e - 1)%Z = mag beta (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Zmag beta (x - bpow (fexp (e - 1))) = (e - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow (e - 1 - 1) <= Rabs (x - bpow (fexp (e - 1))) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow (e - 1 - 1) <= x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow (e - 1 - 1) <= x - bpow (fexp (e - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow (fexp (e - 1)) + bpow (e - 1 - 1) <= bpow (fexp (e - 1)) + (x - bpow (fexp (e - 1))))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow (fexp (e - 1)) + bpow (e - 1 - 1) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow (fexp (e - 1)) + bpow (e - 1 - 1) <= bpow (e - 2) + bpow (e - 2))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow (e - 2) + bpow (e - 2) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow (e - 2) + bpow (e - 2) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(2 * bpow (e - 2) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(2 * bpow (e - 2) <= bpow 1 * bpow (e - 2))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow 1 * bpow (e - 2) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(0 <= bpow (e - 2))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(2 <= bpow 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow 1 * bpow (e - 2) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(2 <= bpow 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow 1 * bpow (e - 2) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(2 <= IZR beta)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%ZIZR beta = bpow 1beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow 1 * bpow (e - 2) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(2 <= beta)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%ZIZR beta = bpow 1beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow 1 * bpow (e - 2) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(2 <=? beta)%Z = truebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%ZIZR beta = bpow 1beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow 1 * bpow (e - 2) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%ZIZR beta = bpow 1beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow 1 * bpow (e - 2) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%ZIZR beta = IZR (Z.pow_pos beta 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow 1 * bpow (e - 2) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%ZIZR beta = IZR (beta * 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow 1 * bpow (e - 2) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow 1 * bpow (e - 2) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow (1 + (e - 2)) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow (e - 1) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow (e - 1) - bpow (fexp (e - 1)) < bpow (e - 1) + 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(- bpow (fexp (e - 1)) < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(- bpow (fexp (e - 1)) < - 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(0 < bpow (fexp (e - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(x - bpow (fexp (e - 1)) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow (fexp (e - 1)) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(bpow (fexp (e - 1)) <= bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:(fexp (e - 1) < e - 1)%Z(fexp (e - 1) <= e - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)Zp:(x - bpow (fexp (e - 1)))%R <> 0%RHe:fexp (e - 1) = (e - 1)%Zbpow (fexp (e - 1)) = ulp (x - bpow (fexp (e - 1)))rewrite Hxe, He; ring. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZHxe:x = bpow (e - 1)He:fexp (e - 1) = (e - 1)%Z(x - bpow (fexp (e - 1)))%R = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> let e := mag_val beta x (mag beta x) in x = bpow (e - 1) -> (x - bpow (fexp (e - 1)))%R = 0%R -> ulp 0 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> let e := mag_val beta x (mag beta x) in x = bpow (e - 1) -> (x - bpow (fexp (e - 1)))%R = 0%R -> ulp 0 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%Rulp 0 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%Rx = bpow (fexp (e - 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))ulp 0 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))ulp 0 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))fexp (e - 1) = (e - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%Zulp 0 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))bpow (fexp (e - 1)) = bpow (e - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%Zulp 0 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%Zulp 0 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%Zmatch negligible_exp with | Some n => bpow (fexp n) | None => 0%R end = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%Z(forall n : Z, (fexp n < n)%Z) -> 0%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%Zforall n : Z, (n <= fexp n)%Z -> bpow (fexp n) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%ZK:forall n : Z, (fexp n < n)%Z0%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%Zforall n : Z, (n <= fexp n)%Z -> bpow (fexp n) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%ZK:(fexp (e - 1) < e - 1)%Z0%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%Zforall n : Z, (n <= fexp n)%Z -> bpow (fexp n) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%Zforall n : Z, (n <= fexp n)%Z -> bpow (fexp n) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%Zn:ZHn:(n <= fexp n)%Zbpow (fexp n) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%Zn:ZHn:(n <= fexp n)%Zfexp n = fexp (e - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%Zn:ZHn:(n <= fexp n)%ZH6:(n <= e - 1)%Zfexp n = fexp (e - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%Zn:ZHn:(n <= fexp n)%ZH6:(e - 1 < n)%Zfexp n = fexp (e - 1)apply sym_eq, valid_exp; omega. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xe:=mag_val beta x (mag beta x):ZH1:x = bpow (e - 1)H2:(x - bpow (fexp (e - 1)))%R = 0%RH3:x = bpow (fexp (e - 1))H4:fexp (e - 1) = (e - 1)%Zn:ZHn:(n <= fexp n)%ZH6:(e - 1 < n)%Zfexp n = fexp (e - 1)
The following one is false for x = 0 in FTZ
beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> (pred_pos x + ulp (pred_pos x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> (pred_pos x + ulp (pred_pos x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x(pred_pos x + ulp (pred_pos x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F x((if Req_bool x (bpow (mag beta x - 1)) then x - bpow (fexp (mag beta x - 1)) else x - ulp x) + ulp (if Req_bool x (bpow (mag beta x - 1)) then x - bpow (fexp (mag beta x - 1)) else x - ulp x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x = bpow (mag beta x - 1)(x - bpow (fexp (mag beta x - 1)) + ulp (x - bpow (fexp (mag beta x - 1))))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(x - ulp x + ulp (x - ulp x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x = bpow (mag beta x - 1)H1:(x - bpow (fexp (mag beta x - 1)))%R = 0%R(x - bpow (fexp (mag beta x - 1)) + ulp (x - bpow (fexp (mag beta x - 1))))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x = bpow (mag beta x - 1)H1:(x - bpow (fexp (mag beta x - 1)))%R <> 0%R(x - bpow (fexp (mag beta x - 1)) + ulp (x - bpow (fexp (mag beta x - 1))))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(x - ulp x + ulp (x - ulp x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x = bpow (mag beta x - 1)H1:(x - bpow (fexp (mag beta x - 1)))%R = 0%Rulp 0 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x = bpow (mag beta x - 1)H1:(x - bpow (fexp (mag beta x - 1)))%R <> 0%R(x - bpow (fexp (mag beta x - 1)) + ulp (x - bpow (fexp (mag beta x - 1))))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(x - ulp x + ulp (x - ulp x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x = bpow (mag beta x - 1)H1:(x - bpow (fexp (mag beta x - 1)))%R <> 0%R(x - bpow (fexp (mag beta x - 1)) + ulp (x - bpow (fexp (mag beta x - 1))))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(x - ulp x + ulp (x - ulp x))%R = xnow apply pred_pos_plus_ulp_aux1. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xH:x <> bpow (mag beta x - 1)(x - ulp x + ulp (x - ulp x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> (pred x + ulp (pred x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> (pred x + ulp (pred x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F x(pred x + ulp (pred x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F x(pred_pos x + ulp (pred_pos x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F x(0 <= x)%Rnow apply Rlt_le. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F x(0 <= x)%R
Rounding x + small epsilon
beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> forall eps : R, (0 <= eps < ulp x)%R -> mag beta (x + eps) = mag beta xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> forall eps : R, (0 <= eps < ulp x)%R -> mag beta (x + eps) = mag beta xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rmag beta (x + eps) = mag beta xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%Rmag beta (x + eps) = Build_mag_prop beta x ex Hebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%Rmag beta (x + eps) = exbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%Rmag beta (x + eps) = exbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(bpow (ex - 1) <= Rabs (x + eps) < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(bpow (ex - 1) <= x + eps < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(bpow (ex - 1) <= x + eps < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(bpow (ex - 1) <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(x + eps < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(x <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(x + eps < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(x + 0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(x + eps < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(x + eps < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(x + eps < x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(x + ulp x <= bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(x + ulp x <= bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} + ulp x <= bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} + bpow (cexp beta fexp x) <= bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(IZR (Fnum {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}) * bpow (Fexp {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}) + bpow (cexp beta fexp x) <= bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x) + bpow (cexp beta fexp x) <= bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x) + 1 * bpow (cexp beta fexp x) <= bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R((IZR (Ztrunc (scaled_mantissa beta fexp x)) + 1) * bpow (cexp beta fexp x) <= bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(IZR (Ztrunc (scaled_mantissa beta fexp x) + 1) * bpow (cexp beta fexp x) <= bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(0 < Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := fexp (mag beta x) |} < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(0 < F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := fexp (mag beta x) |} < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%R(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := fexp (mag beta x) |} < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= x < bpow ex)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= eps)%Rapply Heps. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rex:ZHe:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 <= eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 <= x)%R -> F x -> forall eps : R, (0 <= eps < ulp x)%R -> round beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 <= x)%R -> F x -> forall eps : R, (0 <= eps < ulp x)%R -> round beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = x(* . 0 < x *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp (x + eps)); Fexp := cexp beta fexp (x + eps) |} = F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%RF2R {| Fnum := Zfloor ((x + eps) * bpow (- cexp beta fexp (x + eps))); Fexp := cexp beta fexp (x + eps) |} = F2R {| Fnum := Ztrunc (x * bpow (- cexp beta fexp x)); Fexp := cexp beta fexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%RF2R {| Fnum := Zfloor ((x + eps) * bpow (- cexp beta fexp (x + eps))); Fexp := cexp beta fexp (x + eps) |} = F2R {| Fnum := Ztrunc (x * bpow (- cexp beta fexp x)); Fexp := cexp beta fexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%RF2R {| Fnum := Zfloor ((x + eps) * bpow (- fexp (mag beta (x + eps)))); Fexp := fexp (mag beta (x + eps)) |} = F2R {| Fnum := Ztrunc (x * bpow (- cexp beta fexp x)); Fexp := cexp beta fexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%RF2R {| Fnum := Zfloor ((x + eps) * bpow (- fexp (mag beta x))); Fexp := fexp (mag beta x) |} = F2R {| Fnum := Ztrunc (x * bpow (- cexp beta fexp x)); Fexp := cexp beta fexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%RZfloor ((x + eps) * bpow (- fexp (mag beta x))) = Ztrunc (x * bpow (- cexp beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%RZfloor ((x + eps) * bpow (- fexp (mag beta x))) = Zfloor (x * bpow (- cexp beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(IZR (Zfloor (x * bpow (- cexp beta fexp x))) <= (x + eps) * bpow (- fexp (mag beta x)) < IZR (Zfloor (x * bpow (- cexp beta fexp x)) + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(IZR (Zfloor (x * bpow (- cexp beta fexp x))) <= (x + eps) * bpow (- fexp (mag beta x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R((x + eps) * bpow (- fexp (mag beta x)) < IZR (Zfloor (x * bpow (- cexp beta fexp x)) + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(x * bpow (- cexp beta fexp x) <= (x + eps) * bpow (- fexp (mag beta x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R((x + eps) * bpow (- fexp (mag beta x)) < IZR (Zfloor (x * bpow (- cexp beta fexp x)) + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= bpow (- fexp (mag beta x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(x <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R((x + eps) * bpow (- fexp (mag beta x)) < IZR (Zfloor (x * bpow (- cexp beta fexp x)) + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(x <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R((x + eps) * bpow (- fexp (mag beta x)) < IZR (Zfloor (x * bpow (- cexp beta fexp x)) + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(x + 0 <= x + eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R((x + eps) * bpow (- fexp (mag beta x)) < IZR (Zfloor (x * bpow (- cexp beta fexp x)) + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R((x + eps) * bpow (- fexp (mag beta x)) < IZR (Zfloor (x * bpow (- cexp beta fexp x)) + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R((x + eps) * bpow (- fexp (mag beta x)) < (x + ulp x) * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R((x + ulp x) * bpow (- cexp beta fexp x) <= IZR (Zfloor (x * bpow (- cexp beta fexp x)) + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 < bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(x + eps < x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R((x + ulp x) * bpow (- cexp beta fexp x) <= IZR (Zfloor (x * bpow (- cexp beta fexp x)) + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(x + eps < x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R((x + ulp x) * bpow (- cexp beta fexp x) <= IZR (Zfloor (x * bpow (- cexp beta fexp x)) + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R((x + ulp x) * bpow (- cexp beta fexp x) <= IZR (Zfloor (x * bpow (- cexp beta fexp x)) + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(x * bpow (- cexp beta fexp x) + ulp x * bpow (- cexp beta fexp x) <= IZR (Zfloor (x * bpow (- cexp beta fexp x)) + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(x * bpow (- cexp beta fexp x) + ulp x * bpow (- cexp beta fexp x) <= IZR (Zfloor (x * bpow (- cexp beta fexp x))) + 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(x * bpow (- cexp beta fexp x) <= IZR (Zfloor (x * bpow (- cexp beta fexp x))))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(ulp x * bpow (- cexp beta fexp x) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} * bpow (- cexp beta fexp x) <= IZR (Zfloor (F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} * bpow (- cexp beta fexp x))))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(ulp x * bpow (- cexp beta fexp x) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(IZR (Fnum {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}) * bpow (Fexp {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}) * bpow (- cexp beta fexp x) <= IZR (Zfloor (IZR (Fnum {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}) * bpow (Fexp {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |}) * bpow (- cexp beta fexp x))))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(ulp x * bpow (- cexp beta fexp x) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x) * bpow (- cexp beta fexp x) <= IZR (Zfloor (IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x) * bpow (- cexp beta fexp x))))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(ulp x * bpow (- cexp beta fexp x) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(IZR (Ztrunc (scaled_mantissa beta fexp x)) * (bpow (cexp beta fexp x) * bpow (- cexp beta fexp x)) <= IZR (Zfloor (IZR (Ztrunc (scaled_mantissa beta fexp x)) * (bpow (cexp beta fexp x) * bpow (- cexp beta fexp x)))))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(ulp x * bpow (- cexp beta fexp x) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x + - cexp beta fexp x) <= IZR (Zfloor (IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x + - cexp beta fexp x))))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(ulp x * bpow (- cexp beta fexp x) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow 0 <= IZR (Zfloor (IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow 0)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(ulp x * bpow (- cexp beta fexp x) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(IZR (Ztrunc (scaled_mantissa beta fexp x)) <= IZR (Zfloor (IZR (Ztrunc (scaled_mantissa beta fexp x)))))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(ulp x * bpow (- cexp beta fexp x) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(IZR (Ztrunc (scaled_mantissa beta fexp x)) <= IZR (Ztrunc (scaled_mantissa beta fexp x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(ulp x * bpow (- cexp beta fexp x) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(ulp x * bpow (- cexp beta fexp x) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(bpow (cexp beta fexp x) * bpow (- cexp beta fexp x) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(bpow (cexp beta fexp x) * bpow (- cexp beta fexp x) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(bpow (cexp beta fexp x + - cexp beta fexp x) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(bpow 0 <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x * bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 < x)%RFx:F xeps:RHeps:(0 <= eps < ulp x)%R(0 <= bpow (- cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = x(* . x=0 *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%Rround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:(0 < eps)%Rround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:(0 < eps)%RF2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%R(0 <= eps < (if Req_bool 0 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0 end else bpow (cexp beta fexp 0)))%R -> F2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%R(0 <= eps < match negligible_exp with | Some n => bpow (fexp n) | None => 0 end)%R -> F2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%R(forall n : Z, (fexp n < n)%Z) -> (0 <= eps < 0)%R -> F2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rforall n : Z, (n <= fexp n)%Z -> (0 <= eps < bpow (fexp n))%R -> F2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%RH1:(0 <= eps)%RH2:(eps < 0)%RF2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rforall n : Z, (n <= fexp n)%Z -> (0 <= eps < bpow (fexp n))%R -> F2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rforall n : Z, (n <= fexp n)%Z -> (0 <= eps < bpow (fexp n))%R -> F2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RF2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%Rfexp (mag beta eps) = fexp nbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%R(mag beta eps <= fexp n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%R(mag beta eps - 1 < fexp n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%R(bpow (mag beta eps - 1) < bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%R(bpow (mag beta eps - 1) <= eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%Re:ZHe:eps <> 0%R -> (bpow (e - 1) <= Rabs eps < bpow e)%R(bpow (Build_mag_prop beta eps e He - 1) <= eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%Re:ZHe:eps <> 0%R -> (bpow (e - 1) <= eps < bpow e)%R(bpow (e - 1) <= eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%Re:ZHe:eps <> 0%R -> (bpow (e - 1) <= Rabs eps < bpow e)%R(0 <= eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%Re:ZHe:eps <> 0%R -> (bpow (e - 1) <= Rabs eps < bpow e)%R(0 <= eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zfloor (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := 0; Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n0%Z = Zfloor (eps * bpow (- fexp (mag beta eps)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n0%Z = Zfloor (eps * bpow (- fexp (mag beta eps)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(0 <= eps * bpow (- fexp (mag beta eps)) < IZR (0 + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(0 <= eps * bpow (- fexp (mag beta eps)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow (- fexp (mag beta eps)) < IZR (0 + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(0 <= eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(0 <= bpow (- fexp (mag beta eps)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow (- fexp (mag beta eps)) < IZR (0 + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(0 <= bpow (- fexp (mag beta eps)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow (- fexp (mag beta eps)) < IZR (0 + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow (- fexp (mag beta eps)) < IZR (0 + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(0 < bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow (- fexp (mag beta eps)) * bpow (fexp n) < IZR (0 + 1) * bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow (- fexp (mag beta eps)) * bpow (fexp n) < IZR (0 + 1) * bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow (- fexp (mag beta eps) + fexp n) < IZR (0 + 1) * bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow 0 < IZR (0 + 1) * bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RP:(0 < eps)%Rn:ZHn:(n <= fexp n)%ZH:(0 <= eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps < bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsround beta fexp Zfloor eps = 0%Rapply valid_rnd_DN. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:0%R = xFx:F xeps:RHeps:(0 <= eps < ulp 0)%RP:0%R = epsValid_rnd Zfloorbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 <= x)%R -> F x -> forall eps : R, (0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 <= x)%R -> F x -> forall eps : R, (0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:R(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%R(* . 0 < x *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%R(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%Rround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%R(0 <= eps < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%Rround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%R(0 <= eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%R(eps < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%Rround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%R(eps < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%Rround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%Rround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = x(round beta fexp Zfloor (x + eps) + ulp (x + eps))%R = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = x~ F (x + eps)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = x(x + ulp (x + eps))%R = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = x~ F (x + eps)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = x(x + bpow (cexp beta fexp (x + eps)))%R = (x + bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = x(x + eps)%R <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = x~ F (x + eps)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = x(x + bpow (fexp (mag beta (x + eps))))%R = (x + bpow (fexp (mag beta x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = x(x + eps)%R <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = x~ F (x + eps)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = xx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = x(x + eps)%R <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = x~ F (x + eps)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = x(x + eps)%R <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = x~ F (x + eps)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = x~ F (x + eps)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:round beta fexp Zfloor (x + eps) = xFs:F (x + eps)Falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:(x + eps)%R = xFs:F (x + eps)Falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:(x + eps)%R = xFs:F (x + eps)(x + eps > x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:(eps < ulp x)%RHeps:(0 <= eps < ulp x)%RHd:(x + eps)%R = xFs:F (x + eps)(x + eps > x + 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xround beta fexp Zceil (x + ulp x) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:(0 < x)%RHeps1:(0 < eps)%RHeps2:eps = ulp xF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%R(* . x=0 *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp x)%R -> round beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = x(0 < eps <= ulp 0)%R -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rround beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%R(eps < ulp 0)%R -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%R(eps < ulp 0)%R -> F2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%R(eps < (if Req_bool 0 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0 end else bpow (cexp beta fexp 0)))%R -> F2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = (if Req_bool 0 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0%R end else bpow (cexp beta fexp 0))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%R(eps < match negligible_exp with | Some n => bpow (fexp n) | None => 0 end)%R -> F2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = match negligible_exp with | Some n => bpow (fexp n) | None => 0%R endbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%R(forall n : Z, (fexp n < n)%Z) -> (eps < 0)%R -> F2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rforall n : Z, (n <= fexp n)%Z -> (eps < bpow (fexp n))%R -> F2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = bpow (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rforall n : Z, (n <= fexp n)%Z -> (eps < bpow (fexp n))%R -> F2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = bpow (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RF2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = bpow (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%Rfexp (mag beta eps) = fexp nbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = bpow (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%R(mag beta eps <= fexp n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = bpow (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%R(mag beta eps - 1 < fexp n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = bpow (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%R(bpow (mag beta eps - 1) < bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = bpow (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%R(bpow (mag beta eps - 1) <= eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = bpow (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%Re:ZHe:eps <> 0%R -> (bpow (e - 1) <= Rabs eps < bpow e)%R(bpow (Build_mag_prop beta eps e He - 1) <= eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = bpow (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%Re:ZHe:eps <> 0%R -> (bpow (e - 1) <= eps < bpow e)%R(bpow (e - 1) <= eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%Re:ZHe:eps <> 0%R -> (bpow (e - 1) <= Rabs eps < bpow e)%R(0 <= eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = bpow (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%Re:ZHe:eps <> 0%R -> (bpow (e - 1) <= Rabs eps < bpow e)%R(0 <= eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = bpow (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := Zceil (eps * bpow (- fexp (mag beta eps))); Fexp := fexp (mag beta eps) |} = bpow (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp nF2R {| Fnum := 1; Fexp := fexp (mag beta eps) |} = bpow (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n1%Z = Zceil (eps * bpow (- fexp (mag beta eps)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n1%Z = Zceil (eps * bpow (- fexp (mag beta eps)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(IZR (1 - 1) < eps * bpow (- fexp (mag beta eps)) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(IZR (1 - 1) < eps * bpow (- fexp (mag beta eps)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow (- fexp (mag beta eps)) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(0 < eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(0 < bpow (- fexp (mag beta eps)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow (- fexp (mag beta eps)) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(0 < bpow (- fexp (mag beta eps)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow (- fexp (mag beta eps)) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow (- fexp (mag beta eps)) <= 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(0 < bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow (- fexp (mag beta eps)) * bpow (fexp n) <= 1 * bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow (- fexp (mag beta eps)) * bpow (fexp n) <= 1 * bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow (- fexp (mag beta eps) + fexp n) <= 1 * bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps * bpow 0 <= 1 * bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Rn:ZHn:(n <= fexp n)%ZH:(eps < bpow (fexp n))%RH0:fexp (mag beta eps) = fexp n(eps <= bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%Reps = ulp 0 -> round beta fexp Zceil eps = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%RP:eps = ulp 0round beta fexp Zceil (ulp 0) = ulp 0apply generic_format_ulp_0. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RZx:(0 <= x)%RFx:F xeps:RZx1:0%R = xHeps:(0 < eps <= ulp 0)%RP:eps = ulp 0F (ulp 0)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> forall eps : R, (0 < eps <= ulp (pred x))%R -> round beta fexp Zceil (pred x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> forall eps : R, (0 < eps <= ulp (pred x))%R -> round beta fexp Zceil (pred x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred x))%Rround beta fexp Zceil (pred x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred x))%R(pred x + ulp (pred x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred x))%R(0 <= pred x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred x))%RF (pred x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred x))%R(pred_pos x + ulp (pred_pos x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred x))%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred x))%R(0 <= pred x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred x))%RF (pred x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred x))%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred x))%R(0 <= pred x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred x))%RF (pred x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred x))%R(0 <= pred x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred x))%RF (pred x)apply generic_format_pred; trivial. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred x))%RF (pred x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> forall eps : R, (0 < eps <= ulp (pred x))%R -> round beta fexp Zfloor (x - eps) = pred xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 < x)%R -> F x -> forall eps : R, (0 < eps <= ulp (pred x))%R -> round beta fexp Zfloor (x - eps) = pred xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:R(0 < eps <= ulp (pred x))%R -> round beta fexp Zfloor (x - eps) = pred xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%Rround beta fexp Zfloor (x - eps) = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%Rround beta fexp Zfloor (pred_pos x + (ulp (pred_pos x) - eps)) = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%R(pred_pos x + (ulp (pred_pos x) - eps))%R = (x - eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%Rround beta fexp Zfloor (pred_pos x + (ulp (pred_pos x) - eps)) = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%R(pred_pos x + (ulp (pred_pos x) - eps))%R = (pred_pos x + ulp (pred_pos x) - eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%Rround beta fexp Zfloor (pred_pos x + (ulp (pred_pos x) - eps)) = pred_pos xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%R(0 <= pred_pos x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%RF (pred_pos x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%R(0 <= ulp (pred_pos x) - eps < ulp (pred_pos x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%RF (pred_pos x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%R(0 <= ulp (pred_pos x) - eps < ulp (pred_pos x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%R(0 <= ulp (pred_pos x) - eps < ulp (pred_pos x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%R(0 <= ulp (pred_pos x) - eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%R(ulp (pred_pos x) - eps < ulp (pred_pos x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%R(eps <= ulp (pred_pos x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%R(ulp (pred_pos x) - eps < ulp (pred_pos x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%R(ulp (pred_pos x) - eps < ulp (pred_pos x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%R(ulp (pred_pos x) - eps < ulp (pred_pos x) + 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%R(- eps < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%R(- eps < - 0)%Rnow apply Heps. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHpx:(0 < x)%RFx:F xeps:RHeps:(0 < eps <= ulp (pred_pos x))%R(0 < eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> forall eps : R, (0 <= eps < (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%R -> round beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> forall eps : R, (0 <= eps < (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%R -> round beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%RZx:(0 <= x)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%RZx:(x < 0)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%RZx:(0 <= x)%R(0 <= eps < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%RZx:(x < 0)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%RZx:(0 <= x)%R(eps < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%RZx:(x < 0)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp x)%RZx:(0 <= x)%R(eps < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%RZx:(x < 0)%Rround beta fexp Zfloor (x + eps) = x(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%RZx:(x < 0)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%Rround beta fexp Zfloor (x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%Rround beta fexp Zfloor (- - (x + eps)) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%Rround beta fexp Zfloor (- - (x + eps)) = (- - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(- round beta fexp Zceil (- (x + eps)))%R = (- - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%Rround beta fexp Zceil (- (x + eps)) = (- x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%Rround beta fexp Zceil (pred (- x) + (ulp (pred (- x)) - eps)) = (- x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(pred (- x) + (ulp (pred (- x)) - eps))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(0 < ulp (pred (- x)) - eps <= ulp (pred (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(pred (- x) + (ulp (pred (- x)) - eps))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(0 < ulp (pred (- x)) - eps <= ulp (pred (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(pred (- x) + (ulp (pred (- x)) - eps))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(0 < ulp (pred (- x)) - eps <= ulp (pred (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(pred (- x) + (ulp (pred (- x)) - eps))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(0 < ulp (pred (- x)) - eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(ulp (pred (- x)) - eps <= ulp (pred (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(pred (- x) + (ulp (pred (- x)) - eps))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(eps < ulp (pred (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(ulp (pred (- x)) - eps <= ulp (pred (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(pred (- x) + (ulp (pred (- x)) - eps))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(ulp (pred (- x)) - eps <= ulp (pred (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(pred (- x) + (ulp (pred (- x)) - eps))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(0 <= eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(pred (- x) + (ulp (pred (- x)) - eps))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(pred (- x) + (ulp (pred (- x)) - eps))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(- succ (- - x) + (ulp (- succ (- - x)) - eps))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(- succ x + (ulp (- succ x) - eps))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(- - pred_pos (- x) + (ulp (- - pred_pos (- x)) - eps))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(pred_pos (- x) + (ulp (pred_pos (- x)) + - eps))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(- x + - eps)%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%RF (- x)now apply generic_format_opp. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 <= eps < ulp (pred (- x)))%RZx:(x < 0)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> forall eps : R, (0 < eps <= (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%R -> round beta fexp Zceil (x + eps) = succ xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> forall eps : R, (0 < eps <= (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%R -> round beta fexp Zceil (x + eps) = succ xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%Rround beta fexp Zceil (x + eps) = succ xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%RZx:(0 <= x)%Rround beta fexp Zceil (x + eps) = succ xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%RZx:(x < 0)%Rround beta fexp Zceil (x + eps) = succ xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%RZx:(0 <= x)%Rround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%RZx:(x < 0)%Rround beta fexp Zceil (x + eps) = succ xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp x)%RZx:(0 <= x)%Rround beta fexp Zceil (x + eps) = (x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%RZx:(x < 0)%Rround beta fexp Zceil (x + eps) = succ x(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool 0 x then ulp x else ulp (pred (- x))))%RZx:(x < 0)%Rround beta fexp Zceil (x + eps) = succ xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%Rround beta fexp Zceil (x + eps) = succ xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%Rround beta fexp Zceil (- - (x + eps)) = succ xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%Rround beta fexp Zceil (- - (x + eps)) = (- - succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- round beta fexp Zfloor (- (x + eps)))%R = (- - succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%Rround beta fexp Zfloor (- (x + eps)) = (- succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%Rround beta fexp Zfloor (- succ x + (- eps + ulp (pred (- x)))) = (- succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- succ x + (- eps + ulp (pred (- x))))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 <= - succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%RF (- succ x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 <= - eps + ulp (pred (- x)) < ulp (- succ x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- succ x + (- eps + ulp (pred (- x))))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 <= pred (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%RF (- succ x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 <= - eps + ulp (pred (- x)) < ulp (- succ x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- succ x + (- eps + ulp (pred (- x))))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%RF (- succ x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 <= - eps + ulp (pred (- x)) < ulp (- succ x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- succ x + (- eps + ulp (pred (- x))))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%RF (- succ x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 <= - eps + ulp (pred (- x)) < ulp (- succ x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- succ x + (- eps + ulp (pred (- x))))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%RF (- succ x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 <= - eps + ulp (pred (- x)) < ulp (- succ x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- succ x + (- eps + ulp (pred (- x))))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 <= - eps + ulp (pred (- x)) < ulp (- succ x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- succ x + (- eps + ulp (pred (- x))))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 <= - eps + ulp (pred (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- eps + ulp (pred (- x)) < ulp (- succ x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- succ x + (- eps + ulp (pred (- x))))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(eps <= ulp (pred (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- eps + ulp (pred (- x)) < ulp (- succ x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- succ x + (- eps + ulp (pred (- x))))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- eps + ulp (pred (- x)) < ulp (- succ x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- succ x + (- eps + ulp (pred (- x))))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- eps + ulp (- succ x) < ulp (- succ x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- succ x + (- eps + ulp (pred (- x))))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 < eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- succ x + (- eps + ulp (pred (- x))))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- succ x + (- eps + ulp (pred (- x))))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- - pred_pos (- x) + (- eps + ulp (pred (- x))))%R = (- (x + eps))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- - pred_pos (- x) + (- eps + ulp (pred (- x))))%R = (- x + - eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- - pred_pos (- x) + (- eps + ulp (pred (- x))))%R = (pred_pos (- x) + ulp (pred_pos (- x)) + - eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(- - pred_pos (- x) + (- eps + ulp (pred_pos (- x))))%R = (pred_pos (- x) + ulp (pred_pos (- x)) + - eps)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 <= - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 <= - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%RF (- x)now apply generic_format_opp. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= ulp (pred (- x)))%RZx:(x < 0)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (0 <= x < y)%R -> (x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (0 <= x < y)%R -> (x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%R(0 < y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%R(x < y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%R(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%R(0 < pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%R(0 <= pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 <= pred y)%R(0 < pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 <= pred y)%R(0 < pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred y(0 < pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred y0%R = pred y -> (0 < pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred y0%R = pred_pos y -> (0 < pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred y0%R = (if Req_bool y (bpow (mag beta y - 1)) then (y - bpow (fexp (mag beta y - 1)))%R else (y - ulp y)%R) -> (0 < (if Req_bool y (bpow (mag beta y - 1)) then y - bpow (fexp (mag beta y - 1)) else y - ulp y))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%R0%R = (if Req_bool y (bpow (ey - 1)) then (y - bpow (fexp (ey - 1)))%R else (y - ulp y)%R) -> (0 < (if Req_bool y (bpow (ey - 1)) then y - bpow (fexp (ey - 1)) else y - ulp y))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%R(* . *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)0%R = (y - bpow (fexp (ey - 1)))%R -> (0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%R(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%R(ey - 1)%Z = fexp (ey - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%Rbpow (ey - 1) = bpow (fexp (ey - 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%Ry = (y - bpow (fexp (ey - 1)) + bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)x <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%R(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%R(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:x <> 0%R -> (bpow (ex - 1) <= Rabs x < bpow ex)%R(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(ex <= ey)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%Z(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(bpow (ex - 1) < bpow ey)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%Z(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs x < bpow ey)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%Z(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs x < Rabs y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs y < bpow ey)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%Z(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(x < y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(y >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(x >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs y < bpow ey)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%Z(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(y >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(x >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs y < bpow ey)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%Z(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(x >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs y < bpow ey)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%Z(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%R(Rabs y < bpow ey)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%Z(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%Ry <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%Z(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%Z(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%Z(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%Zfexp ex = fexp (ey - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%Z(ey - 1 <= fexp (ey - 1))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%Z(ex <= fexp (ey - 1))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%Z(ex <= fexp (ey - 1))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%Z(ex <= ey - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)~ (0 < Ztrunc (scaled_mantissa beta fexp x) < 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(0 < Ztrunc (scaled_mantissa beta fexp x) < 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(0 < Ztrunc (scaled_mantissa beta fexp x) < 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(0 < Ztrunc (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(Ztrunc (scaled_mantissa beta fexp x) < 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(0 < F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(Ztrunc (scaled_mantissa beta fexp x) < 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(Ztrunc (scaled_mantissa beta fexp x) < 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(IZR (Ztrunc (scaled_mantissa beta fexp x)) < 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(0 < bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x) < 1 * bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp beta fexp x) < 1 * bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(x < 1 * bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(x < bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(x < bpow (fexp (mag beta x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(x < bpow (fexp ex))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(bpow (ex - 1) <= Rabs x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(x < y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(bpow (ex - 1) <= Rabs x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:(ex < ey)%ZH3:fexp ex = fexp (ey - 1)(bpow (ex - 1) <= Rabs x < bpow ex)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(0 < y - bpow (fexp (ey - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey~ (y <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(y <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(y <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(y <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(x >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(y <= bpow (ex - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(x >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(bpow (ey - 1) <= bpow (ey - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(x >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y = bpow (ey - 1)Hy3:0%R = (y - bpow (fexp (ey - 1)))%RH1:(ey - 1)%Z = fexp (ey - 1)Zx:x <> 0%Rex:ZHex:(bpow (ex - 1) <= Rabs x < bpow ex)%RH2:(ex <= ey)%ZHexy:ex = ey(x >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%R(* . *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)0%R = (y - ulp y)%R -> (0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%R(0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%Ry = bpow (fexp ey)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%R(y - bpow (fexp ey))%R = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%R(y - bpow (fexp ey))%R = (y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%R(y - bpow (fexp ey))%R = (y - bpow (cexp beta fexp y))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%R(y - bpow (fexp ey))%R = (y - bpow (fexp (mag beta y)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%R(bpow (ey - 1) <= Rabs y < bpow ey)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%Ry <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy2:y <> bpow (ey - 1)Hy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(0 < y - ulp y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)y = bpow (ey - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)bpow (fexp ey) = bpow (ey - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)fexp ey = (ey - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(1 + fexp ey)%Z = (1 + (ey - 1))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(fexp ey + 1)%Z = eybeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(fexp ey + 1)%Z = mag beta ybeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)mag beta y = eybeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(bpow (fexp ey + 1 - 1) <= Rabs y < bpow (fexp ey + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)mag beta y = eybeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(bpow (fexp ey + 1 - 1) <= bpow (fexp ey) < bpow (fexp ey + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(bpow (fexp ey) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)mag beta y = eybeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(bpow (fexp ey + 1 - 1) <= bpow (fexp ey))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(bpow (fexp ey) < bpow (fexp ey + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(bpow (fexp ey) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)mag beta y = eybeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(fexp ey + 1 - 1 <= fexp ey)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(bpow (fexp ey) < bpow (fexp ey + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(bpow (fexp ey) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)mag beta y = eybeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(bpow (fexp ey) < bpow (fexp ey + 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(bpow (fexp ey) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)mag beta y = eybeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(fexp ey < fexp ey + 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(bpow (fexp ey) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)mag beta y = eybeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(bpow (fexp ey) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)mag beta y = eybeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)mag beta y = eybeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)(bpow (ey - 1) <= Rabs y < bpow ey)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RH0:0%R = pred yey:ZHey:y <> 0%R -> (bpow (ey - 1) <= Rabs y < bpow ey)%RHy3:0%R = (y - ulp y)%RH1:y = bpow (fexp ey)y <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%R(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%R(* . *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(ulp (pred_pos y) <= y - x)%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(ulp (pred_pos y) <= y - x)%R(x + (- x + ulp (pred_pos y)) <= pred_pos y + (- x + ulp (pred_pos y)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(ulp (pred_pos y) <= y - x)%R(ulp (pred_pos y) <= pred_pos y + (- x + ulp (pred_pos y)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(ulp (pred_pos y) <= y - x)%R(y - x <= pred_pos y + (- x + ulp (pred_pos y)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(ulp (pred_pos y) <= y - x)%R(pred_pos y + ulp (pred_pos y) - x <= pred_pos y + (- x + ulp (pred_pos y)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%R(* . *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(y - (y - x) <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(y - (y - x) <= pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(y - (y - x) <= round beta fexp Zfloor (y - (y - x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(0 < y - x <= ulp (pred y))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(x <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(0 < y - x <= ulp (pred y))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%Rx = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(0 < y - x <= ulp (pred y))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%Rround beta fexp Zfloor x = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(0 < y - x <= ulp (pred y))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(0 < y - x <= ulp (pred y))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(0 < y - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(y - x <= ulp (pred y))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(y - x <= ulp (pred y))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:(0 < x)%RZy:(0 < y)%RZp:(0 < pred y)%RH1:(y - x < ulp (pred_pos y))%R(y - x <= ulp (pred_pos y))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(x <= pred_pos y)%Rapply Rle_lt_trans with (1:=proj1 H); apply H. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(0 <= x < y)%RV:0%R = x(0 < y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (0 <= x)%R -> (x < y)%R -> (succ x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (0 <= x)%R -> (x < y)%R -> (succ x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%R(succ x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%R(x + ulp x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(ulp x <= y - x)%R(x + ulp x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%R(x + ulp x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(ulp x <= y - x)%R(x + ulp x + - x <= y + - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%R(x + ulp x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%R(x + ulp x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%R(x + ulp x <= x + (y - x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%R~ (x < y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%R(x < y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%R~ (x < y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%Ry = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%Ry = round beta fexp Zfloor (x + (y - x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%R(0 <= y - x < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%Ry = round beta fexp Zfloor ybeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%R(0 <= y - x < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%Rround beta fexp Zfloor y = ybeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%R(0 <= y - x < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%R(0 <= y - x < ulp x)%Rapply Rlt_le; now apply Rlt_Rminus. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RHx:F xHy:F yZx:(0 <= x)%RH:(x < y)%RH1:(y - x < ulp x)%R(0 <= y - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (x < y)%R -> (succ x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (x < y)%R -> (succ x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%R(succ x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(0 <= x)%R(succ x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%R(succ x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%R(succ x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%R(- pred_pos (- x) <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(y <= 0)%R(- pred_pos (- x) <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(- pred_pos (- x) <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(y <= 0)%R(- pred_pos (- x) <= - - y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(- pred_pos (- x) <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(y <= 0)%R(- y <= pred_pos (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(- pred_pos (- x) <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(y <= 0)%RF (- y)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(y <= 0)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(y <= 0)%R(0 <= - y < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(- pred_pos (- x) <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(y <= 0)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(y <= 0)%R(0 <= - y < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(- pred_pos (- x) <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(y <= 0)%R(0 <= - y < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(- pred_pos (- x) <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(y <= 0)%R(0 <= - y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(y <= 0)%R(- y < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(- pred_pos (- x) <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(y <= 0)%R(- y < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(- pred_pos (- x) <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(- pred_pos (- x) <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(- pred_pos (- x) <= - 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(- 0 <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(0 <= pred_pos (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(- 0 <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(- 0 <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(- 0 <= y)%Rrewrite Ropp_0; now left. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yH:(x < y)%RHx:(x < 0)%RHy:(0 < y)%R(- 0 <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (x < y)%R -> (x <= pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (x < y)%R -> (x <= pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%R(x <= pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%R(- - x <= pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%R(succ (- y) <= - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%RF (- y)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%R(- y < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%R(- y < - x)%Rnow apply Ropp_lt_contravar. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%R(- y < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, y <> 0%R -> (x <= y)%R -> (x < succ y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, y <> 0%R -> (x <= y)%R -> (x < succ y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RZy:y <> 0%RHxy:(x <= y)%R(x < succ y)%Rnow apply succ_gt_id. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RZy:y <> 0%RHxy:(x <= y)%R(y < succ y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, x <> 0%R -> (x <= y)%R -> (pred x < y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, x <> 0%R -> (x <= y)%R -> (pred x < y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RZy:x <> 0%RHxy:(x <= y)%R(pred x < y)%Rnow apply pred_lt_id. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RZy:x <> 0%RHxy:(x <= y)%R(pred x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> (0 < x)%R -> succ (pred x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> (0 < x)%R -> succ (pred x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%Rsucc (pred x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%Rsucc (pred_pos x) = xnow apply pred_pos_plus_ulp. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%R(pred_pos x + ulp (pred_pos x))%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexppred (ulp 0) = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexppred (ulp 0) = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexppred_pos (ulp 0) = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(0 <= ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexppred_pos (ulp 0) = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexppred_pos match negligible_exp with | Some n => bpow (fexp n) | None => 0 end = 0%R(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpnegligible_exp = None /\ (forall n : Z, (fexp n < n)%Z) -> pred_pos match negligible_exp with | Some n => bpow (fexp n) | None => 0 end = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> pred_pos match negligible_exp with | Some n => bpow (fexp n) | None => 0 end = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH1:negligible_exp = Nonepred_pos 0 = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> pred_pos match negligible_exp with | Some n => bpow (fexp n) | None => 0 end = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH1:negligible_exp = None(0 - ulp 0)%R = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH1:negligible_exp = None0%R <> bpow (mag beta 0 - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> pred_pos match negligible_exp with | Some n => bpow (fexp n) | None => 0 end = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH1:negligible_exp = None(0 - ulp 0)%R = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> pred_pos match negligible_exp with | Some n => bpow (fexp n) | None => 0 end = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH1:negligible_exp = None(0 - match negligible_exp with | Some n => bpow (fexp n) | None => 0 end)%R = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> pred_pos match negligible_exp with | Some n => bpow (fexp n) | None => 0 end = 0%R(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> pred_pos match negligible_exp with | Some n => bpow (fexp n) | None => 0 end = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Zpred_pos (bpow (fexp n)) = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Z(if Req_bool (bpow (fexp n)) (bpow (mag beta (bpow (fexp n)) - 1)) then (bpow (fexp n) - bpow (fexp (mag beta (bpow (fexp n)) - 1)))%R else (bpow (fexp n) - ulp (bpow (fexp n)))%R) = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Z(if Req_bool (bpow (fexp n)) (bpow (fexp n + 1 - 1)) then (bpow (fexp n) - bpow (fexp (fexp n + 1 - 1)))%R else (bpow (fexp n) - ulp (bpow (fexp n)))%R) = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Z(if Req_bool (bpow (fexp n)) (bpow (fexp n)) then (bpow (fexp n) - bpow (fexp (fexp n)))%R else (bpow (fexp n) - ulp (bpow (fexp n)))%R) = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Z(bpow (fexp n) - bpow (fexp (fexp n)))%R = 0%Rapply sym_eq, valid_exp; omega. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpn:ZH1:negligible_exp = Some nH2:(n <= fexp n)%Zfexp n = fexp (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpsucc 0 = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpsucc 0 = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(if Rle_bool 0 0 then (0 + ulp 0)%R else (- pred_pos (- 0))%R) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(0 + ulp 0)%R = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(0 <= 0)%Rapply Rle_refl. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexp(0 <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexppred 0 = (- ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexppred 0 = (- ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexppred 0 = (- succ 0)%Rapply pred_opp. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexppred (- 0) = (- succ 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> (0 < x)%R -> pred (succ x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> (0 < x)%R -> pred (succ x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%Rpred (succ x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%R(pred (succ x) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%R(x <= pred (succ x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%R(pred (succ x) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%R~ (x < pred (succ x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RH:(x < pred (succ x))%RFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RH:(succ x <= pred (succ x))%RFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RH:(x < pred (succ x))%RF (pred (succ x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%R(succ x <= pred (succ x))%R -> Falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RH:(x < pred (succ x))%RF (pred (succ x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%R(pred (succ x) < succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RH:(x < pred (succ x))%RF (pred (succ x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%Rsucc x <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RH:(x < pred (succ x))%RF (pred (succ x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%R(succ x > 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RH:(x < pred (succ x))%RF (pred (succ x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%R(x <= succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RH:(x < pred (succ x))%RF (pred (succ x))now apply generic_format_pred, generic_format_succ.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RH:(x < pred (succ x))%RF (pred (succ x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%R(x <= pred (succ x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RF (succ x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%R(x < succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%R(x < succ x)%Rnow apply Rgt_not_eq. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> succ (pred x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> succ (pred x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xsucc (pred x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%Rsucc (pred x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:0%R = xsucc (pred x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(x < 0)%Rsucc (pred x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:0%R = xsucc (pred x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(x < 0)%Rsucc (pred x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:0%R = xsucc (pred 0) = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(x < 0)%Rsucc (pred x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:0%R = x(- 0)%R = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(x < 0)%Rsucc (pred x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(x < 0)%Rsucc (pred x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(x < 0)%Rsucc (- succ (- x)) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(x < 0)%R(- - x)%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(x < 0)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(x < 0)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(x < 0)%R(0 < - x)%Rnow apply Ropp_0_gt_lt_contravar. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> pred (succ x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> pred (succ x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xpred (succ x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xpred (succ (- - x)) = (- - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F x(- succ (pred (- x)))%R = (- - x)%Rnow apply generic_format_opp. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> forall eps : R, (0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%R -> round beta fexp Zceil (pred x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> forall eps : R, (0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%R -> round beta fexp Zceil (pred x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%Rround beta fexp Zceil (pred x + eps) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%Rsucc (pred x) = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (pred x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp (pred (- pred x))))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (pred x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp (pred (- pred x))))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp (pred (- pred x))))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp (pred (- - succ (- x)))))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%R(pred x < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':(x < 0)%R(pred x < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(pred x < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':(x < 0)%R(pred x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(pred x < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':(x < 0)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(pred x < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(pred x < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(- (if Rle_bool 0 (- 0) then - 0 + ulp (- 0) else - pred_pos (- - 0)) < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(- (0 + ulp 0) < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(- ulp 0 < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(0 < ulp (- 0))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(eps <= ulp (- 0))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(ulp x <= ulp (- 0))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(ulp 0 <= ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool 0 (pred x) then ulp (pred x) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 <= pred x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)now apply generic_format_opp. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> forall eps : R, (0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%R -> round beta fexp Zfloor (x - eps) = pred xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> forall eps : R, (0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%R -> round beta fexp Zfloor (x - eps) = pred xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%Rround beta fexp Zfloor (x - eps) = pred xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%Rround beta fexp Zfloor (- (- x + eps)) = pred xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%R(- round beta fexp Zceil (- x + eps))%R = pred xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%Rround beta fexp Zceil (- x + eps) = succ (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%Rround beta fexp Zceil (pred (succ (- x)) + eps) = succ (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (succ (- x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%R(0 < eps <= (if Rle_bool (succ (- x)) 0 then ulp (succ (- x)) else ulp (pred (succ (- x)))))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%R(0 < eps <= (if Rle_bool (succ (- x)) 0 then ulp (succ (- x)) else ulp (pred (succ (- x)))))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%R(0 < eps <= (if Rle_bool (succ (- x)) 0 then ulp (succ (- x)) else ulp (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%R(0 < eps <= (if Rle_bool (succ (- x)) 0 then ulp (succ (- x)) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%R(0 < eps <= (if Rle_bool (succ (- x)) 0 then ulp (succ (- x)) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool (succ (- x)) 0 then ulp (succ (- x)) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%R(0 < succ (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool (succ (- x)) 0 then ulp (succ (- x)) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':(x < 0)%R(0 < succ (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(0 < succ (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool (succ (- x)) 0 then ulp (succ (- x)) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':(x < 0)%R(- x <= succ (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(0 < succ (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool (succ (- x)) 0 then ulp (succ (- x)) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':(x < 0)%R(- x <= succ (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(0 < succ (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool (succ (- x)) 0 then ulp (succ (- x)) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(0 < succ (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool (succ (- x)) 0 then ulp (succ (- x)) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(0 < 0 + ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool (succ (- x)) 0 then ulp (succ (- x)) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(0 < ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool (succ (- x)) 0 then ulp (succ (- x)) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(x <= 0)%RH2:(0 < eps <= ulp x)%RH1':x = 0%R(eps <= ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool (succ (- x)) 0 then ulp (succ (- x)) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= (if Rle_bool (succ (- x)) 0 then ulp (succ (- x)) else ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 < eps <= ulp (succ (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(succ (- x) <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(succ (- x) <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(- pred x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RH1:(0 < x)%RH2:(0 < eps <= ulp (pred x))%R(0 <= pred x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)now apply generic_format_opp. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xeps:RHeps:(0 < eps <= (if Rle_bool x 0 then ulp x else ulp (pred x)))%RF (- x)
Error of a rounding, expressed in number of ulps
false for x=0 in the FLX format
(* was ulp_error *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, x <> 0%R -> (Rabs (round beta fexp rnd x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, x <> 0%R -> (Rabs (round beta fexp rnd x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%R(Rabs (round beta fexp rnd x - x) < ulp x)%R(* x = rnd x *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:F x(Rabs (round beta fexp rnd x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp rnd x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:F x(Rabs (x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp rnd x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:F x(Rabs (x + - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp rnd x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:F x(0 < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp rnd x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:F x(0 < bpow (cexp beta fexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp rnd x - x) < ulp x)%R(* x <> rnd x *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp rnd x - x) < ulp x)%R(* . *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zfloor x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zceil x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(- (round beta fexp Zfloor x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zceil x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(x - round beta fexp Zfloor x < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zceil x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x + (x - round beta fexp Zfloor x) < round beta fexp Zfloor x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zceil x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x + (x - round beta fexp Zfloor x) < round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zceil x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(x < round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zceil x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(x <= round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F xHu:(x <= round beta fexp Zceil x)%R(x < round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zceil x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F xHu:(x <= round beta fexp Zceil x)%R(x < round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zceil x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F xHu:(x < round beta fexp Zceil x)%R(x < round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F xHu:x = round beta fexp Zceil x(x < round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zceil x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F xHu:x = round beta fexp Zceil x(x < round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zceil x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F xHu:x = round beta fexp Zceil xF xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zceil x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F xHu:x = round beta fexp Zceil xF (round beta fexp Zceil x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zceil x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zceil x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zceil x - x) < ulp x)%R(* . *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(Rabs (round beta fexp Zceil x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zceil x - x < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(0 <= round beta fexp Zceil x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x + ulp x - x < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(0 <= round beta fexp Zceil x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x + ulp x - x + (x - ulp x) < ulp x + (x - ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(0 <= round beta fexp Zceil x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(0 <= round beta fexp Zceil x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(round beta fexp Zfloor x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F xHd:(round beta fexp Zfloor x <= x)%R(round beta fexp Zfloor x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(0 <= round beta fexp Zceil x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F xHd:(round beta fexp Zfloor x <= x)%R(round beta fexp Zfloor x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(0 <= round beta fexp Zceil x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F xHd:(round beta fexp Zfloor x < x)%R(round beta fexp Zfloor x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F xHd:round beta fexp Zfloor x = x(round beta fexp Zfloor x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(0 <= round beta fexp Zceil x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F xHd:round beta fexp Zfloor x = x(round beta fexp Zfloor x < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(0 <= round beta fexp Zceil x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F xHd:round beta fexp Zfloor x = xF xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(0 <= round beta fexp Zceil x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F xHd:round beta fexp Zfloor x = xF (round beta fexp Zfloor x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(0 <= round beta fexp Zceil x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(0 <= round beta fexp Zceil x - x)%Rapply round_UP_pt... Qed. (* was ulp_error_le *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%RHx:~ F x(x <= round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (Rabs (round beta fexp rnd x - x) <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (Rabs (round beta fexp rnd x - x) <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:R(Rabs (round beta fexp rnd x - x) <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:Rx = 0%R -> (Rabs (round beta fexp rnd x - x) <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:Rx <> 0%R -> (Rabs (round beta fexp rnd x - x) <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x = 0%R(Rabs (0 - 0) <= ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:Rx <> 0%R -> (Rabs (round beta fexp rnd x - x) <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x = 0%R(0 <= ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:Rx <> 0%R -> (Rabs (round beta fexp rnd x - x) <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:Rx <> 0%R -> (Rabs (round beta fexp rnd x - x) <= ulp x)%Rnow apply error_lt_ulp. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x <> 0%R(Rabs (round beta fexp rnd x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (x : R), (Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (x : R), (Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%R(* x = rnd x *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:F x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:F x(Rabs (x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:F x(Rabs (x + - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:F x(0 <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:F x(0 <= / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:F x(0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:F x(0 < / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:F x(0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:F x(0 < 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:F x(0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:F x(0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%R(* x <> rnd x *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%R(* . rnd(x) = rndd(x) *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (d - x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(Rabs (d - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%RF dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(Rabs (d - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(Rabs (d - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(- (d - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(d - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(x - d <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(d - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(0 < 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R((x - d) * 2 <= / 2 * ulp x * 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(d - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R((x - d) * 2 <= / 2 * ulp x * 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(d - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R((x - d) * 2 + (d - x) <= / 2 * ulp x * 2 + (d - x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(d - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(x - d <= - x + d + 2 * / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(d - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(d + ulp x - x <= - x + d + 2 * / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(d - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(d + ulp x - x)%R = (- x + d + 2 * / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(d - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(d - x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(x - d <= d + ulp x - x)%R(d <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%R(* . rnd(x) = rndu(x) *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(d + ulp x)%R = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%R(round beta fexp Zfloor x + ulp x)%R = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (d + ulp x - x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(Rabs (d + ulp x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil xF (d + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(Rabs (d + ulp x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil xF (round beta fexp Zceil x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(Rabs (d + ulp x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(Rabs (d + ulp x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(d + ulp x - x <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(0 <= d + ulp x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(0 < 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x((d + ulp x - x) * 2 <= / 2 * ulp x * 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(0 <= d + ulp x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x((d + ulp x - x) * 2 <= / 2 * ulp x * 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(0 <= d + ulp x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x((d + ulp x - x) * 2 + - (d + ulp x - x) <= / 2 * ulp x * 2 + - (d + ulp x - x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(0 <= d + ulp x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(d + ulp x - x <= - d + 2 * ulp x * / 2 - ulp x + x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(0 <= d + ulp x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(d + ulp x - x < - d + 2 * ulp x * / 2 - ulp x + x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(0 <= d + ulp x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(x - d <= - d + 2 * ulp x * / 2 - ulp x + x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(0 <= d + ulp x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(x - d)%R = (- d + 2 * ulp x * / 2 - ulp x + x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(0 <= d + ulp x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(0 <= d + ulp x - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(x <= d + ulp x)%Rapply (round_UP_pt beta fexp x). Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:RHx:~ F xd:=round beta fexp Zfloor x:RHr1:F (round beta fexp (Znearest choice) x)Hr2:forall g : R, F g -> (Rabs (round beta fexp (Znearest choice) x - x) <= Rabs (g - x))%RH:(d + ulp x - x < x - d)%RHu:(d + ulp x)%R = round beta fexp Zceil x(x <= round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 <= x)%R -> ulp (round beta fexp Zfloor x) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (0 <= x)%R -> ulp (round beta fexp Zfloor x) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%Rulp (round beta fexp Zfloor x) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:0%R = xulp (round beta fexp Zfloor x) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%Rulp (round beta fexp Zfloor x) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%Rulp (round beta fexp Zfloor x) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RF 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:(0 < round beta fexp Zfloor x)%Rulp (round beta fexp Zfloor x) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:0%R = round beta fexp Zfloor xulp (round beta fexp Zfloor x) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:(0 < round beta fexp Zfloor x)%Rulp (round beta fexp Zfloor x) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:0%R = round beta fexp Zfloor xulp (round beta fexp Zfloor x) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:(0 < round beta fexp Zfloor x)%Rulp (round beta fexp Zfloor x) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:0%R = round beta fexp Zfloor xulp (round beta fexp Zfloor x) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:(0 < round beta fexp Zfloor x)%Rulp (round beta fexp Zfloor x) = bpow (cexp beta fexp x)now rewrite cexp_DN with (2 := Hd).beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:(0 < round beta fexp Zfloor x)%Rbpow (cexp beta fexp (round beta fexp Zfloor x)) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:0%R = round beta fexp Zfloor xulp (round beta fexp Zfloor x) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:0%R = round beta fexp Zfloor xulp 0 = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:0%R = round beta fexp Zfloor xulp 0 = bpow (fexp (mag beta x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:0%R = round beta fexp Zfloor xe:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%Rulp 0 = bpow (fexp (Build_mag_prop beta x e He))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:0%R = round beta fexp Zfloor xe:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%Rulp 0 = bpow (fexp e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:0%R = round beta fexp Zfloor xe:ZHe:(bpow (e - 1) <= Rabs x < bpow e)%Rulp 0 = bpow (fexp e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:round beta fexp Zfloor x = 0%Re:ZHe:(bpow (e - 1) <= Rabs x < bpow e)%Rulp 0 = bpow (fexp e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:round beta fexp Zfloor x = 0%Re:ZHe:(bpow (e - 1) <= Rabs x < bpow e)%RH:(e <= fexp e)%Zulp 0 = bpow (fexp e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:round beta fexp Zfloor x = 0%Re:ZHe:(bpow (e - 1) <= Rabs x < bpow e)%RH:(e <= fexp e)%Z(if Req_bool 0 0 then match negligible_exp with | Some n => bpow (fexp n) | None => 0%R end else bpow (cexp beta fexp 0)) = bpow (fexp e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:round beta fexp Zfloor x = 0%Re:ZHe:(bpow (e - 1) <= Rabs x < bpow e)%RH:(e <= fexp e)%Zmatch negligible_exp with | Some n => bpow (fexp n) | None => 0%R end = bpow (fexp e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:round beta fexp Zfloor x = 0%Re:ZHe:(bpow (e - 1) <= Rabs x < bpow e)%RH:(e <= fexp e)%ZH0:forall n : Z, (fexp n < n)%Z0%R = bpow (fexp e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:round beta fexp Zfloor x = 0%Re:ZHe:(bpow (e - 1) <= Rabs x < bpow e)%RH:(e <= fexp e)%Zk:ZHk:(k <= fexp k)%Zbpow (fexp k) = bpow (fexp e)now apply f_equal, fexp_negligible_exp_eq.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:(0 < x)%RHd:round beta fexp Zfloor x = 0%Re:ZHe:(bpow (e - 1) <= Rabs x < bpow e)%RH:(e <= fexp e)%Zk:ZHk:(k <= fexp k)%Zbpow (fexp k) = bpow (fexp e)rewrite <- Hx, round_0... Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RHx:0%R = xulp (round beta fexp Zfloor x) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpnegligible_exp = None -> forall rnd : R -> Z, Valid_rnd rnd -> forall x : R, x <> 0%R -> round beta fexp rnd x <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpnegligible_exp = None -> forall rnd : R -> Z, Valid_rnd rnd -> forall x : R, x <> 0%R -> round beta fexp rnd x <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%RFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%Rnegligible_exp = None /\ (forall n : Z, (fexp n < n)%Z) -> Falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> Falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%RHn:forall n : Z, (fexp n < n)%ZFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> Falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%RHn:forall n : Z, (fexp n < n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RFalsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> Falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%RHn:forall n : Z, (fexp n < n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R~ (fexp e < e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%RHn:forall n : Z, (fexp n < n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(fexp e < e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> Falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%RHn:forall n : Z, (fexp n < n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(e <= fexp e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%RHn:forall n : Z, (fexp n < n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(fexp e < e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> Falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%RHn:forall n : Z, (fexp n < n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(fexp e < e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> Falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> Falserewrite H in H1; discriminate. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:negligible_exp = Nonerndn:R -> ZHrnd:Valid_rnd rndnx:RHx:x <> 0%RK:round beta fexp rndn x = 0%Rn:ZH1:negligible_exp = Some nFalse
allows rnd x to be 0
beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall rnd : R -> Z, Valid_rnd rnd -> forall x : R, x <> 0%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall rnd : R -> Z, Valid_rnd rnd -> forall x : R, x <> 0%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%R(* wlog *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, x <> 0%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexp(forall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%R) -> forall rnd : R -> Z, Valid_rnd rnd -> forall x : R, x <> 0%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%R(Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%R(0 <= x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%R(x < 0)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%RH:(0 < x)%R(Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%RH:0%R = x(Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%R(x < 0)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%RH:0%R = x(Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%R(x < 0)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%R(x < 0)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%RH:(x < 0)%R(Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%RH:(x < 0)%R(Rabs (round beta fexp rnd (- - x) - - - x) < ulp (round beta fexp rnd (- - x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%RH:(x < 0)%R(Rabs (- round beta fexp (Zrnd_opp rnd) (- x) - - - x) < ulp (round beta fexp (Zrnd_opp rnd) (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%RH:(x < 0)%R(Rabs (- (round beta fexp (Zrnd_opp rnd) (- x) - - x)) < ulp (round beta fexp (Zrnd_opp rnd) (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%RH:(x < 0)%R(Rabs (round beta fexp (Zrnd_opp rnd) (- x) - - x) < ulp (round beta fexp (Zrnd_opp rnd) (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%RH:(x < 0)%RValid_rnd (Zrnd_opp rnd)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%RH:(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpM:forall rnd0 : R -> Z, Valid_rnd rnd0 -> forall x0 : R, (0 < x0)%R -> (Rabs (round beta fexp rnd0 x0 - x0) < ulp (round beta fexp rnd0 x0))%Rrnd:R -> ZHrnd:Valid_rnd rndx:RZx:x <> 0%RH:(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%R(* 0 < x *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> (Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(Rabs (round beta fexp rnd x - x) < ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(Rabs (round beta fexp rnd x - x) < ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(ulp x <= ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(ulp x <= ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(ulp x <= ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(ulp (round beta fexp Zfloor x) <= ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(0 <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(round beta fexp Zfloor x <= round beta fexp rnd x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%RF 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(round beta fexp Zfloor x <= round beta fexp rnd x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(round beta fexp Zfloor x <= round beta fexp rnd x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(round beta fexp Zfloor x <= round beta fexp rnd x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%RV:round beta fexp rnd x = round beta fexp Zfloor x(round beta fexp Zfloor x <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%RV:round beta fexp rnd x = round beta fexp Zceil x(round beta fexp Zfloor x <= round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%RV:round beta fexp rnd x = round beta fexp Zceil x(round beta fexp Zfloor x <= round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%RV:round beta fexp rnd x = round beta fexp Zceil x(round beta fexp Zfloor x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%RV:round beta fexp rnd x = round beta fexp Zceil x(x <= round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%RV:round beta fexp rnd x = round beta fexp Zceil x(x <= round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(0 <= x)%Rnow apply Rlt_le. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexprnd:R -> ZHrnd:Valid_rnd rndx:RHx:(0 < x)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (Rabs (round beta fexp rnd x - x) <= ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (Rabs (round beta fexp rnd x - x) <= ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:R(Rabs (round beta fexp rnd x - x) <= ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:RZx:x = 0%R(Rabs (round beta fexp rnd x - x) <= ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:RNzx:x <> 0%R(Rabs (round beta fexp rnd x - x) <= ulp (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:RZx:x = 0%R(Rabs (round beta fexp rnd x - x) <= ulp (round beta fexp rnd x))%Runfold Rminus; rewrite Ropp_0, Rplus_0_l, Rabs_R0; apply ulp_ge_0.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:RZx:x = 0%R(Rabs (0 - 0) <= ulp 0)%Rnow apply Rlt_le, error_lt_ulp_round. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:RNzx:x <> 0%R(Rabs (round beta fexp rnd x - x) <= ulp (round beta fexp rnd x))%R
allows both x and rnd x to be 0
beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall (choice : Z -> bool) (x : R), (Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall (choice : Z -> bool) (x : R), (Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%R(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x = 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x = 0%R(/ 2 * ulp x <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x = 0%R(/ 2 * ulp 0 <= / 2 * ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%R -> (Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%R(Rabs (0 - x) <= / 2 * ulp x)%R -> (Rabs (0 - x) <= / 2 * ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%R(Rabs x <= / 2 * ulp x)%R -> (Rabs x <= / 2 * ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%R(Rabs x <= / 2 * ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%R(Rabs x <= / 2 * match negligible_exp with | Some n => bpow (fexp n) | None => 0 end)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rnegligible_exp = None /\ (forall n : Z, (fexp n < n)%Z) -> (Rabs x <= / 2 * match negligible_exp with | Some n => bpow (fexp n) | None => 0 end)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> (Rabs x <= / 2 * match negligible_exp with | Some n => bpow (fexp n) | None => 0 end)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%RH1:negligible_exp = NoneH2:forall n : Z, (fexp n < n)%Z(Rabs x <= / 2 * match negligible_exp with | Some n => bpow (fexp n) | None => 0 end)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> (Rabs x <= / 2 * match negligible_exp with | Some n => bpow (fexp n) | None => 0 end)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%RH1:negligible_exp = NoneH2:forall n : Z, (fexp n < n)%Zround beta fexp (Znearest choice) x <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> (Rabs x <= / 2 * match negligible_exp with | Some n => bpow (fexp n) | None => 0 end)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> (Rabs x <= / 2 * match negligible_exp with | Some n => bpow (fexp n) | None => 0 end)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Z(Rabs x <= / 2 * bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Z(/ 2 * ulp x <= / 2 * bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Zulp x = bpow (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Zbpow (cexp beta fexp x) = bpow (fexp n)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Zcexp beta fexp x = fexp nbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Zfexp (mag beta x) = fexp nbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Z(mag beta x <= fexp n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Z(mag beta x - 1 < fexp n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Z(bpow (mag beta x - 1) < bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(bpow (Build_mag_prop beta x e He - 1) < bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(bpow (e - 1) < bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(bpow (e - 1) <= Rabs x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(Rabs x < bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(Rabs x < bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(Rabs x <= Rabs (round beta fexp (Znearest choice) x - x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(Rabs (round beta fexp (Znearest choice) x - x) < bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RRabs x = Rabs (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(Rabs (round beta fexp (Znearest choice) x - x) < bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(Rabs (round beta fexp (Znearest choice) x - x) < bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(Rabs (round beta fexp (Znearest choice) x - x) < ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(ulp 0 <= bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(Rabs (round beta fexp (Znearest choice) x - x) < ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(ulp 0 <= bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(ulp 0 <= bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x = 0%RHx:x <> 0%RN:(Rabs x <= / 2 * ulp x)%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(bpow (fexp n) <= bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%R(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%R(* . *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(0 <= x)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(0 <= x)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp Zfloor x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(0 <= x)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(/ 2 * ulp x <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(0 <= / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(ulp x <= ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(ulp x <= ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(Rabs x <= Rabs (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(- x <= Rabs (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(- x <= Rabs (round beta fexp Zfloor x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(- x <= - round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(round beta fexp Zfloor x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(round beta fexp Zfloor x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(round beta fexp Zfloor x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(round beta fexp Zfloor x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%RF 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zfloor xH:(x < 0)%R(x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%R(* . *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil x(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(0 <= x)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(0 <= x)%R(/ 2 * ulp x <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(0 <= x)%R(0 <= / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(0 <= x)%R(ulp x <= ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(0 <= x)%R(ulp x <= ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(0 <= x)%R(x <= round beta fexp (Znearest choice) x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp (Znearest choice) x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (- round beta fexp Zceil x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (round beta fexp Zfloor (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(Rabs (round beta fexp (Znearest choice) x - x) <= / 2 * ulp (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(0 <= - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(Rabs (round beta fexp (Znearest choice) (- - x) - - - x) <= / 2 * ulp (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(0 <= - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(Rabs (- round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))%Z))) (- x) - - - x) <= / 2 * ulp (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(0 <= - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(Rabs (- round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))%Z))) (- x) + - - - x) <= / 2 * ulp (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(0 <= - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(Rabs (round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))%Z))) (- x) + - - x) <= / 2 * ulp (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(0 <= - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(0 <= - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(- 0 <= - x)%Rnow apply Rlt_le. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice:Z -> boolx:RHfx:round beta fexp (Znearest choice) x <> 0%RHx:round beta fexp (Znearest choice) x = round beta fexp Zceil xH:(x < 0)%R(x <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (x <= y)%R -> (pred x <= pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (x <= y)%R -> (pred x <= pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%R(pred x <= pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpy:RFx, Fy:F y(pred y <= pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%R(pred x <= pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%RF (pred x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%R(pred x < y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%R(pred x < y)%Rapply pred_le_id. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%R(pred x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (x <= y)%R -> (succ x <= succ y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (x <= y)%R -> (succ x <= succ y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x <= y)%R(succ x <= succ y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x <= y)%R(- succ y <= - succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x <= y)%R(pred (- y) <= pred (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x <= y)%RF (- y)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x <= y)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x <= y)%R(- y <= - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x <= y)%RF (- x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x <= y)%R(- y <= - x)%Rnow apply Ropp_le_contravar. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x <= y)%R(- y <= - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (pred x <= pred y)%R -> (x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (pred x <= pred y)%R -> (x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(pred x <= pred y)%R(x <= y)%Rapply succ_le; trivial; now apply generic_format_pred. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(pred x <= pred y)%R(succ (pred x) <= succ (pred y))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (succ x <= succ y)%R -> (x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (succ x <= succ y)%R -> (x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(succ x <= succ y)%R(x <= y)%Rapply pred_le; trivial; now apply generic_format_succ. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(succ x <= succ y)%R(pred (succ x) <= pred (succ y))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (x < y)%R -> (pred x < pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (x < y)%R -> (pred x < pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%R(pred x < pred y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%R~ (pred y <= pred x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%RH:(pred y <= pred x)%RFalsenow apply pred_le_inv. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%RH:(pred y <= pred x)%R(y <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (x < y)%R -> (succ x < succ y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F x -> F y -> (x < y)%R -> (succ x < succ y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%R(succ x < succ y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%R~ (succ y <= succ x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%RH:(succ y <= succ x)%RFalsenow apply succ_le_inv. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFx:F xFy:F yHxy:(x < y)%RH:(succ y <= succ x)%R(y <= x)%R
Adding ulp is a, somewhat reasonable, overapproximation of succ.
beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall x : R, (succ x <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall x : R, (succ x <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:R(succ x <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RNx:(x < 0)%R(succ x <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RNx:(x < 0)%R(succ x <= - (- x - ulp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RNx:(x < 0)%R(- pred_pos (- x) <= - (- x - ulp (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RNx:(x < 0)%R(- x - ulp (- x) <= (if Req_bool (- x) (bpow (mag beta (- x) - 1)) then - x - bpow (fexp (mag beta (- x) - 1)) else - x - ulp (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RNx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)(- x - ulp (- x) <= (if Req_bool (- x) (bpow (mag beta (- x) - 1)) then - x - bpow (fexp (mag beta (- x) - 1)) else - x - ulp (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RNx:(x < 0)%RHx:(- x)%R <> bpow (mag beta (- x) - 1)(- x - ulp (- x) <= (if Req_bool (- x) (bpow (mag beta (- x) - 1)) then - x - bpow (fexp (mag beta (- x) - 1)) else - x - ulp (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RNx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)(- x - ulp (- x) <= (if Req_bool (- x) (bpow (mag beta (- x) - 1)) then - x - bpow (fexp (mag beta (- x) - 1)) else - x - ulp (- x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RNx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)(- x - ulp (- x) <= - x - bpow (fexp (mag beta (- x) - 1)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RNx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)(bpow (fexp (mag beta (- x) - 1)) <= ulp (- x))%Rapply bpow_le, Mexp; lia.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RNx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)(bpow (fexp (mag beta (- x) - 1)) <= bpow (cexp beta fexp (- x)))%Rnow rewrite (Req_bool_false _ _ Hx); right. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RNx:(x < 0)%RHx:(- x)%R <> bpow (mag beta (- x) - 1)(- x - ulp (- x) <= (if Req_bool (- x) (bpow (mag beta (- x) - 1)) then - x - bpow (fexp (mag beta (- x) - 1)) else - x - ulp (- x)))%R
And it also lies in the format.
beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall x : R, F x -> F (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall x : R, F x -> F (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F xF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F xPx:(0 <= x)%RF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F xNx:(x < 0)%RF (x + ulp x)now rewrite <-(succ_eq_pos _ Px); apply generic_format_succ.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F xPx:(0 <= x)%RF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F xNx:(x < 0)%RF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RF (x + ulp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RF (- (- x - ulp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RF (- x - ulp (- x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)F (- x - ulp (- x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R <> bpow (mag beta (- x) - 1)F (- x - ulp (- x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)F (- x - ulp (- x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)F (- x - bpow (cexp beta fexp (- x)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)F (bpow (mag beta (- x) - 1) - bpow (cexp beta fexp (- x)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)F (bpow (mag beta (- x) - 1) - bpow (fexp (mag beta (- x))))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)F (bpow (e - 1) - bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)(fexp e < e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%ZF (bpow (e - 1) - bpow (fexp e))now apply mag_generic_gt; [|lra|].beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)(fexp e < e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%ZF (bpow (e - 1) - bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%ZF (bpow (e - 1 - fexp e + fexp e) - bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%ZF (bpow (e - 1 - fexp e) * bpow (fexp e) - bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):RF (m * bpow (fexp e) - bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):RF ((m - 1) * bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):R(e - 1 - fexp e)%Z = 0%Z -> F ((m - 1) * bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rforall p : positive, (e - 1 - fexp e)%Z = Z.pos p -> F ((m - 1) * bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rforall p : positive, (e - 1 - fexp e)%Z = Z.neg p -> F ((m - 1) * bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):R(e - 1 - fexp e)%Z = 0%Z -> F ((m - 1) * bpow (fexp e))rewrite Rmult_0_l; apply generic_format_0.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):RHe:(e - 1 - fexp e)%Z = 0%ZF (0 * bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rforall p : positive, (e - 1 - fexp e)%Z = Z.pos p -> F ((m - 1) * bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rforall p : positive, (e - 1 - fexp e)%Z = Z.neg p -> F ((m - 1) * bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rforall p : positive, (e - 1 - fexp e)%Z = Z.pos p -> F ((m - 1) * bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pF ((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaF ((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaF2R f = ((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%R(cexp beta fexp ((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e)) <= fexp e)%Znow unfold Defs.F2R; simpl; rewrite minus_IZR.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaF2R f = ((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%R(cexp beta fexp ((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e)) <= fexp e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%R(fexp (mag beta ((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))) <= fexp e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%R(fexp (mag beta ((bpow (Z.pos p) - 1) * bpow (fexp e))) <= fexp e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%R(fexp (mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))) <= fexp e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Z(fexp (mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))) <= fexp e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))(fexp e' <= fexp e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))e' = (e - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))(bpow (e - 1 - 1) <= Rabs ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))(bpow (e - 1 - 1) <= Rabs (bpow (e - 1 - fexp e) - 1) * bpow (fexp e) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))(bpow (e - 1 - 1) <= (bpow (e - 1 - fexp e) - 1) * bpow (fexp e) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))(0 < IZR beta)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(bpow (e - 1 - 1) <= (bpow (e - 1 - fexp e) - 1) * bpow (fexp e) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))(0 < IZR beta)%Rapply IZR_le, Z.leb_le, radix_prop.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))(2 <= IZR beta)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(bpow (e - 1 - 1) <= (bpow (e - 1 - fexp e) - 1) * bpow (fexp e) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(bpow (e - 1 - 1) <= (bpow (e - 1 - fexp e) - 1) * bpow (fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R((bpow (e - 1 - fexp e) - 1) * bpow (fexp e) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(bpow (e - 1 - 1) <= (bpow (e - 1 - fexp e) - 1) * bpow (fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(bpow (e - 1 - fexp e + -1 + fexp e) <= (bpow (e - 1 - fexp e) - 1) * bpow (fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(bpow (e - 1 - fexp e + -1) * bpow (fexp e) <= (bpow (e - 1 - fexp e) - 1) * bpow (fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(bpow (e - 1 - fexp e + -1) <= bpow (e - 1 - fexp e) - 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(bpow (e - 1 - fexp e) * / IZR (beta * 1) <= bpow (e - 1 - fexp e) - 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(bpow (e - 1 - fexp e) * / IZR beta <= bpow (e - 1 - fexp e) - 1)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(bpow (e - 1 - fexp e) * / IZR beta * IZR beta <= (bpow (e - 1 - fexp e) - 1) * IZR beta)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(bpow (e - 1 - fexp e) <= (bpow (e - 1 - fexp e) - 1) * IZR beta)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(bpow (e - 1 - fexp e) + IZR beta <= bpow (e - 1 - fexp e) * IZR beta)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(bpow (e - 1 - fexp e) + IZR beta <= 2 * bpow (e - 1 - fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(2 * bpow (e - 1 - fexp e) <= bpow (e - 1 - fexp e) * IZR beta)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(bpow (e - 1 - fexp e) + IZR beta <= 2 * bpow (e - 1 - fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(bpow (e - 1 - fexp e) + IZR beta <= bpow (e - 1 - fexp e) + bpow (e - 1 - fexp e))%Rrewrite <-bpow_1; apply bpow_le; lia.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(IZR beta <= bpow (e - 1 - fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(2 * bpow (e - 1 - fexp e) <= bpow (e - 1 - fexp e) * IZR beta)%Rapply IZR_le, Z.leb_le, radix_prop.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R(2 <= IZR beta)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R((bpow (e - 1 - fexp e) - 1) * bpow (fexp e) < bpow (e - 1))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R((bpow (e - 1 - fexp e) - 1) * bpow (fexp e) * bpow (- fexp e) < bpow (e - 1) * bpow (- fexp e))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R((bpow (e - 1 - fexp e) - 1) * bpow (fexp e + - fexp e) < bpow (e - 1 + - fexp e))%Rrewrite Rmult_1_r; unfold Zminus; lra.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rp:positiveHp:(e - 1 - fexp e)%Z = Z.pos pf:={| Fnum := Z.pow_pos beta p - 1; Fexp := fexp e |} : float beta:float betaHm':((IZR (Z.pow_pos beta p) - 1) * bpow (fexp e))%R <> 0%RHe:(1 <= e - 1 - fexp e)%Ze':=mag beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e)):mag_prop beta ((bpow (e - 1 - fexp e) - 1) * bpow (fexp e))beta_pos:(0 < IZR beta)%R((bpow (e - 1 - fexp e) - 1) * 1 < bpow (e - 1 + - fexp e))%Rintros p Hp; exfalso; lia.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R = bpow (mag beta (- x) - 1)e:=mag beta (- x):mag_prop beta (- x)Hfe:(fexp e < e)%Zm:=bpow (e - 1 - fexp e):Rforall p : positive, (e - 1 - fexp e)%Z = Z.neg p -> F ((m - 1) * bpow (fexp e))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R <> bpow (mag beta (- x) - 1)F (- x - ulp (- x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R <> bpow (mag beta (- x) - 1)F (pred_pos (- x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R <> bpow (mag beta (- x) - 1)pred_pos (- x) = (- x - ulp (- x))%Rnow apply generic_format_pred_pos; [|lra].beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R <> bpow (mag beta (- x) - 1)F (pred_pos (- x))now unfold pred_pos; rewrite Req_bool_false. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMexp:Monotone_exp fexpx:RFx:F (- x)Nx:(x < 0)%RHx:(- x)%R <> bpow (mag beta (- x) - 1)pred_pos (- x) = (- x - ulp (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F y -> (y < round beta fexp Zceil x)%R -> (y <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F y -> (y < round beta fexp Zceil x)%R -> (y <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFy:F yHlt:(y < round beta fexp Zceil x)%R(y <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFy:F yHlt:(y < round beta fexp Zceil x)%R(y <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFy:F yHlt:(y < round beta fexp Zceil x)%R~ (x < y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFy:F yHlt:(x < y)%R~ (y < round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFy:F yHlt:(x < y)%R(round beta fexp Zceil x <= y)%Rnow apply Rlt_le. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFy:F yHlt:(x < y)%R(x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F y -> (round beta fexp Zfloor x < y)%R -> (round beta fexp Zceil x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x y : R, F y -> (round beta fexp Zfloor x < y)%R -> (round beta fexp Zceil x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFy:F yHlt:(round beta fexp Zfloor x < y)%R(round beta fexp Zceil x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFy:F yHlt:(round beta fexp Zfloor x < y)%R(x <= y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFy:F yHlt:(round beta fexp Zfloor x < y)%R~ (y < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFy:F yHlt:(y < x)%R~ (round beta fexp Zfloor x < y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFy:F yHlt:(y < x)%R(y <= round beta fexp Zfloor x)%Rnow apply Rlt_le. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, y:RFy:F yHlt:(y < x)%R(y <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F x(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F x(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F x(pred x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F x(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F x(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%R(- succ 0 <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%R(- (0 + ulp 0) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%R(- match negligible_exp with | Some n => bpow (fexp n) | None => 0 end <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%Rnegligible_exp = None /\ (forall n : Z, (fexp n < n)%Z) -> (- match negligible_exp with | Some n => bpow (fexp n) | None => 0 end <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> (- match negligible_exp with | Some n => bpow (fexp n) | None => 0 end <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%RH1:negligible_exp = NoneH2:forall n : Z, (fexp n < n)%Z(- match negligible_exp with | Some n => bpow (fexp n) | None => 0 end <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> (- match negligible_exp with | Some n => bpow (fexp n) | None => 0 end <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xH1:negligible_exp = NoneH2:forall n : Z, (fexp n < n)%Zx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> (- match negligible_exp with | Some n => bpow (fexp n) | None => 0 end <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%R(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> (- match negligible_exp with | Some n => bpow (fexp n) | None => 0 end <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%Z(- bpow (fexp n) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%ZK:(round beta fexp Zfloor x < - bpow (fexp n))%R(- bpow (fexp n) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%ZK:(round beta fexp Zfloor x < - bpow (fexp n))%R~ (round beta fexp Zceil x <= - bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%ZK:(round beta fexp Zfloor x < - bpow (fexp n))%R(round beta fexp Zceil x <= - bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%ZK:(round beta fexp Zfloor x < - bpow (fexp n))%R(- bpow (fexp n) < round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%ZK:(round beta fexp Zfloor x < - bpow (fexp n))%R(round beta fexp Zceil x <= - bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%ZK:(round beta fexp Zfloor x < - bpow (fexp n))%R(- bpow (fexp n) < - 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%ZK:(round beta fexp Zfloor x < - bpow (fexp n))%R(round beta fexp Zceil x <= - bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%ZK:(round beta fexp Zfloor x < - bpow (fexp n))%R(round beta fexp Zceil x <= - bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%ZK:(round beta fexp Zfloor x < - bpow (fexp n))%RF (- bpow (fexp n))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x = 0%Rn:ZH1:negligible_exp = Some nHn:(n <= fexp n)%ZK:(round beta fexp Zfloor x < - bpow (fexp n))%R(fexp (fexp n + 1) <= fexp n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%Rlet u := round beta fexp Zceil x in (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%RHup:let u := round beta fexp Zceil x in (pred u < u)%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%RHup:let u := round beta fexp Zceil x in (pred u < u)%R(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%RHup:let u := round beta fexp Zceil x in (pred u < u)%RF (pred (round beta fexp Zceil x))now apply round_UP_pt. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xZx:round beta fexp Zceil x <> 0%RHup:let u := round beta fexp Zceil x in (pred u < u)%RF (round beta fexp Zceil x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (round beta fexp Zceil x <= succ (round beta fexp Zfloor x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, (round beta fexp Zceil x <= succ (round beta fexp Zfloor x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:R(round beta fexp Zceil x <= succ (round beta fexp Zfloor x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:R(round beta fexp Zceil (- - x) <= succ (round beta fexp Zfloor (- - x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:R(- round beta fexp Zfloor (- x) <= - pred (round beta fexp Zceil (- x)))%Rapply pred_UP_le_DN. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:R(pred (round beta fexp Zceil (- x)) <= round beta fexp Zfloor (- x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, ~ F x -> pred (round beta fexp Zceil x) = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, ~ F x -> pred (round beta fexp Zceil x) = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xpred (round beta fexp Zceil x) = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F x(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F x(round beta fexp Zfloor x <= pred (round beta fexp Zceil x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F x(round beta fexp Zfloor x <= pred (round beta fexp Zceil x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F x(round beta fexp Zfloor x < round beta fexp Zceil x)%Rnow apply Rlt_trans with (1 := proj1 HE) (2 := proj2 HE). Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xHE:(round beta fexp Zfloor x < x < round beta fexp Zceil x)%R(round beta fexp Zfloor x < round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, ~ F x -> succ (round beta fexp Zfloor x) = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, ~ F x -> succ (round beta fexp Zfloor x) = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xsucc (round beta fexp Zfloor x) = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xsucc (pred (round beta fexp Zceil x)) = round beta fexp Zceil xapply generic_format_round... Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:~ F xF (round beta fexp Zceil x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x d : R, F d -> (d <= x < succ d)%R -> round beta fexp Zfloor x = dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x d : R, F d -> (d <= x < succ d)%R -> round beta fexp Zfloor x = dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%Rround beta fexp Zfloor x = dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%Rround beta fexp Zfloor x = dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%R(d <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%R(round beta fexp Zfloor x <= d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%R(round beta fexp Zfloor x <= d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%RFx:F x(round beta fexp Zfloor x <= d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%RNFx:~ F x(round beta fexp Zfloor x <= d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%RFx:F x(x <= d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%RNFx:~ F x(round beta fexp Zfloor x <= d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%RFx:F x(succ x <= succ d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%RNFx:~ F x(round beta fexp Zfloor x <= d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%RFx:F xF (succ d)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%RNFx:~ F x(round beta fexp Zfloor x <= d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%RNFx:~ F x(round beta fexp Zfloor x <= d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%RNFx:~ F x(succ (round beta fexp Zfloor x) <= succ d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%RNFx:~ F x(round beta fexp Zceil x <= succ d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%RNFx:~ F xF (succ d)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%RNFx:~ F x(x <= succ d)%Rnow left. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, d:RFd:F dHxd1:(d <= x)%RHxd2:(x < succ d)%RT1:F (round beta fexp Zfloor x)T2:(round beta fexp Zfloor x <= x)%RT3:forall g : R, F g -> (g <= x)%R -> (g <= round beta fexp Zfloor x)%RNFx:~ F x(x <= succ d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x u : R, F u -> (pred u < x <= u)%R -> round beta fexp Zceil x = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x u : R, F u -> (pred u < x <= u)%R -> round beta fexp Zceil x = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, u:RFu:F uHux:(pred u < x <= u)%Rround beta fexp Zceil x = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, u:RFu:F uHux:(pred u < x <= u)%R(- - round beta fexp Zceil x)%R = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, u:RFu:F uHux:(pred u < x <= u)%R(- round beta fexp Zfloor (- x))%R = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, u:RFu:F uHux:(pred u < x <= u)%R(- round beta fexp Zfloor (- x))%R = (- - u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, u:RFu:F uHux:(pred u < x <= u)%Rround beta fexp Zfloor (- x) = (- u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, u:RFu:F uHux:(pred u < x <= u)%RF (- u)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, u:RFu:F uHux:(pred u < x <= u)%R(- u <= - x < succ (- u))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, u:RFu:F uHux:(pred u < x <= u)%R(- u <= - x < succ (- u))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, u:RFu:F uHux:(pred u < x <= u)%R(- x < succ (- u))%Rnow apply Ropp_lt_contravar. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx, u:RFu:F uHux:(pred u < x <= u)%R(- x < - pred u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpExp_not_FTZ fexp -> ulp (ulp 0) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpExp_not_FTZ fexp -> ulp (ulp 0) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpnegligible_exp = None /\ (forall n : Z, (fexp n < n)%Z) -> ulp (ulp 0) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexp(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> ulp (ulp 0) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpK1:negligible_exp = NoneK2:forall n : Z, (fexp n < n)%Zulp (ulp 0) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexp(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> ulp (ulp 0) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpK1:negligible_exp = NoneK2:forall n : Z, (fexp n < n)%Z0%R = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexp(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> ulp (ulp 0) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpK1:negligible_exp = NoneK2:forall n : Z, (fexp n < n)%Zmatch negligible_exp with | Some n => bpow (fexp n) | None => 0%R end = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexp(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> ulp (ulp 0) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexp(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> ulp (ulp 0) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zulp (ulp 0) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Z(ulp (ulp 0) <= ulp 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Z(ulp 0 <= ulp (ulp 0))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Z(ulp (bpow (fexp n)) <= bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zbpow (fexp n) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Z(ulp 0 <= ulp (ulp 0))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Z(bpow (fexp (fexp n + 1)) <= bpow (fexp n))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zbpow (fexp n) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Z(ulp 0 <= ulp (ulp 0))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Z(fexp (fexp n + 1) <= fexp n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zbpow (fexp n) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Z(ulp 0 <= ulp (ulp 0))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zbpow (fexp n) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Z(ulp 0 <= ulp (ulp 0))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zbpow (fexp n) = match negligible_exp with | Some n0 => bpow (fexp n0) | None => 0%R endbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Z(ulp 0 <= ulp (ulp 0))%Rnow apply ulp_ge_ulp_0. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpH:Exp_not_FTZ fexpn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Z(ulp 0 <= ulp (ulp 0))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> (0 < x)%R -> ulp (succ x) = ulp x \/ succ x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> (0 < x)%R -> ulp (succ x) = ulp x \/ succ x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%Rulp (succ x) = ulp x \/ succ x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Rulp (succ x) = ulp x \/ succ x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Rulp (x + ulp x) = ulp x \/ (x + ulp x)%R = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%Rulp (x + ulp x) = ulp x \/ (x + ulp x)%R = bpow ebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%Rulp (x + ulp x) = ulp x \/ (x + ulp x)%R = bpow ebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%Rulp (x + ulp x) = ulp x \/ (x + ulp x)%R = bpow ebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%R(x + ulp x <= bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x <= bpow e)%Rulp (x + ulp x) = ulp x \/ (x + ulp x)%R = bpow ebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%R(x < bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x <= bpow e)%Rulp (x + ulp x) = ulp x \/ (x + ulp x)%R = bpow ebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x <= bpow e)%Rulp (x + ulp x) = ulp x \/ (x + ulp x)%R = bpow ebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%Rulp (x + ulp x) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%Rbpow (cexp beta fexp (x + ulp x)) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%R(x + ulp x)%R <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%Rbpow (cexp beta fexp (x + ulp x)) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%R(x <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%Rbpow (cexp beta fexp (x + ulp x)) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%R(0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%Rbpow (cexp beta fexp (x + ulp x)) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%Rbpow (cexp beta fexp (x + ulp x)) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%Rbpow (cexp beta fexp (x + ulp x)) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%Rmag beta (x + ulp x) = mag beta xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%Rmag beta (x + ulp x) = ebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%Re = mag beta xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%R(bpow (e - 1) <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%Re = mag beta xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%R(x <= x + ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%Re = mag beta xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%R(0 <= ulp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%Re = mag beta xnow apply sym_eq, mag_unique_pos. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < x)%RHx':(0 <= x)%Re:ZHe:(bpow (e - 1) <= x < bpow e)%RH:(x + ulp x < bpow e)%Re = mag beta xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> (0 < pred x)%R -> ulp (pred x) = ulp x \/ x = bpow (mag beta x - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall x : R, F x -> (0 < pred x)%R -> ulp (pred x) = ulp x \/ x = bpow (mag beta x - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%Rulp (pred x) = ulp x \/ x = bpow (mag beta x - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%R(0 < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%Rulp (pred x) = ulp x \/ x = bpow (mag beta x - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%R(pred x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%Rulp (pred x) = ulp x \/ x = bpow (mag beta x - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%Rulp (pred x) = ulp x \/ x = bpow (mag beta x - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%Rx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Rulp (pred x) = ulp x \/ x = bpow (mag beta x - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Rulp (pred x) = ulp x \/ x = bpow (mag beta x - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Rulp (pred x) = bpow (cexp beta fexp x) \/ x = bpow (mag beta x - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Rulp (pred x) = bpow (fexp (mag beta x)) \/ x = bpow (mag beta x - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%Rulp (pred x) = bpow (fexp (Build_mag_prop beta x e He)) \/ x = bpow (Build_mag_prop beta x e He - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%Rulp (pred x) = bpow (fexp e) \/ x = bpow (e - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%Rulp (pred x) = bpow (fexp e) \/ x = bpow (e - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(bpow (e - 1) <= Rabs x < bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%Rulp (pred x) = bpow (fexp e) \/ x = bpow (e - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%Rulp (pred x) = bpow (fexp e) \/ x = bpow (e - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) < x)%Rulp (pred x) = bpow (fexp e) \/ x = bpow (e - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:bpow (e - 1) = xulp (pred x) = bpow (fexp e) \/ x = bpow (e - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) < x)%Rulp (pred x) = bpow (fexp e) \/ x = bpow (e - 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) < x)%Rulp (pred x) = bpow (fexp e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) <= pred x)%Rulp (pred x) = bpow (fexp e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) < x)%RF (bpow (e - 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) <= pred x)%Rbpow (cexp beta fexp (pred x)) = bpow (fexp e)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) < x)%RF (bpow (e - 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) <= pred x)%Rmag beta (pred x) = ebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) < x)%RF (bpow (e - 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) <= pred x)%R(bpow (e - 1) <= pred x < bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) < x)%RF (bpow (e - 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) <= pred x)%R(pred x < bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) < x)%RF (bpow (e - 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) <= pred x)%R(pred x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) < x)%RF (bpow (e - 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) < x)%RF (bpow (e - 1))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) < x)%R(fexp (e - 1 + 1) <= e - 1)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) < x)%R(fexp (e - 1 + 1) < e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) < x)%R(fexp e < e)%Znow apply mag_generic_gt. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpx:RFx:F xHx:(0 < pred x)%RHx':(0 < x)%RZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(bpow (e - 1) <= x < bpow e)%RH1:(bpow (e - 1) < x)%R(fexp (mag beta x) < mag beta x)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpExp_not_FTZ fexp -> forall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> ulp (round beta fexp rnd x) = ulp x \/ round beta fexp rnd x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpExp_not_FTZ fexp -> forall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (0 < x)%R -> ulp (round beta fexp rnd x) = ulp x \/ round beta fexp rnd x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%Rulp (round beta fexp rnd x) = ulp x \/ round beta fexp rnd x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:F xulp (round beta fexp rnd x) = ulp x \/ round beta fexp rnd x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xulp (round beta fexp rnd x) = ulp x \/ round beta fexp rnd x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xulp (round beta fexp rnd x) = ulp x \/ round beta fexp rnd x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zfloor xulp (round beta fexp Zfloor x) = ulp x \/ round beta fexp Zfloor x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zfloor xulp (round beta fexp Zfloor x) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil x(0 <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 <= round beta fexp Zfloor x)%Rulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xF 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil x(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 <= round beta fexp Zfloor x)%Rulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil x(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 <= round beta fexp Zfloor x)%Rulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 <= round beta fexp Zfloor x)%Rulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 < round beta fexp Zfloor x)%Rulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 < round beta fexp Zfloor x)%Rulp (succ (round beta fexp Zfloor x)) = ulp x \/ succ (round beta fexp Zfloor x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 < round beta fexp Zfloor x)%RF (round beta fexp Zfloor x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 < round beta fexp Zfloor x)%R(0 < round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 < round beta fexp Zfloor x)%RY:ulp (succ (round beta fexp Zfloor x)) = ulp (round beta fexp Zfloor x)ulp (succ (round beta fexp Zfloor x)) = ulp x \/ succ (round beta fexp Zfloor x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 < round beta fexp Zfloor x)%RY:succ (round beta fexp Zfloor x) = bpow (mag beta (round beta fexp Zfloor x))ulp (succ (round beta fexp Zfloor x)) = ulp x \/ succ (round beta fexp Zfloor x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 < round beta fexp Zfloor x)%R(0 < round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 < round beta fexp Zfloor x)%RY:ulp (succ (round beta fexp Zfloor x)) = ulp (round beta fexp Zfloor x)ulp (succ (round beta fexp Zfloor x)) = ulp x \/ succ (round beta fexp Zfloor x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 < round beta fexp Zfloor x)%RY:succ (round beta fexp Zfloor x) = bpow (mag beta (round beta fexp Zfloor x))ulp (succ (round beta fexp Zfloor x)) = ulp x \/ succ (round beta fexp Zfloor x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 < round beta fexp Zfloor x)%RY:ulp (succ (round beta fexp Zfloor x)) = ulp (round beta fexp Zfloor x)ulp (succ (round beta fexp Zfloor x)) = ulp x \/ succ (round beta fexp Zfloor x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 < round beta fexp Zfloor x)%RY:succ (round beta fexp Zfloor x) = bpow (mag beta (round beta fexp Zfloor x))ulp (succ (round beta fexp Zfloor x)) = ulp x \/ succ (round beta fexp Zfloor x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 < round beta fexp Zfloor x)%RY:ulp (succ (round beta fexp Zfloor x)) = ulp (round beta fexp Zfloor x)(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 < round beta fexp Zfloor x)%RY:succ (round beta fexp Zfloor x) = bpow (mag beta (round beta fexp Zfloor x))ulp (succ (round beta fexp Zfloor x)) = ulp x \/ succ (round beta fexp Zfloor x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 < round beta fexp Zfloor x)%RY:succ (round beta fexp Zfloor x) = bpow (mag beta (round beta fexp Zfloor x))ulp (succ (round beta fexp Zfloor x)) = ulp x \/ succ (round beta fexp Zfloor x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:(0 < round beta fexp Zfloor x)%RY:succ (round beta fexp Zfloor x) = bpow (mag beta (round beta fexp Zfloor x))bpow (mag beta (round beta fexp Zfloor x)) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xulp (round beta fexp Zceil x) = ulp x \/ round beta fexp Zceil x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xulp (succ (round beta fexp Zfloor x)) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xulp (ulp 0) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xulp 0 = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xnegligible_exp = None /\ (forall n : Z, (fexp n < n)%Z) -> ulp 0 = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor x(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> ulp 0 = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xK1:negligible_exp = NoneK2:forall n : Z, (fexp n < n)%Zulp 0 = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor x(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> ulp 0 = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xK1:negligible_exp = NoneK2:forall n : Z, (fexp n < n)%Zx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xK1:negligible_exp = NoneK2:forall n : Z, (fexp n < n)%Zx = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor x(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> ulp 0 = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xK1:negligible_exp = NoneK2:forall n : Z, (fexp n < n)%Zx = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor x(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> ulp 0 = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor x(exists n : Z, negligible_exp = Some n /\ (n <= fexp n)%Z) -> ulp 0 = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zulp 0 = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zbpow (fexp n) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zbpow (fexp n) = ulp 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zbpow (fexp n) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zbpow (fexp n) = match negligible_exp with | Some n0 => bpow (fexp n0) | None => 0%R endbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zbpow (fexp n) = ulp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zbpow (fexp n) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zx <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zbpow (fexp n) = bpow (cexp beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Zfexp n = fexp (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%Rfexp n = fexp ebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(e <= fexp n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(e <= fexp e)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(e <= fexp e)%Z(e <= fexp n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(e <= fexp e)%Z(e <= fexp n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(bpow (e - 1) <= Rabs x < bpow e)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(e <= fexp e)%Z(e <= fexp n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(e <= fexp e)%Z(e <= fexp n)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(e <= fexp e)%Z(e <= fexp n)%Znow apply fexp_negligible_exp_eq. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RHx:(0 < x)%RFx:~ F xHr:round beta fexp rnd x = round beta fexp Zceil xM:0%R = round beta fexp Zfloor xn:ZHn1:negligible_exp = Some nHn2:(n <= fexp n)%Ze:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%RH:(e <= fexp e)%Zfexp e = fexp nbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpExp_not_FTZ fexp -> forall rnd : R -> Z, Valid_rnd rnd -> forall x : R, ulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpExp_not_FTZ fexp -> forall rnd : R -> Z, Valid_rnd rnd -> forall x : R, ulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x = 0%R \/ (x > 0)%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%Rulp (round beta fexp (Zrnd_opp rnd) (- x)) = ulp (- x) -> ulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%Rround beta fexp (Zrnd_opp rnd) (- x) = bpow (mag beta (- x)) -> ulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x = 0%R \/ (x > 0)%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%Rulp (round beta fexp (Zrnd_opp rnd) (- x)) = ulp (- x) -> ulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%Rround beta fexp (Zrnd_opp rnd) (- x) = bpow (mag beta (- x)) -> ulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x = 0%R \/ (x > 0)%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%Rulp (- round beta fexp (Zrnd_opp rnd) (- x)) = ulp x -> ulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%Rround beta fexp (Zrnd_opp rnd) (- x) = bpow (mag beta (- x)) -> ulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x = 0%R \/ (x > 0)%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%Rulp (round beta fexp rnd x) = ulp x -> ulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%Rround beta fexp (Zrnd_opp rnd) (- x) = bpow (mag beta (- x)) -> ulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x = 0%R \/ (x > 0)%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%Rround beta fexp (Zrnd_opp rnd) (- x) = bpow (mag beta (- x)) -> ulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x = 0%R \/ (x > 0)%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%Rround beta fexp (Zrnd_opp rnd) (- x) = bpow (mag beta x) -> ulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x = 0%R \/ (x > 0)%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%RY:round beta fexp (Zrnd_opp rnd) (- x) = bpow (mag beta x)Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x = 0%R \/ (x > 0)%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%RY:round beta fexp (Zrnd_opp rnd) (- x) = bpow (mag beta x)Rabs (round beta fexp rnd (- - x)) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x = 0%R \/ (x > 0)%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%RY:round beta fexp (Zrnd_opp rnd) (- x) = bpow (mag beta x)Rabs (- bpow (mag beta x)) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x = 0%R \/ (x > 0)%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x < 0)%RY:round beta fexp (Zrnd_opp rnd) (- x) = bpow (mag beta x)(bpow (mag beta x) >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x = 0%R \/ (x > 0)%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x = 0%R \/ (x > 0)%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:x = 0%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x > 0)%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x > 0)%Rulp (round beta fexp rnd x) = ulp x \/ Rabs (round beta fexp rnd x) = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x > 0)%Rulp (round beta fexp rnd x) = ulp x \/ round beta fexp rnd x = bpow (mag beta x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x > 0)%R(round beta fexp rnd x >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x > 0)%R(round beta fexp rnd x >= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x > 0)%RF 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x > 0)%R(0 <= x)%Rnow apply Rlt_le. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpNot_FTZ_:Exp_not_FTZ fexprnd:R -> ZZrnd:Valid_rnd rndx:RZx:(x > 0)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (x <= succ (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (x <= succ (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:R(x <= succ (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:R(x <= round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:R(round beta fexp Zceil x <= succ (round beta fexp rnd x))%Rnow apply round_UP_pt.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:R(x <= round beta fexp Zceil x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:R(round beta fexp Zceil x <= succ (round beta fexp rnd x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:RHr:round beta fexp rnd x = round beta fexp Zfloor x(round beta fexp Zceil x <= succ (round beta fexp Zfloor x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:RHr:round beta fexp rnd x = round beta fexp Zceil x(round beta fexp Zceil x <= succ (round beta fexp Zceil x))%Rnow apply UP_le_succ_DN.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:RHr:round beta fexp rnd x = round beta fexp Zfloor x(round beta fexp Zceil x <= succ (round beta fexp Zfloor x))%Rapply succ_ge_id. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:RHr:round beta fexp rnd x = round beta fexp Zceil x(round beta fexp Zceil x <= succ (round beta fexp Zceil x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (pred (round beta fexp rnd x) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall rnd : R -> Z, Valid_rnd rnd -> forall x : R, (pred (round beta fexp rnd x) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:R(pred (round beta fexp rnd x) <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:R(pred (round beta fexp rnd x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:R(round beta fexp Zfloor x <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:R(pred (round beta fexp rnd x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:RHr:round beta fexp rnd x = round beta fexp Zfloor x(pred (round beta fexp Zfloor x) <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:RHr:round beta fexp rnd x = round beta fexp Zceil x(pred (round beta fexp Zceil x) <= round beta fexp Zfloor x)%Rapply pred_le_id. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexprnd:R -> ZVrnd:Valid_rnd rndx:RHr:round beta fexp rnd x = round beta fexp Zfloor x(pred (round beta fexp Zfloor x) <= round beta fexp Zfloor x)%R
Properties of rounding to nearest and ulp
beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (u v : R), F u -> (v < (u + succ u) / 2)%R -> (round beta fexp (Znearest choice) v <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (u v : R), F u -> (v < (u + succ u) / 2)%R -> (round beta fexp (Znearest choice) v <= u)%R(* . *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%R(round beta fexp (Znearest choice) v <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%Rsucc u = 0%R /\ u = 0%R \/ (u < succ u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:succ u = 0%R /\ u = 0%R \/ (u < succ u)%R(round beta fexp (Znearest choice) v <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RP:(u < succ u)%Rsucc u = 0%R /\ u = 0%R \/ (u < succ u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RP:u = succ usucc u = 0%R /\ u = 0%R \/ (u < succ u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:succ u = 0%R /\ u = 0%R \/ (u < succ u)%R(round beta fexp (Znearest choice) v <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RP:u = succ usucc u = 0%R /\ u = 0%R \/ (u < succ u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:succ u = 0%R /\ u = 0%R \/ (u < succ u)%R(round beta fexp (Znearest choice) v <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RP:u = succ uZu:u = 0%Rsucc u = 0%R /\ u = 0%R \/ (u < succ u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RP:u = succ uZu:u <> 0%Rsucc u = 0%R /\ u = 0%R \/ (u < succ u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:succ u = 0%R /\ u = 0%R \/ (u < succ u)%R(round beta fexp (Znearest choice) v <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RP:u = succ uZu:u = 0%Rsucc u = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RP:u = succ uZu:u <> 0%Rsucc u = 0%R /\ u = 0%R \/ (u < succ u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:succ u = 0%R /\ u = 0%R \/ (u < succ u)%R(round beta fexp (Znearest choice) v <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RP:u = succ uZu:u <> 0%Rsucc u = 0%R /\ u = 0%R \/ (u < succ u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:succ u = 0%R /\ u = 0%R \/ (u < succ u)%R(round beta fexp (Znearest choice) v <= u)%R(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:succ u = 0%R /\ u = 0%R \/ (u < succ u)%R(round beta fexp (Znearest choice) v <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV1:succ u = 0%RV2:u = 0%R(round beta fexp (Znearest choice) v <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%R(round beta fexp (Znearest choice) v <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV1:succ u = 0%RV2:u = 0%RF 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV1:succ u = 0%RV2:u = 0%R(v <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%R(round beta fexp (Znearest choice) v <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV1:succ u = 0%RV2:u = 0%R(v <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%R(round beta fexp (Znearest choice) v <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV1:succ u = 0%RV2:u = 0%R((u + succ u) / 2 <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%R(round beta fexp (Znearest choice) v <= u)%R(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%R(round beta fexp (Znearest choice) v <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT:(u < (u + succ u) / 2 < succ u)%R(round beta fexp (Znearest choice) v <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R(round beta fexp (Znearest choice) v <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%RRnd_N_pt F v (round beta fexp (Znearest choice) v)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%RRnd_N_pt F ((u + succ u) / 2) ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%RRnd_N_pt F ((u + succ u) / 2) ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%RRnd_DN_pt F ((u + succ u) / 2) ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%RRnd_UP_pt F ((u + succ u) / 2) (succ u)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R((u + succ u) / 2 - u <= succ u - (u + succ u) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%RRnd_DN_pt F ((u + succ u) / 2) (round beta fexp Zfloor ((u + succ u) / 2))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%Rround beta fexp Zfloor ((u + succ u) / 2) = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%RRnd_UP_pt F ((u + succ u) / 2) (succ u)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R((u + succ u) / 2 - u <= succ u - (u + succ u) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%Rround beta fexp Zfloor ((u + succ u) / 2) = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%RRnd_UP_pt F ((u + succ u) / 2) (succ u)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R((u + succ u) / 2 - u <= succ u - (u + succ u) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R(u <= (u + succ u) / 2 < succ u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%RRnd_UP_pt F ((u + succ u) / 2) (succ u)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R((u + succ u) / 2 - u <= succ u - (u + succ u) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%RRnd_UP_pt F ((u + succ u) / 2) (succ u)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R((u + succ u) / 2 - u <= succ u - (u + succ u) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%RRnd_UP_pt F ((u + succ u) / 2) (round beta fexp Zceil ((u + succ u) / 2))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%Rround beta fexp Zceil ((u + succ u) / 2) = succ ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R((u + succ u) / 2 - u <= succ u - (u + succ u) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%Rround beta fexp Zceil ((u + succ u) / 2) = succ ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R((u + succ u) / 2 - u <= succ u - (u + succ u) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%RF (succ u)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R(pred (succ u) < (u + succ u) / 2 <= succ u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R((u + succ u) / 2 - u <= succ u - (u + succ u) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R(pred (succ u) < (u + succ u) / 2 <= succ u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R((u + succ u) / 2 - u <= succ u - (u + succ u) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R(u < (u + succ u) / 2 <= succ u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R((u + succ u) / 2 - u <= succ u - (u + succ u) / 2)%Rright; field. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:(v < (u + succ u) / 2)%RV:(u < succ u)%RT1:(u < (u + succ u) / 2)%RT2:((u + succ u) / 2 < succ u)%R((u + succ u) / 2 - u <= succ u - (u + succ u) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (u v : R), F u -> ((u + pred u) / 2 < v)%R -> (u <= round beta fexp (Znearest choice) v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (u v : R), F u -> ((u + pred u) / 2 < v)%R -> (u <= round beta fexp (Znearest choice) v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:((u + pred u) / 2 < v)%R(u <= round beta fexp (Znearest choice) v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:((u + pred u) / 2 < v)%R(u <= round beta fexp (Znearest choice) (- - v))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:((u + pred u) / 2 < v)%R(u <= - round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))%Z))) (- v))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:((u + pred u) / 2 < v)%R(- - u <= - round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))%Z))) (- v))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:((u + pred u) / 2 < v)%R(round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))%Z))) (- v) <= - u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:((u + pred u) / 2 < v)%RF (- u)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:((u + pred u) / 2 < v)%R(- v < (- u + succ (- u)) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:((u + pred u) / 2 < v)%R(- v < (- u + succ (- u)) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:((u + pred u) / 2 < v)%R(- ((- u + succ (- u)) / 2) < - - v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:((u + pred u) / 2 < v)%R(- ((- u + succ (- u)) / 2) < v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:((u + pred u) / 2 < v)%R(- ((- u + succ (- u)) / 2) <= (u + pred u) / 2)%Rright; field. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RFu:F uH:((u + pred u) / 2 < v)%R(- ((- u + succ (- u)) / 2) <= (u + - succ (- u)) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (u v : R), F u -> (u <= round beta fexp (Znearest choice) v)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (u v : R), F u -> (u <= round beta fexp (Znearest choice) v)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%R((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%Ru = 0%R /\ negligible_exp = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u = 0%Ru = 0%R /\ negligible_exp = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u <> 0%Ru = 0%R /\ negligible_exp = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u = 0%Rforall z : Z, negligible_exp = Some z -> u = 0%R /\ Some z = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u = 0%Rnegligible_exp = None -> u = 0%R /\ None = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u <> 0%Ru = 0%R /\ negligible_exp = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u = 0%Rn:ZHn:negligible_exp = Some n(pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u = 0%Rnegligible_exp = None -> u = 0%R /\ None = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u <> 0%Ru = 0%R /\ negligible_exp = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u = 0%Rn:ZHn:negligible_exp = Some n(- ulp 0 < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u = 0%Rnegligible_exp = None -> u = 0%R /\ None = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u <> 0%Ru = 0%R /\ negligible_exp = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u = 0%Rn:ZHn:negligible_exp = Some n(- bpow (fexp n) < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u = 0%Rnegligible_exp = None -> u = 0%R /\ None = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u <> 0%Ru = 0%R /\ negligible_exp = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u = 0%Rn:ZHn:negligible_exp = Some n(- bpow (fexp n) < - 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u = 0%Rnegligible_exp = None -> u = 0%R /\ None = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u <> 0%Ru = 0%R /\ negligible_exp = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u = 0%Rnegligible_exp = None -> u = 0%R /\ None = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u <> 0%Ru = 0%R /\ negligible_exp = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u <> 0%Ru = 0%R /\ negligible_exp = None \/ (pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RZu:u <> 0%R(pred u < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R((u + pred u) / 2 <= v)%R(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%Ru = 0%R /\ negligible_exp = None -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%R(* . *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = None((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = None((0 + - ulp 0) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = None((0 + - 0) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = None(0 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = None(v < 0)%R -> (0 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = NoneH3:(v < 0)%R~ (u <= round beta fexp (Znearest choice) v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = NoneH3:(v < 0)%R(round beta fexp (Znearest choice) v < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = NoneH3:(v < 0)%R(round beta fexp (Znearest choice) v <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = NoneH3:(v < 0)%RH4:(round beta fexp (Znearest choice) v <= 0)%R(round beta fexp (Znearest choice) v < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = NoneH3:(v < 0)%RF 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = NoneH3:(v < 0)%R(v <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = NoneH3:(v < 0)%RH4:(round beta fexp (Znearest choice) v <= 0)%R(round beta fexp (Znearest choice) v < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = NoneH3:(v < 0)%R(v <= 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = NoneH3:(v < 0)%RH4:(round beta fexp (Znearest choice) v <= 0)%R(round beta fexp (Znearest choice) v < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = NoneH3:(v < 0)%RH4:(round beta fexp (Znearest choice) v <= 0)%R(round beta fexp (Znearest choice) v < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = NoneH3:(v < 0)%RH4:(round beta fexp (Znearest choice) v <= 0)%Rround beta fexp (Znearest choice) v = 0%R -> (round beta fexp (Znearest choice) v < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = NoneH3:(v < 0)%RH4:(round beta fexp (Znearest choice) v <= 0)%RH5:round beta fexp (Znearest choice) v = 0%R(round beta fexp (Znearest choice) v < 0)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:u = 0%RK2:negligible_exp = NoneH3:(v < 0)%RH4:(round beta fexp (Znearest choice) v <= 0)%RH5:round beta fexp (Znearest choice) v = 0%Rv = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%R(* . *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%R(pred u < u)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:(pred u < u)%R((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:(pred u < u)%R(v < (u + pred u) / 2)%R -> ((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:(pred u < u)%RH3:(v < (u + pred u) / 2)%R((u + pred u) / 2 <= v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:(pred u < u)%RH3:(v < (u + pred u) / 2)%R~ (u <= round beta fexp (Znearest choice) v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:(pred u < u)%RH3:(v < (u + pred u) / 2)%R(round beta fexp (Znearest choice) v < u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:(pred u < u)%RH3:(v < (u + pred u) / 2)%R(round beta fexp (Znearest choice) v <= pred u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:(pred u < u)%RH3:(v < (u + pred u) / 2)%RF (pred u)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:(pred u < u)%RH3:(v < (u + pred u) / 2)%R(v < (pred u + succ (pred u)) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:(pred u < u)%RH3:(v < (u + pred u) / 2)%R(v < (pred u + succ (pred u)) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:(pred u < u)%RH3:(v < (u + pred u) / 2)%R(v < (pred u + u) / 2)%Rright; f_equal; ring. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(u <= round beta fexp (Znearest choice) v)%RK:u = 0%R /\ negligible_exp = None \/ (pred u < u)%RK1:(pred u < u)%RH3:(v < (u + pred u) / 2)%R((u + pred u) / 2 <= (pred u + u) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (u v : R), F u -> (round beta fexp (Znearest choice) v <= u)%R -> (v <= (u + succ u) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (u v : R), F u -> (round beta fexp (Znearest choice) v <= u)%R -> (v <= (u + succ u) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(round beta fexp (Znearest choice) v <= u)%R(v <= (u + succ u) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(round beta fexp (Znearest choice) v <= u)%R(- ((u + succ u) / 2) <= - v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(round beta fexp (Znearest choice) v <= u)%R(- ((u + succ u) / 2) <= (- u + pred (- u)) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(round beta fexp (Znearest choice) v <= u)%R((- u + pred (- u)) / 2 <= - v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(round beta fexp (Znearest choice) v <= u)%R((- u + pred (- u)) / 2 <= - v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(round beta fexp (Znearest choice) v <= u)%RF (- u)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(round beta fexp (Znearest choice) v <= u)%R(- u <= round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))%Z))) (- v))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(round beta fexp (Znearest choice) v <= u)%R(- u <= round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))%Z))) (- v))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(round beta fexp (Znearest choice) v <= u)%R(- u <= - - round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))%Z))) (- v))%Rapply Ropp_le_contravar; easy. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolu, v:RHu:F uH2:(round beta fexp (Znearest choice) v <= u)%R(- u <= - round beta fexp (Znearest choice) v)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (x : R), let d := round beta fexp Zfloor x in let u := round beta fexp Zceil x in (x < (d + u) / 2)%R -> round beta fexp (Znearest choice) x = dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (x : R), let d := round beta fexp Zfloor x in let u := round beta fexp Zceil x in (x < (d + u) / 2)%R -> round beta fexp (Znearest choice) x = dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%Rround beta fexp (Znearest choice) x = dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%R(round beta fexp (Znearest choice) x <= d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%R(d <= round beta fexp (Znearest choice) x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%RFx:F x(round beta fexp (Znearest choice) x <= d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%RFx:~ F x(round beta fexp (Znearest choice) x <= d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%R(d <= round beta fexp (Znearest choice) x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%RFx:F x(x <= d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%RFx:~ F x(round beta fexp (Znearest choice) x <= d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%R(d <= round beta fexp (Znearest choice) x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%RFx:~ F x(round beta fexp (Znearest choice) x <= d)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%R(d <= round beta fexp (Znearest choice) x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%RFx:~ F xF dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%RFx:~ F x(x < (d + succ d) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%R(d <= round beta fexp (Znearest choice) x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%RFx:~ F x(x < (d + succ d) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%R(d <= round beta fexp (Znearest choice) x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%RFx:~ F x((d + u) / 2 <= (d + succ d) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%R(d <= round beta fexp (Znearest choice) x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%RFx:~ F xu = succ dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%R(d <= round beta fexp (Znearest choice) x)%Rapply round_ge_generic; try apply round_DN_pt... Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x < (d + u) / 2)%R(d <= round beta fexp (Znearest choice) x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (x d u : R), Rnd_DN_pt F x d -> Rnd_UP_pt F x u -> (x < (d + u) / 2)%R -> round beta fexp (Znearest choice) x = dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (x d u : R), Rnd_DN_pt F x d -> Rnd_UP_pt F x u -> (x < (d + u) / 2)%R -> round beta fexp (Znearest choice) x = dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:(x < (d + u) / 2)%Rround beta fexp (Znearest choice) x = dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:(x < (d + u) / 2)%Rd = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:(x < (d + u) / 2)%RH0:d = round beta fexp Zfloor xround beta fexp (Znearest choice) x = dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:(x < (d + u) / 2)%RRnd_DN_pt F x (round beta fexp Zfloor x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:(x < (d + u) / 2)%RH0:d = round beta fexp Zfloor xround beta fexp (Znearest choice) x = dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:(x < (d + u) / 2)%RH0:d = round beta fexp Zfloor xround beta fexp (Znearest choice) x = dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:(x < (d + u) / 2)%RH0:d = round beta fexp Zfloor xround beta fexp (Znearest choice) x = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:(x < (d + u) / 2)%RH0:d = round beta fexp Zfloor x(x < (round beta fexp Zfloor x + round beta fexp Zceil x) / 2)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:(x < (d + u) / 2)%RH0:d = round beta fexp Zfloor x(x < (d + round beta fexp Zceil x) / 2)%Rapply round_UP_pt... Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:(x < (d + u) / 2)%RH0:d = round beta fexp Zfloor xRnd_UP_pt F x (round beta fexp Zceil x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (x : R), let d := round beta fexp Zfloor x in let u := round beta fexp Zceil x in ((d + u) / 2 < x)%R -> round beta fexp (Znearest choice) x = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (x : R), let d := round beta fexp Zfloor x in let u := round beta fexp Zceil x in ((d + u) / 2 < x)%R -> round beta fexp (Znearest choice) x = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:((d + u) / 2 < x)%Rround beta fexp (Znearest choice) x = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:((d + u) / 2 < x)%R(round beta fexp (Znearest choice) x <= u)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:((d + u) / 2 < x)%R(u <= round beta fexp (Znearest choice) x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:((d + u) / 2 < x)%R(u <= round beta fexp (Znearest choice) x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:((d + u) / 2 < x)%RFx:F x(u <= round beta fexp (Znearest choice) x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:((d + u) / 2 < x)%RFx:~ F x(u <= round beta fexp (Znearest choice) x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:((d + u) / 2 < x)%RFx:F x(u <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:((d + u) / 2 < x)%RFx:~ F x(u <= round beta fexp (Znearest choice) x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:((d + u) / 2 < x)%RFx:~ F x(u <= round beta fexp (Znearest choice) x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:((d + u) / 2 < x)%RFx:~ F xF ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:((d + u) / 2 < x)%RFx:~ F x((u + pred u) / 2 < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:((d + u) / 2 < x)%RFx:~ F x((u + pred u) / 2 < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:((d + u) / 2 < x)%RFx:~ F x((u + pred u) / 2 <= (d + u) / 2)%Rnow apply pred_UP_eq_DN. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:((d + u) / 2 < x)%RFx:~ F xpred u = dbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (x d u : R), Rnd_DN_pt F x d -> Rnd_UP_pt F x u -> ((d + u) / 2 < x)%R -> round beta fexp (Znearest choice) x = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (choice : Z -> bool) (x d u : R), Rnd_DN_pt F x d -> Rnd_UP_pt F x u -> ((d + u) / 2 < x)%R -> round beta fexp (Znearest choice) x = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:((d + u) / 2 < x)%Rround beta fexp (Znearest choice) x = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:((d + u) / 2 < x)%Ru = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:((d + u) / 2 < x)%RH0:u = round beta fexp Zceil xround beta fexp (Znearest choice) x = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:((d + u) / 2 < x)%RRnd_UP_pt F x (round beta fexp Zceil x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:((d + u) / 2 < x)%RH0:u = round beta fexp Zceil xround beta fexp (Znearest choice) x = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:((d + u) / 2 < x)%RH0:u = round beta fexp Zceil xround beta fexp (Znearest choice) x = ubeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:((d + u) / 2 < x)%RH0:u = round beta fexp Zceil xround beta fexp (Znearest choice) x = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:((d + u) / 2 < x)%RH0:u = round beta fexp Zceil x((round beta fexp Zfloor x + round beta fexp Zceil x) / 2 < x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:((d + u) / 2 < x)%RH0:u = round beta fexp Zceil x((round beta fexp Zfloor x + u) / 2 < x)%Rapply round_DN_pt... Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpchoice:Z -> boolx, d, u:RHd:Rnd_DN_pt F x dHu:Rnd_UP_pt F x uH:((d + u) / 2 < x)%RH0:u = round beta fexp Zceil xRnd_DN_pt F x (round beta fexp Zfloor x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall (choice1 choice2 : Z -> bool) (x : R), let rx := round beta fexp (Znearest choice2) x in (x <= round beta fexp (Znearest choice1) (rx + ulp rx))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpMonotone_exp fexp -> forall (choice1 choice2 : Z -> bool) (x : R), let rx := round beta fexp (Znearest choice2) x in (x <= round beta fexp (Znearest choice1) (rx + ulp rx))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice1, choice2:Z -> boolx:Rlet rx := round beta fexp (Znearest choice2) x in (x <= round beta fexp (Znearest choice1) (rx + ulp rx))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice1, choice2:Z -> boolx:R(x <= round beta fexp (Znearest choice1) (round beta fexp (Znearest choice2) x + ulp (round beta fexp (Znearest choice2) x)))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice1, choice2:Z -> boolx:Rrx:=round beta fexp (Znearest choice2) x:R(x <= round beta fexp (Znearest choice1) (rx + ulp rx))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice1, choice2:Z -> boolx:Rrx:=round beta fexp (Znearest choice2) x:RVrnd1:Valid_rnd (Znearest choice1)(x <= round beta fexp (Znearest choice1) (rx + ulp rx))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice1, choice2:Z -> boolx:Rrx:=round beta fexp (Znearest choice2) x:RVrnd1:Valid_rnd (Znearest choice1)Vrnd2:Valid_rnd (Znearest choice2)(x <= round beta fexp (Znearest choice1) (rx + ulp rx))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice1, choice2:Z -> boolx:Rrx:=round beta fexp (Znearest choice2) x:RVrnd1:Valid_rnd (Znearest choice1)Vrnd2:Valid_rnd (Znearest choice2)(succ rx <= round beta fexp (Znearest choice1) (rx + ulp rx))%Rnow apply generic_format_plus_ulp, generic_format_round. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpHm:Monotone_exp fexpchoice1, choice2:Z -> boolx:Rrx:=round beta fexp (Znearest choice2) x:RVrnd1:Valid_rnd (Znearest choice1)Vrnd2:Valid_rnd (Znearest choice2)F (rx + ulp rx)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (c1 c2 : Z -> bool) (x : R), (x - round beta fexp Zfloor x)%R <> (round beta fexp Zceil x - x)%R -> round beta fexp (Znearest c1) x = round beta fexp (Znearest c2) xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpforall (c1 c2 : Z -> bool) (x : R), (x - round beta fexp Zfloor x)%R <> (round beta fexp Zceil x - x)%R -> round beta fexp (Znearest c1) x = round beta fexp (Znearest c2) xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpc1, c2:Z -> boolx:R(x - round beta fexp Zfloor x)%R <> (round beta fexp Zceil x - x)%R -> round beta fexp (Znearest c1) x = round beta fexp (Znearest c2) xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpc1, c2:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x - d)%R <> (u - x)%Rround beta fexp (Znearest c1) x = round beta fexp (Znearest c2) xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpc1, c2:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x - d)%R <> (u - x)%RL:((d + u) / 2 <= x)%Rround beta fexp (Znearest c1) x = round beta fexp (Znearest c2) xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpc1, c2:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x - d)%R <> (u - x)%RL:(x < (d + u) / 2)%Rround beta fexp (Znearest c1) x = round beta fexp (Znearest c2) xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpc1, c2:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x - d)%R <> (u - x)%RL:((d + u) / 2 <= x)%Rround beta fexp (Znearest c1) x = round beta fexp (Znearest c2) xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpc1, c2:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x - d)%R <> (u - x)%RL:((d + u) / 2 < x)%Rround beta fexp (Znearest c1) x = round beta fexp (Znearest c2) xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpc1, c2:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x - d)%R <> (u - x)%RL:((d + u) / 2)%R = xround beta fexp (Znearest c1) x = round beta fexp (Znearest c2) xcontradict H; rewrite <- L; field. Qed. End Fcore_ulp.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpc1, c2:Z -> boolx:Rd:=round beta fexp Zfloor x:Ru:=round beta fexp Zceil x:RH:(x - d)%R <> (u - x)%RL:((d + u) / 2)%R = xround beta fexp (Znearest c1) x = round beta fexp (Znearest c2) x