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) 2013-2018 Sylvie Boldo
Copyright (C) 2013-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) 2013-2018 Guillaume Melquiond
Rounding to odd and its properties, including the equivalence
between rnd_NE and double rounding with rnd_odd and then rnd_NERequire Import Reals Psatz. Require Import Core Operations. Definition Zrnd_odd x := match Req_EM_T x (IZR (Zfloor x)) with | left _ => Zfloor x | right _ => match (Z.even (Zfloor x)) with | true => Zceil x | false => Zfloor x end end.Valid_rnd Zrnd_oddValid_rnd Zrnd_odd(* . *)forall x y : R, (x <= y)%R -> (Zrnd_odd x <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%R(Zrnd_odd x <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = n(* .. *)x, y:RHxy:(x <= y)%R(Zfloor x <= Zrnd_odd y)%Zx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%Z(Zrnd_odd x <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%R(Zfloor x <= Zfloor y)%Zx, y:RHxy:(x <= y)%R(Zfloor y <= Zrnd_odd y)%Zx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%Z(Zrnd_odd x <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%R(Zfloor y <= Zrnd_odd y)%Zx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%Z(Zrnd_odd x <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%Re:y = IZR (Zfloor y)(Zfloor y <= Zfloor y)%Zx, y:RHxy:(x <= y)%Rn:y <> IZR (Zfloor y)(Zfloor y <= (if Z.even (Zfloor y) then Zceil y else Zfloor y))%Zx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%Z(Zrnd_odd x <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%Rn:y <> IZR (Zfloor y)(Zfloor y <= (if Z.even (Zfloor y) then Zceil y else Zfloor y))%Zx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%Z(Zrnd_odd x <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%Rn:y <> IZR (Zfloor y)(Zfloor y <= Zceil y)%Zx, y:RHxy:(x <= y)%Rn:y <> IZR (Zfloor y)(Zfloor y <= Zfloor y)%Zx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%Z(Zrnd_odd x <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%Rn:y <> IZR (Zfloor y)(IZR (Zfloor y) <= IZR (Zceil y))%Rx, y:RHxy:(x <= y)%Rn:y <> IZR (Zfloor y)(Zfloor y <= Zfloor y)%Zx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%Z(Zrnd_odd x <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%Rn:y <> IZR (Zfloor y)(IZR (Zfloor y) <= y)%Rx, y:RHxy:(x <= y)%Rn:y <> IZR (Zfloor y)(y <= IZR (Zceil y))%Rx, y:RHxy:(x <= y)%Rn:y <> IZR (Zfloor y)(Zfloor y <= Zfloor y)%Zx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%Z(Zrnd_odd x <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%Rn:y <> IZR (Zfloor y)(y <= IZR (Zceil y))%Rx, y:RHxy:(x <= y)%Rn:y <> IZR (Zfloor y)(Zfloor y <= Zfloor y)%Zx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%Z(Zrnd_odd x <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%Rn:y <> IZR (Zfloor y)(Zfloor y <= Zfloor y)%Zx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%Z(Zrnd_odd x <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%Z(Zrnd_odd x <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = n(* . *)x, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%Z((if Req_EM_T x (IZR (Zfloor x)) then Zfloor x else if Z.even (Zfloor x) then Zceil x else Zfloor x) <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = n(* .. *)x, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x = IZR (Zfloor x)(Zfloor x <= Zrnd_odd y)%Zx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)((if Z.even (Zfloor x) then Zceil x else Zfloor x) <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = n(* .. *)x, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)((if Z.even (Zfloor x) then Zceil x else Zfloor x) <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = true(Zceil x <= Zrnd_odd y)%Zx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = false(Zfloor x <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = true(Zceil x <= Zrnd_odd y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y = IZR (Zfloor y)(Zceil x <= Zfloor y)%Zx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)(Zceil x <= (if Z.even (Zfloor y) then Zceil y else Zfloor y))%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y = IZR (Zfloor y)(x <= IZR (Zfloor y))%Rx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)(Zceil x <= (if Z.even (Zfloor y) then Zceil y else Zfloor y))%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)(Zceil x <= (if Z.even (Zfloor y) then Zceil y else Zfloor y))%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)Hy2:Z.even (Zfloor y) = true(Zceil x <= Zceil y)%Zx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)Hy2:Z.even (Zfloor y) = false(Zceil x <= Zfloor y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)Hy2:Z.even (Zfloor y) = false(Zceil x <= Zfloor y)%Zforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)Hy2:Z.even (Zfloor y) = false(x <= IZR (Zfloor y))%Rforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)Hy2:Z.even (Zfloor y) = falseH0:(Zfloor x <= Zfloor y)%Z(x <= IZR (Zfloor y))%Rforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)Hy2:Z.even (Zfloor y) = falseH0:(Zfloor x <= Zfloor y)%ZH1:(Zfloor x < Zfloor y)%Z(x <= IZR (Zfloor y))%Rx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)Hy2:Z.even (Zfloor y) = falseH0:(Zfloor x <= Zfloor y)%ZH1:Zfloor x = Zfloor y(x <= IZR (Zfloor y))%Rforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)Hy2:Z.even (Zfloor y) = falseH0:(Zfloor x <= Zfloor y)%ZH1:(Zfloor x < Zfloor y)%Z(IZR (Zceil x) <= IZR (Zfloor y))%Rx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)Hy2:Z.even (Zfloor y) = falseH0:(Zfloor x <= Zfloor y)%ZH1:Zfloor x = Zfloor y(x <= IZR (Zfloor y))%Rforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)Hy2:Z.even (Zfloor y) = falseH0:(Zfloor x <= Zfloor y)%ZH1:(Zfloor x < Zfloor y)%Z(IZR (Zfloor x + 1) <= IZR (Zfloor y))%Rx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)Hy2:Z.even (Zfloor y) = falseH0:(Zfloor x <= Zfloor y)%ZH1:(Zfloor x < Zfloor y)%ZIZR (Zfloor x) <> xx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)Hy2:Z.even (Zfloor y) = falseH0:(Zfloor x <= Zfloor y)%ZH1:Zfloor x = Zfloor y(x <= IZR (Zfloor y))%Rforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)Hy2:Z.even (Zfloor y) = falseH0:(Zfloor x <= Zfloor y)%ZH1:(Zfloor x < Zfloor y)%ZIZR (Zfloor x) <> xx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)Hy2:Z.even (Zfloor y) = falseH0:(Zfloor x <= Zfloor y)%ZH1:Zfloor x = Zfloor y(x <= IZR (Zfloor y))%Rforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)Hy2:Z.even (Zfloor y) = falseH0:(Zfloor x <= Zfloor y)%ZH1:Zfloor x = Zfloor y(x <= IZR (Zfloor y))%Rforall n : Z, Zrnd_odd (IZR n) = nx, y:RHxy:(x <= y)%RH:(Zfloor x <= Zrnd_odd y)%ZHx:x <> IZR (Zfloor x)Hx2:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)H0:(Zfloor x <= Zfloor y)%ZH1:Zfloor x = Zfloor yZ.even (Zfloor y) <> falseforall n : Z, Zrnd_odd (IZR n) = n(* . *)forall n : Z, Zrnd_odd (IZR n) = nn:Z(if Req_EM_T (IZR n) (IZR (Zfloor (IZR n))) then Zfloor (IZR n) else if Z.even (Zfloor (IZR n)) then Zceil (IZR n) else Zfloor (IZR n)) = nn:Z(if Req_EM_T (IZR n) (IZR n) then n else if Z.even n then n else n) = ncase (Z.even n); trivial. Qed.n:Zn0:IZR n <> IZR n(if Z.even n then n else n) = nforall x : R, x <> IZR (Zfloor x) -> Z.even (Zrnd_odd x) = falseforall x : R, x <> IZR (Zfloor x) -> Z.even (Zrnd_odd x) = falsex:RHx:x <> IZR (Zfloor x)Z.even (if Req_EM_T x (IZR (Zfloor x)) then Zfloor x else if Z.even (Zfloor x) then Zceil x else Zfloor x) = falsex:RHx:x <> IZR (Zfloor x)H:x = IZR (Zfloor x)Z.even (Zfloor x) = falsex:RHx, H:x <> IZR (Zfloor x)Z.even (if Z.even (Zfloor x) then Zceil x else Zfloor x) = falsex:RHx, H:x <> IZR (Zfloor x)Z.even (if Z.even (Zfloor x) then Zceil x else Zfloor x) = false(* difficult case *)x:RHx, H:x <> IZR (Zfloor x)Z.even (Zfloor x) = true -> Z.even (Zceil x) = falsex:RHx, H:x <> IZR (Zfloor x)Z.even (Zfloor x) = false -> Z.even (Zfloor x) = falsex:RHx, H:x <> IZR (Zfloor x)H':Z.even (Zfloor x) = trueZ.even (Zceil x) = falsex:RHx, H:x <> IZR (Zfloor x)Z.even (Zfloor x) = false -> Z.even (Zfloor x) = falsex:RHx, H:x <> IZR (Zfloor x)H':Z.even (Zfloor x) = trueZ.even (Zfloor x + 1) = falsex:RHx, H:x <> IZR (Zfloor x)H':Z.even (Zfloor x) = trueIZR (Zfloor x) <> xx:RHx, H:x <> IZR (Zfloor x)Z.even (Zfloor x) = false -> Z.even (Zfloor x) = falsex:RHx, H:x <> IZR (Zfloor x)H':Z.even (Zfloor x) = trueBool.eqb true (Z.even 1) = falsex:RHx, H:x <> IZR (Zfloor x)H':Z.even (Zfloor x) = trueIZR (Zfloor x) <> xx:RHx, H:x <> IZR (Zfloor x)Z.even (Zfloor x) = false -> Z.even (Zfloor x) = falsex:RHx, H:x <> IZR (Zfloor x)H':Z.even (Zfloor x) = trueIZR (Zfloor x) <> xx:RHx, H:x <> IZR (Zfloor x)Z.even (Zfloor x) = false -> Z.even (Zfloor x) = falsetrivial. Qed.x:RHx, H:x <> IZR (Zfloor x)Z.even (Zfloor x) = false -> Z.even (Zfloor x) = falseforall (n : Z) (y : R), Zfloor (IZR n + y) = (n + Zfloor y)%Zforall (n : Z) (y : R), Zfloor (IZR n + y) = (n + Zfloor y)%Zn:Zy:R(up (IZR n + y) - 1)%Z = (n + (up y - 1))%Zn:Zy:Rup (IZR n + y) = (n + up y)%Zn:Zy:R(IZR n + y < IZR (n + up y))%Rn:Zy:R(IZR (n + up y) <= IZR n + y + 1)%Rn:Zy:R(IZR n + y < IZR n + IZR (up y))%Rn:Zy:R(IZR (n + up y) <= IZR n + y + 1)%Rn:Zy:R(y < IZR (up y))%Rn:Zy:R(IZR (n + up y) <= IZR n + y + 1)%Rn:Zy:R(IZR (n + up y) <= IZR n + y + 1)%Rn:Zy:R(IZR n + IZR (up y) <= IZR n + (y + 1))%Rn:Zy:R(IZR (up y) <= y + 1)%Rn:Zy:R(IZR (up y) + - y <= y + 1 + - y)%Rapply archimed. Qed.n:Zy:R(IZR (up y) + - y <= 1)%Rforall (n : Z) (y : R), Zceil (IZR n + y) = (n + Zceil y)%Zforall (n : Z) (y : R), Zceil (IZR n + y) = (n + Zceil y)%Zn:Zy:R(- Zfloor (- (IZR n + y)))%Z = (n + - Zfloor (- y))%Zn:Zy:R(- Zfloor (IZR (- n) + - y))%Z = (n + - Zfloor (- y))%Zring. Qed.n:Zy:R(- (- n + Zfloor (- y)))%Z = (n + - Zfloor (- y))%Zforall z : Z, Z.even (Z.abs z) = Z.even zforall z : Z, Z.even (Z.abs z) = Z.even zz:ZH1:(z <= 0)%ZZ.even (Z.abs z) = Z.even zz:ZH1:(0 < z)%ZZ.even (Z.abs z) = Z.even zz:ZH1:(z <= 0)%ZZ.even (- z) = Z.even zz:ZH1:(0 < z)%ZZ.even (Z.abs z) = Z.even zrewrite Z.abs_eq; auto with zarith. Qed.z:ZH1:(0 < z)%ZZ.even (Z.abs z) = Z.even zforall x y : R, x = IZR (Zfloor x) -> Z.even (Zfloor x) = true -> IZR (Zrnd_odd (x + y)) = (x + IZR (Zrnd_odd y))%Rforall x y : R, x = IZR (Zfloor x) -> Z.even (Zfloor x) = true -> IZR (Zrnd_odd (x + y)) = (x + IZR (Zrnd_odd y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueIZR (Zrnd_odd (x + y)) = (x + IZR (Zrnd_odd y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueIZR (if Req_EM_T (IZR (Zfloor x) + y) (IZR (Zfloor x + Zfloor y)) then (Zfloor x + Zfloor y)%Z else if Z.even (Zfloor x + Zfloor y) then Zceil (IZR (Zfloor x) + y) else (Zfloor x + Zfloor y)%Z) = (IZR (Zfloor x) + IZR (if Req_EM_T y (IZR (Zfloor y)) then Zfloor y else if Z.even (Zfloor y) then Zceil y else Zfloor y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y = IZR (Zfloor y)IZR (if Req_EM_T (IZR (Zfloor x) + y) (IZR (Zfloor x + Zfloor y)) then (Zfloor x + Zfloor y)%Z else if Z.even (Zfloor x + Zfloor y) then Zceil (IZR (Zfloor x) + y) else (Zfloor x + Zfloor y)%Z) = (IZR (Zfloor x) + IZR (Zfloor y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)IZR (if Req_EM_T (IZR (Zfloor x) + y) (IZR (Zfloor x + Zfloor y)) then (Zfloor x + Zfloor y)%Z else if Z.even (Zfloor x + Zfloor y) then Zceil (IZR (Zfloor x) + y) else (Zfloor x + Zfloor y)%Z) = (IZR (Zfloor x) + IZR (if Z.even (Zfloor y) then Zceil y else Zfloor y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y = IZR (Zfloor y)IZR (if Req_EM_T (IZR (Zfloor x + Zfloor y)) (IZR (Zfloor x + Zfloor (IZR (Zfloor y)))) then (Zfloor x + Zfloor (IZR (Zfloor y)))%Z else if Z.even (Zfloor x + Zfloor (IZR (Zfloor y))) then Zceil (IZR (Zfloor x + Zfloor y)) else (Zfloor x + Zfloor (IZR (Zfloor y)))%Z) = IZR (Zfloor x + Zfloor (IZR (Zfloor y)))x, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)IZR (if Req_EM_T (IZR (Zfloor x) + y) (IZR (Zfloor x + Zfloor y)) then (Zfloor x + Zfloor y)%Z else if Z.even (Zfloor x + Zfloor y) then Zceil (IZR (Zfloor x) + y) else (Zfloor x + Zfloor y)%Z) = (IZR (Zfloor x) + IZR (if Z.even (Zfloor y) then Zceil y else Zfloor y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y = IZR (Zfloor y)IZR (if Req_EM_T (IZR (Zfloor x + Zfloor y)) (IZR (Zfloor x + Zfloor y)) then (Zfloor x + Zfloor y)%Z else if Z.even (Zfloor x + Zfloor y) then Zceil (IZR (Zfloor x + Zfloor y)) else (Zfloor x + Zfloor y)%Z) = IZR (Zfloor x + Zfloor y)x, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)IZR (if Req_EM_T (IZR (Zfloor x) + y) (IZR (Zfloor x + Zfloor y)) then (Zfloor x + Zfloor y)%Z else if Z.even (Zfloor x + Zfloor y) then Zceil (IZR (Zfloor x) + y) else (Zfloor x + Zfloor y)%Z) = (IZR (Zfloor x) + IZR (if Z.even (Zfloor y) then Zceil y else Zfloor y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)IZR (if Req_EM_T (IZR (Zfloor x) + y) (IZR (Zfloor x + Zfloor y)) then (Zfloor x + Zfloor y)%Z else if Z.even (Zfloor x + Zfloor y) then Zceil (IZR (Zfloor x) + y) else (Zfloor x + Zfloor y)%Z) = (IZR (Zfloor x) + IZR (if Z.even (Zfloor y) then Zceil y else Zfloor y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)K:(IZR (Zfloor x) + y)%R = IZR (Zfloor x + Zfloor y)IZR (Zfloor x + Zfloor y) = (IZR (Zfloor x) + IZR (if Z.even (Zfloor y) then Zceil y else Zfloor y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)K:(IZR (Zfloor x) + y)%R <> IZR (Zfloor x + Zfloor y)IZR (if Z.even (Zfloor x + Zfloor y) then Zceil (IZR (Zfloor x) + y) else (Zfloor x + Zfloor y)%Z) = (IZR (Zfloor x) + IZR (if Z.even (Zfloor y) then Zceil y else Zfloor y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueK:(IZR (Zfloor x) + y)%R = IZR (Zfloor x + Zfloor y)y = IZR (Zfloor y)x, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)K:(IZR (Zfloor x) + y)%R <> IZR (Zfloor x + Zfloor y)IZR (if Z.even (Zfloor x + Zfloor y) then Zceil (IZR (Zfloor x) + y) else (Zfloor x + Zfloor y)%Z) = (IZR (Zfloor x) + IZR (if Z.even (Zfloor y) then Zceil y else Zfloor y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueK:(IZR (Zfloor x) + y)%R = IZR (Zfloor x + Zfloor y)(IZR (Zfloor x) + y)%R = (IZR (Zfloor x) + IZR (Zfloor y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)K:(IZR (Zfloor x) + y)%R <> IZR (Zfloor x + Zfloor y)IZR (if Z.even (Zfloor x + Zfloor y) then Zceil (IZR (Zfloor x) + y) else (Zfloor x + Zfloor y)%Z) = (IZR (Zfloor x) + IZR (if Z.even (Zfloor y) then Zceil y else Zfloor y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)K:(IZR (Zfloor x) + y)%R <> IZR (Zfloor x + Zfloor y)IZR (if Z.even (Zfloor x + Zfloor y) then Zceil (IZR (Zfloor x) + y) else (Zfloor x + Zfloor y)%Z) = (IZR (Zfloor x) + IZR (if Z.even (Zfloor y) then Zceil y else Zfloor y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)K:(IZR (Zfloor x) + y)%R <> IZR (Zfloor x + Zfloor y)IZR (if if Z.even (Zfloor y) then true else false then Zceil (IZR (Zfloor x) + y) else (Zfloor x + Zfloor y)%Z) = (IZR (Zfloor x) + IZR (if Z.even (Zfloor y) then Zceil y else Zfloor y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)K:(IZR (Zfloor x) + y)%R <> IZR (Zfloor x + Zfloor y)IZR (Zceil (IZR (Zfloor x) + y)) = (IZR (Zfloor x) + IZR (Zceil y))%Rx, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)K:(IZR (Zfloor x) + y)%R <> IZR (Zfloor x + Zfloor y)IZR (Zfloor x + Zfloor y) = (IZR (Zfloor x) + IZR (Zfloor y))%Rnow rewrite plus_IZR. Qed. Section Fcore_rnd_odd. Variable beta : radix. Notation bpow e := (bpow beta e). Variable fexp : Z -> Z. Context { valid_exp : Valid_exp fexp }. Context { exists_NE_ : Exists_NE beta fexp }. Notation format := (generic_format beta fexp). Notation canonical := (canonical beta fexp). Notation cexp := (cexp beta fexp). Definition Rnd_odd_pt (x f : R) := format f /\ ((f = x)%R \/ ((Rnd_DN_pt format x f \/ Rnd_UP_pt format x f) /\ exists g : float beta, f = F2R g /\ canonical g /\ Z.even (Fnum g) = false)). Definition Rnd_odd (rnd : R -> R) := forall x : R, Rnd_odd_pt x (rnd x).x, y:RHx:x = IZR (Zfloor x)H:Z.even (Zfloor x) = trueHy:y <> IZR (Zfloor y)K:(IZR (Zfloor x) + y)%R <> IZR (Zfloor x + Zfloor y)IZR (Zfloor x + Zfloor y) = (IZR (Zfloor x) + IZR (Zfloor y))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x f : R, Rnd_odd_pt (- x) (- f) -> Rnd_odd_pt x fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x f : R, Rnd_odd_pt (- x) (- f) -> Rnd_odd_pt x fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:(- f)%R = (- x)%R \/ (Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)) /\ (exists g : float beta, (- f)%R = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Rnd_odd_pt x fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:(- f)%R = (- x)%R \/ (Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)) /\ (exists g : float beta, (- f)%R = F2R g /\ canonical g /\ Z.even (Fnum g) = false)format fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:(- f)%R = (- x)%R \/ (Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)) /\ (exists g : float beta, (- f)%R = F2R g /\ canonical g /\ Z.even (Fnum g) = false)f = x \/ (Rnd_DN_pt format x f \/ Rnd_UP_pt format x f) /\ (exists g : float beta, f = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:(- f)%R = (- x)%R \/ (Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)) /\ (exists g : float beta, (- f)%R = F2R g /\ canonical g /\ Z.even (Fnum g) = false)format (- - f)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:(- f)%R = (- x)%R \/ (Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)) /\ (exists g : float beta, (- f)%R = F2R g /\ canonical g /\ Z.even (Fnum g) = false)f = x \/ (Rnd_DN_pt format x f \/ Rnd_UP_pt format x f) /\ (exists g : float beta, f = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:(- f)%R = (- x)%R \/ (Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)) /\ (exists g : float beta, (- f)%R = F2R g /\ canonical g /\ Z.even (Fnum g) = false)f = x \/ (Rnd_DN_pt format x f \/ Rnd_UP_pt format x f) /\ (exists g : float beta, f = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:(- f)%R = (- x)%Rf = x \/ (Rnd_DN_pt format x f \/ Rnd_UP_pt format x f) /\ (exists g : float beta, f = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:(Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)) /\ (exists g : float beta, (- f)%R = F2R g /\ canonical g /\ Z.even (Fnum g) = false)f = x \/ (Rnd_DN_pt format x f \/ Rnd_UP_pt format x f) /\ (exists g : float beta, f = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:(- f)%R = (- x)%Rf = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:(Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)) /\ (exists g : float beta, (- f)%R = F2R g /\ canonical g /\ Z.even (Fnum g) = false)f = x \/ (Rnd_DN_pt format x f \/ Rnd_UP_pt format x f) /\ (exists g : float beta, f = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:(- f)%R = (- x)%R(- - f)%R = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:(Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)) /\ (exists g : float beta, (- f)%R = F2R g /\ canonical g /\ Z.even (Fnum g) = false)f = x \/ (Rnd_DN_pt format x f \/ Rnd_UP_pt format x f) /\ (exists g : float beta, f = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:(Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)) /\ (exists g : float beta, (- f)%R = F2R g /\ canonical g /\ Z.even (Fnum g) = false)f = x \/ (Rnd_DN_pt format x f \/ Rnd_UP_pt format x f) /\ (exists g : float beta, f = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:(Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)) /\ (exists g : float beta, (- f)%R = F2R g /\ canonical g /\ Z.even (Fnum g) = false)(Rnd_DN_pt format x f \/ Rnd_UP_pt format x f) /\ (exists g : float beta, f = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = false(Rnd_DN_pt format x f \/ Rnd_UP_pt format x f) /\ (exists g0 : float beta, f = F2R g0 /\ canonical g0 /\ Z.even (Fnum g0) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseRnd_DN_pt format x f \/ Rnd_UP_pt format x fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseexists g0 : float beta, f = F2R g0 /\ canonical g0 /\ Z.even (Fnum g0) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:Rnd_DN_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseRnd_DN_pt format x f \/ Rnd_UP_pt format x fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseRnd_DN_pt format x f \/ Rnd_UP_pt format x fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseexists g0 : float beta, f = F2R g0 /\ canonical g0 /\ Z.even (Fnum g0) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:Rnd_DN_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseRnd_UP_pt format x fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseRnd_DN_pt format x f \/ Rnd_UP_pt format x fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseexists g0 : float beta, f = F2R g0 /\ canonical g0 /\ Z.even (Fnum g0) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:Rnd_DN_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseRnd_UP_pt format x (- - f)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseRnd_DN_pt format x f \/ Rnd_UP_pt format x fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseexists g0 : float beta, f = F2R g0 /\ canonical g0 /\ Z.even (Fnum g0) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:Rnd_DN_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseRnd_UP_pt format (- - x) (- - f)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseRnd_DN_pt format x f \/ Rnd_UP_pt format x fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseexists g0 : float beta, f = F2R g0 /\ canonical g0 /\ Z.even (Fnum g0) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:Rnd_DN_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseforall x0 : R, format x0 -> format (- x0)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseRnd_DN_pt format x f \/ Rnd_UP_pt format x fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseexists g0 : float beta, f = F2R g0 /\ canonical g0 /\ Z.even (Fnum g0) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseRnd_DN_pt format x f \/ Rnd_UP_pt format x fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseexists g0 : float beta, f = F2R g0 /\ canonical g0 /\ Z.even (Fnum g0) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseRnd_DN_pt format x fbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseexists g0 : float beta, f = F2R g0 /\ canonical g0 /\ Z.even (Fnum g0) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseRnd_DN_pt format x (- - f)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseexists g0 : float beta, f = F2R g0 /\ canonical g0 /\ Z.even (Fnum g0) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseRnd_DN_pt format (- - x) (- - f)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseexists g0 : float beta, f = F2R g0 /\ canonical g0 /\ Z.even (Fnum g0) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H:Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseforall x0 : R, format x0 -> format (- x0)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseexists g0 : float beta, f = F2R g0 /\ canonical g0 /\ Z.even (Fnum g0) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseexists g0 : float beta, f = F2R g0 /\ canonical g0 /\ Z.even (Fnum g0) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falsef = F2R {| Fnum := - Fnum g; Fexp := Fexp g |} /\ canonical {| Fnum := - Fnum g; Fexp := Fexp g |} /\ Z.even (Fnum {| Fnum := - Fnum g; Fexp := Fexp g |}) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falsef = F2R {| Fnum := - Fnum g; Fexp := Fexp g |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falsecanonical {| Fnum := - Fnum g; Fexp := Fexp g |} /\ Z.even (Fnum {| Fnum := - Fnum g; Fexp := Fexp g |}) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falsef = (- F2R {| Fnum := Fnum g; Fexp := Fexp g |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falsecanonical {| Fnum := - Fnum g; Fexp := Fexp g |} /\ Z.even (Fnum {| Fnum := - Fnum g; Fexp := Fexp g |}) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = false(- - f)%R = (- F2R {| Fnum := Fnum g; Fexp := Fexp g |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falsecanonical {| Fnum := - Fnum g; Fexp := Fexp g |} /\ Z.even (Fnum {| Fnum := - Fnum g; Fexp := Fexp g |}) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falsecanonical {| Fnum := - Fnum g; Fexp := Fexp g |} /\ Z.even (Fnum {| Fnum := - Fnum g; Fexp := Fexp g |}) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falsecanonical {| Fnum := - Fnum g; Fexp := Fexp g |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseZ.even (Fnum {| Fnum := - Fnum g; Fexp := Fexp g |}) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseZ.even (Fnum {| Fnum := - Fnum g; Fexp := Fexp g |}) = falsenow rewrite Z.even_opp. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f:RH1:format (- f)H2:Rnd_DN_pt format (- x) (- f) \/ Rnd_UP_pt format (- x) (- f)g:float betaHg1:(- f)%R = F2R gHg2:canonical gHg3:Z.even (Fnum g) = falseZ.even (- Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, round beta fexp Zrnd_odd (- x) = (- round beta fexp Zrnd_odd x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, round beta fexp Zrnd_odd (- x) = (- round beta fexp Zrnd_odd x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RF2R {| Fnum := Zrnd_odd (scaled_mantissa beta fexp (- x)); Fexp := cexp (- x) |} = (- F2R {| Fnum := Zrnd_odd (scaled_mantissa beta fexp x); Fexp := cexp x |})%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RF2R {| Fnum := Zrnd_odd (scaled_mantissa beta fexp (- x)); Fexp := cexp (- x) |} = F2R {| Fnum := - Zrnd_odd (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:R(IZR (Zrnd_odd (scaled_mantissa beta fexp (- x))) * bpow (cexp (- x)))%R = (IZR (- Zrnd_odd (scaled_mantissa beta fexp x)) * bpow (cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RZrnd_odd (scaled_mantissa beta fexp (- x)) = (- Zrnd_odd (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RZrnd_odd (- scaled_mantissa beta fexp x) = (- Zrnd_odd (scaled_mantissa beta fexp x))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RZrnd_odd (- r) = (- Zrnd_odd r)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:R(if Req_EM_T (- r) (IZR (Zfloor (- r))) then Zfloor (- r) else if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Req_EM_T r (IZR (Zfloor r)) then Zfloor r else if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:R(- r)%R = IZR (Zfloor (- r)) -> Zfloor (- r) = (- (if Req_EM_T r (IZR (Zfloor r)) then Zfloor r else if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:R(- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Req_EM_T r (IZR (Zfloor r)) then Zfloor r else if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:Rr = IZR (Zfloor r) -> (- r)%R = IZR (Zfloor (- r)) -> Zfloor (- r) = (- Zfloor r)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:Rr <> IZR (Zfloor r) -> (- r)%R = IZR (Zfloor (- r)) -> Zfloor (- r) = (- (if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:R(- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Req_EM_T r (IZR (Zfloor r)) then Zfloor r else if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r = IZR (Zfloor r)Y2:(- r)%R = IZR (Zfloor (- r))Zfloor (- r) = (- Zfloor r)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:Rr <> IZR (Zfloor r) -> (- r)%R = IZR (Zfloor (- r)) -> Zfloor (- r) = (- (if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:R(- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Req_EM_T r (IZR (Zfloor r)) then Zfloor r else if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r = IZR (Zfloor r)Y2:(- r)%R = IZR (Zfloor (- r))IZR (Zfloor (- r)) = IZR (- Zfloor r)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:Rr <> IZR (Zfloor r) -> (- r)%R = IZR (Zfloor (- r)) -> Zfloor (- r) = (- (if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:R(- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Req_EM_T r (IZR (Zfloor r)) then Zfloor r else if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:Rr <> IZR (Zfloor r) -> (- r)%R = IZR (Zfloor (- r)) -> Zfloor (- r) = (- (if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:R(- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Req_EM_T r (IZR (Zfloor r)) then Zfloor r else if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R = IZR (Zfloor (- r))Zfloor (- r) = (- (if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:R(- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Req_EM_T r (IZR (Zfloor r)) then Zfloor r else if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R = IZR (Zfloor (- r))r = IZR (Zfloor r)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:R(- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Req_EM_T r (IZR (Zfloor r)) then Zfloor r else if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R = IZR (Zfloor (- r))r = IZR (Zfloor (- - r))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:R(- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Req_EM_T r (IZR (Zfloor r)) then Zfloor r else if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R = IZR (Zfloor (- r))r = IZR (Zfloor (IZR (- Zfloor (- r))))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:R(- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Req_EM_T r (IZR (Zfloor r)) then Zfloor r else if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R = IZR (Zfloor (- r))r = IZR (- Zfloor (- r))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:R(- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Req_EM_T r (IZR (Zfloor r)) then Zfloor r else if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R = IZR (Zfloor (- r))r = (- - r)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:R(- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Req_EM_T r (IZR (Zfloor r)) then Zfloor r else if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:R(- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Req_EM_T r (IZR (Zfloor r)) then Zfloor r else if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:Rr = IZR (Zfloor r) -> (- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- Zfloor r)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:Rr <> IZR (Zfloor r) -> (- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r = IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))(if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- Zfloor r)%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:Rr <> IZR (Zfloor r) -> (- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r = IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))(- r)%R = IZR (Zfloor (- r))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:Rr <> IZR (Zfloor r) -> (- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r = IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))(- r)%R = IZR (Zfloor (- IZR (Zfloor r)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:Rr <> IZR (Zfloor r) -> (- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r = IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))(- r)%R = IZR (- Zfloor r)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:Rr <> IZR (Zfloor r) -> (- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:Rr <> IZR (Zfloor r) -> (- r)%R <> IZR (Zfloor (- r)) -> (if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))(if Z.even (Zfloor (- r)) then Zceil (- r) else Zfloor (- r)) = (- (if Z.even (Zfloor r) then Zceil r else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))(if Z.even (Zfloor (- r)) then (- Zfloor r)%Z else Zfloor (- r)) = (- (if Z.even (Zfloor r) then - Zfloor (- r) else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))(if negb (Z.even (Zfloor r)) then (- Zfloor r)%Z else Zfloor (- r)) = (- (if Z.even (Zfloor r) then - Zfloor (- r) else Zfloor r))%Zbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))negb (Z.even (Zfloor r)) = Z.even (Zfloor (- r))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))negb (Z.even (Zfloor r)) = Z.even (Zfloor (- r))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))negb (Z.even (Zfloor r)) = Z.even (Zceil r)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))Z.even (Zceil r) = Z.even (Zfloor (- r))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))negb (Z.even (Zfloor r)) = Z.even (Zfloor r + 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))IZR (Zfloor r) <> rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))Z.even (Zceil r) = Z.even (Zfloor (- r))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))negb (Z.even (Zfloor r)) = Bool.eqb (Z.even (Zfloor r)) (Z.even 1)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))IZR (Zfloor r) <> rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))Z.even (Zceil r) = Z.even (Zfloor (- r))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))IZR (Zfloor r) <> rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))Z.even (Zceil r) = Z.even (Zfloor (- r))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))Z.even (Zceil r) = Z.even (Zfloor (- r))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, r:RY1:r <> IZR (Zfloor r)Y2:(- r)%R <> IZR (Zfloor (- r))Z.even (Zceil r) = Z.even (- Zfloor (- r))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xapply cexp_opp. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:Rcexp (- x) = cexp xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexp(forall x : R, (0 < x)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)) -> forall x : R, Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, (0 < x)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:R(0 <= x)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:R(x < 0)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, (0 < x)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:RH0:(0 < x)%RRnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:RH0:0%R = xRnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:R(x < 0)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, (0 < x)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:RH0:0%R = xRnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:R(x < 0)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, (0 < x)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:RH0:0%R = xRnd_odd_pt 0 (round beta fexp Zrnd_odd 0)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:R(x < 0)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, (0 < x)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:RH0:0%R = xRnd_odd_pt 0 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:R(x < 0)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, (0 < x)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:RH0:0%R = xformat 0beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:RH0:0%R = x0%R = 0%R \/ (Rnd_DN_pt format 0 0 \/ Rnd_UP_pt format 0 0) /\ (exists g : float beta, 0%R = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:R(x < 0)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, (0 < x)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:RH0:0%R = x0%R = 0%R \/ (Rnd_DN_pt format 0 0 \/ Rnd_UP_pt format 0 0) /\ (exists g : float beta, 0%R = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:R(x < 0)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, (0 < x)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:R(x < 0)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, (0 < x)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:RHx:(x < 0)%RRnd_odd_pt (- x) (- round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, (0 < x)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:RHx:(x < 0)%RRnd_odd_pt (- x) (round beta fexp Zrnd_odd (- x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, (0 < x)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpH:forall x0 : R, (0 < x0)%R -> Rnd_odd_pt x0 (round beta fexp Zrnd_odd x0)x:RHx:(x < 0)%R(0 < - x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, (0 < x)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x : R, (0 < x)%R -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%RRnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Rformat (round beta fexp Zrnd_odd x) -> Rnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:Rformat o -> Rnd_odd_pt x obeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oRnd_odd_pt x obeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oformat obeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oo = x \/ (Rnd_DN_pt format x o \/ Rnd_UP_pt format x o) /\ (exists g : float beta, o = F2R g /\ canonical g /\ Z.even (Fnum g) = false)(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oo = x \/ (Rnd_DN_pt format x o \/ Rnd_UP_pt format x o) /\ (exists g : float beta, o = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o = xo = x \/ (Rnd_DN_pt format x o \/ Rnd_UP_pt format x o) /\ (exists g : float beta, o = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xo = x \/ (Rnd_DN_pt format x o \/ Rnd_UP_pt format x o) /\ (exists g : float beta, o = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xo = x \/ (Rnd_DN_pt format x o \/ Rnd_UP_pt format x o) /\ (exists g : float beta, o = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> x(Rnd_DN_pt format x o \/ Rnd_UP_pt format x o) /\ (exists g : float beta, o = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xo = round beta fexp Zfloor x \/ o = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil x(Rnd_DN_pt format x o \/ Rnd_UP_pt format x o) /\ (exists g : float beta, o = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> x(IZR (Zrnd_odd (scaled_mantissa beta fexp x)) * bpow (cexp x))%R = (IZR (Zfloor (scaled_mantissa beta fexp x)) * bpow (cexp x))%R \/ (IZR (Zrnd_odd (scaled_mantissa beta fexp x)) * bpow (cexp x))%R = (IZR (Zceil (scaled_mantissa beta fexp x)) * bpow (cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil x(Rnd_DN_pt format x o \/ Rnd_UP_pt format x o) /\ (exists g : float beta, o = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xZrnd_odd (scaled_mantissa beta fexp x) = Zfloor (scaled_mantissa beta fexp x) -> (IZR (Zrnd_odd (scaled_mantissa beta fexp x)) * bpow (cexp x))%R = (IZR (Zfloor (scaled_mantissa beta fexp x)) * bpow (cexp x))%R \/ (IZR (Zrnd_odd (scaled_mantissa beta fexp x)) * bpow (cexp x))%R = (IZR (Zceil (scaled_mantissa beta fexp x)) * bpow (cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xZrnd_odd (scaled_mantissa beta fexp x) = Zceil (scaled_mantissa beta fexp x) -> (IZR (Zrnd_odd (scaled_mantissa beta fexp x)) * bpow (cexp x))%R = (IZR (Zfloor (scaled_mantissa beta fexp x)) * bpow (cexp x))%R \/ (IZR (Zrnd_odd (scaled_mantissa beta fexp x)) * bpow (cexp x))%R = (IZR (Zceil (scaled_mantissa beta fexp x)) * bpow (cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil x(Rnd_DN_pt format x o \/ Rnd_UP_pt format x o) /\ (exists g : float beta, o = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xZrnd_odd (scaled_mantissa beta fexp x) = Zceil (scaled_mantissa beta fexp x) -> (IZR (Zrnd_odd (scaled_mantissa beta fexp x)) * bpow (cexp x))%R = (IZR (Zfloor (scaled_mantissa beta fexp x)) * bpow (cexp x))%R \/ (IZR (Zrnd_odd (scaled_mantissa beta fexp x)) * bpow (cexp x))%R = (IZR (Zceil (scaled_mantissa beta fexp x)) * bpow (cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil x(Rnd_DN_pt format x o \/ Rnd_UP_pt format x o) /\ (exists g : float beta, o = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil x(Rnd_DN_pt format x o \/ Rnd_UP_pt format x o) /\ (exists g : float beta, o = F2R g /\ canonical g /\ Z.even (Fnum g) = false)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xRnd_DN_pt format x o \/ Rnd_UP_pt format x obeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xexists g : float beta, o = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor xRnd_DN_pt format x (round beta fexp Zfloor x) \/ Rnd_UP_pt format x (round beta fexp Zfloor x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zceil xRnd_DN_pt format x (round beta fexp Zceil x) \/ Rnd_UP_pt format x (round beta fexp Zceil x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xexists g : float beta, o = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zceil xRnd_DN_pt format x (round beta fexp Zceil x) \/ Rnd_UP_pt format x (round beta fexp Zceil x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xexists g : float beta, o = F2R g /\ canonical g /\ Z.even (Fnum g) = false(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xexists g : float beta, o = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xexists g : float beta, F2R {| Fnum := if Req_EM_T (scaled_mantissa beta fexp x) (IZR (Zfloor (scaled_mantissa beta fexp x))) then Zfloor (scaled_mantissa beta fexp x) else if Z.even (Zfloor (scaled_mantissa beta fexp x)) then Zceil (scaled_mantissa beta fexp x) else Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xscaled_mantissa beta fexp x = IZR (Zfloor (scaled_mantissa beta fexp x)) -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xscaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x)) -> exists g : float beta, F2R {| Fnum := if Z.even (Zfloor (scaled_mantissa beta fexp x)) then Zceil (scaled_mantissa beta fexp x) else Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xT:scaled_mantissa beta fexp x = IZR (Zfloor (scaled_mantissa beta fexp x))exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xscaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x)) -> exists g : float beta, F2R {| Fnum := if Z.even (Zfloor (scaled_mantissa beta fexp x)) then Zceil (scaled_mantissa beta fexp x) else Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xT:scaled_mantissa beta fexp x = IZR (Zfloor (scaled_mantissa beta fexp x))o = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xscaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x)) -> exists g : float beta, F2R {| Fnum := if Z.even (Zfloor (scaled_mantissa beta fexp x)) then Zceil (scaled_mantissa beta fexp x) else Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xT:scaled_mantissa beta fexp x = IZR (Zfloor (scaled_mantissa beta fexp x))format xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xscaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x)) -> exists g : float beta, F2R {| Fnum := if Z.even (Zfloor (scaled_mantissa beta fexp x)) then Zceil (scaled_mantissa beta fexp x) else Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xT:scaled_mantissa beta fexp x = IZR (Zfloor (scaled_mantissa beta fexp x))x = (IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xscaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x)) -> exists g : float beta, F2R {| Fnum := if Z.even (Zfloor (scaled_mantissa beta fexp x)) then Zceil (scaled_mantissa beta fexp x) else Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xT:scaled_mantissa beta fexp x = IZR (Zfloor (scaled_mantissa beta fexp x))(scaled_mantissa beta fexp x * bpow (cexp x))%R = (IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xscaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x)) -> exists g : float beta, F2R {| Fnum := if Z.even (Zfloor (scaled_mantissa beta fexp x)) then Zceil (scaled_mantissa beta fexp x) else Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xT:scaled_mantissa beta fexp x = IZR (Zfloor (scaled_mantissa beta fexp x))IZR (Zfloor (scaled_mantissa beta fexp x)) = IZR (Ztrunc (scaled_mantissa beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xscaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x)) -> exists g : float beta, F2R {| Fnum := if Z.even (Zfloor (scaled_mantissa beta fexp x)) then Zceil (scaled_mantissa beta fexp x) else Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xT:scaled_mantissa beta fexp x = IZR (Zfloor (scaled_mantissa beta fexp x))(0 <= scaled_mantissa beta fexp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xscaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x)) -> exists g : float beta, F2R {| Fnum := if Z.even (Zfloor (scaled_mantissa beta fexp x)) then Zceil (scaled_mantissa beta fexp x) else Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xT:scaled_mantissa beta fexp x = IZR (Zfloor (scaled_mantissa beta fexp x))(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xT:scaled_mantissa beta fexp x = IZR (Zfloor (scaled_mantissa beta fexp x))(0 <= bpow (- cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xscaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x)) -> exists g : float beta, F2R {| Fnum := if Z.even (Zfloor (scaled_mantissa beta fexp x)) then Zceil (scaled_mantissa beta fexp x) else Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xT:scaled_mantissa beta fexp x = IZR (Zfloor (scaled_mantissa beta fexp x))(0 <= bpow (- cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xscaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x)) -> exists g : float beta, F2R {| Fnum := if Z.even (Zfloor (scaled_mantissa beta fexp x)) then Zceil (scaled_mantissa beta fexp x) else Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xscaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x)) -> exists g : float beta, F2R {| Fnum := if Z.even (Zfloor (scaled_mantissa beta fexp x)) then Zceil (scaled_mantissa beta fexp x) else Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))exists g : float beta, F2R {| Fnum := if Z.even (Zfloor (scaled_mantissa beta fexp x)) then Zceil (scaled_mantissa beta fexp x) else Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = false(* . *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = true -> exists g : float beta, F2R {| Fnum := Zceil (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))format (round beta fexp Zceil x) -> Z.even (Zfloor (scaled_mantissa beta fexp x)) = true -> exists g : float beta, F2R {| Fnum := Zceil (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))round beta fexp Zceil x = F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp (round beta fexp Zceil x)); Fexp := cexp (round beta fexp Zceil x) |} -> Z.even (Zfloor (scaled_mantissa beta fexp x)) = true -> exists g : float beta, F2R {| Fnum := Zceil (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Rf = F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp f); Fexp := cexp f |} -> Z.even (Zfloor (scaled_mantissa beta fexp x)) = true -> exists g : float beta, F2R {| Fnum := Zceil (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zf = F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp f); Fexp := ef |} -> Z.even (Zfloor (scaled_mantissa beta fexp x)) = true -> exists g : float beta, F2R {| Fnum := Zceil (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):Zf = F2R {| Fnum := mf; Fexp := ef |} -> Z.even (Zfloor (scaled_mantissa beta fexp x)) = true -> exists g : float beta, F2R {| Fnum := Zceil (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueF2R {| Fnum := Zceil (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R {| Fnum := mf; Fexp := ef |} /\ canonical {| Fnum := mf; Fexp := ef |} /\ Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueF2R {| Fnum := Zceil (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R {| Fnum := mf; Fexp := ef |} /\ Fexp {| Fnum := mf; Fexp := ef |} = cexp (F2R {| Fnum := mf; Fexp := ef |}) /\ Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueF2R {| Fnum := Zceil (scaled_mantissa beta fexp x); Fexp := cexp x |} = f /\ Fexp {| Fnum := mf; Fexp := ef |} = cexp f /\ Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueZ.even (Fnum {| Fnum := mf; Fexp := ef |}) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueZ.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Zfloor (scaled_mantissa beta fexp x)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = truenegb (Z.even (Zfloor (scaled_mantissa beta fexp x))) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueZ.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Zfloor (scaled_mantissa beta fexp x)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueZ.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = truenegb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |})) = negb (Z.even (Zfloor (scaled_mantissa beta fexp x)))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueZ.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true(0 <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true(0 < round beta fexp Zfloor x)%R -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true(round beta fexp Zfloor 0 <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true(0 < round beta fexp Zfloor x)%R -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true(0 < round beta fexp Zfloor x)%R -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true(0 < round beta fexp Zfloor x)%R -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RZ.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RDN_UP_parity_prop beta fexp -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%R(forall (x0 : R) (xd xu : float beta), ~ format x0 -> canonical xd -> canonical xu -> F2R xd = round beta fexp Zfloor x0 -> F2R xu = round beta fexp Zceil x0 -> Z.even (Fnum xu) = negb (Z.even (Fnum xd))) -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%R~ format xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rx <> F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%R(scaled_mantissa beta fexp x * bpow (cexp x))%R <> F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%R(scaled_mantissa beta fexp x * bpow (cexp x))%R <> (IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rbpow (cexp x) <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rscaled_mantissa beta fexp x <> IZR (Ztrunc (scaled_mantissa beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rscaled_mantissa beta fexp x <> IZR (Ztrunc (scaled_mantissa beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rscaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%R(0 <= scaled_mantissa beta fexp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%R(0 <= scaled_mantissa beta fexp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%R(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%R(0 <= bpow (- cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%R(0 <= bpow (- cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RFexp {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = cexp (F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |})beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcexp x = cexp (F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |})beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RFexp {| Fnum := mf; Fexp := ef |} = cexp (F2R {| Fnum := mf; Fexp := ef |})beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%RF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Ztrunc (round beta fexp Zceil x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rround beta fexp Ztrunc (round beta fexp Zceil x) = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:(0 < round beta fexp Zfloor x)%Rround beta fexp Ztrunc (round beta fexp Zceil x) = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = true0%R = round beta fexp Zfloor x -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xZ.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xZ.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := 0; Fexp := fexp (mag beta 0) |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xDN_UP_parity_prop beta fexp -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := 0; Fexp := fexp (mag beta 0) |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor x(forall (x0 : R) (xd xu : float beta), ~ format x0 -> canonical xd -> canonical xu -> F2R xd = round beta fexp Zfloor x0 -> F2R xu = round beta fexp Zceil x0 -> Z.even (Fnum xu) = negb (Z.even (Fnum xd))) -> Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = negb (Z.even (Fnum {| Fnum := 0; Fexp := fexp (mag beta 0) |}))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor x~ format xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := 0; Fexp := fexp (mag beta 0) |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := 0; Fexp := fexp (mag beta 0) |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xx <> F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := 0; Fexp := fexp (mag beta 0) |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := 0; Fexp := fexp (mag beta 0) |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor x(scaled_mantissa beta fexp x * bpow (cexp x))%R <> F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := 0; Fexp := fexp (mag beta 0) |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := 0; Fexp := fexp (mag beta 0) |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor x(scaled_mantissa beta fexp x * bpow (cexp x))%R <> (IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := 0; Fexp := fexp (mag beta 0) |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := 0; Fexp := fexp (mag beta 0) |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xbpow (cexp x) <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xscaled_mantissa beta fexp x <> IZR (Ztrunc (scaled_mantissa beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := 0; Fexp := fexp (mag beta 0) |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := 0; Fexp := fexp (mag beta 0) |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xscaled_mantissa beta fexp x <> IZR (Ztrunc (scaled_mantissa beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := 0; Fexp := fexp (mag beta 0) |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := 0; Fexp := fexp (mag beta 0) |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xscaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor x(0 <= scaled_mantissa beta fexp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := 0; Fexp := fexp (mag beta 0) |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := 0; Fexp := fexp (mag beta 0) |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor x(0 <= scaled_mantissa beta fexp x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := 0; Fexp := fexp (mag beta 0) |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := 0; Fexp := fexp (mag beta 0) |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor x(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor x(0 <= bpow (- cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := 0; Fexp := fexp (mag beta 0) |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := 0; Fexp := fexp (mag beta 0) |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor x(0 <= bpow (- cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := 0; Fexp := fexp (mag beta 0) |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := 0; Fexp := fexp (mag beta 0) |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := 0; Fexp := fexp (mag beta 0) |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := 0; Fexp := fexp (mag beta 0) |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xcanonical {| Fnum := mf; Fexp := ef |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := 0; Fexp := fexp (mag beta 0) |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFexp {| Fnum := mf; Fexp := ef |} = cexp (F2R {| Fnum := mf; Fexp := ef |})beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := 0; Fexp := fexp (mag beta 0) |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := 0; Fexp := fexp (mag beta 0) |} = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xF2R {| Fnum := mf; Fexp := ef |} = round beta fexp Ztrunc (round beta fexp Zceil x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xround beta fexp Ztrunc (round beta fexp Zceil x) = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xround beta fexp Ztrunc (round beta fexp Zceil x) = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xFnum {| Fnum := 0; Fexp := fexp (mag beta 0) |} = Fnum {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |}beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor x0%Z = Zfloor (scaled_mantissa beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor x(0 * bpow (cexp x))%R = (IZR (Zfloor (scaled_mantissa beta fexp x)) * bpow (cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xbpow (cexp x) <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = (IZR (Zfloor (scaled_mantissa beta fexp x)) * bpow (cexp x))%R(0 * bpow (cexp x))%R = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xbpow (cexp x) <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))f:=round beta fexp Zceil x:Ref:=cexp f:Zmf:=Ztrunc (scaled_mantissa beta fexp f):ZH0:f = F2R {| Fnum := mf; Fexp := ef |}H1:Z.even (Zfloor (scaled_mantissa beta fexp x)) = trueY:0%R = round beta fexp Zfloor xbpow (cexp x) <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = false(* . *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Z.even (Zfloor (scaled_mantissa beta fexp x)) = false -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = falseexists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false(0 <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false(0 < round beta fexp Zfloor x)%R -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false0%R = round beta fexp Zfloor x -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false(round beta fexp Zfloor 0 <= round beta fexp Zfloor x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false(0 < round beta fexp Zfloor x)%R -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false0%R = round beta fexp Zfloor x -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false(0 <= x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false(0 < round beta fexp Zfloor x)%R -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false0%R = round beta fexp Zfloor x -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false(0 < round beta fexp Zfloor x)%R -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false0%R = round beta fexp Zfloor x -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = falseHrx:(0 < round beta fexp Zfloor x)%Rexists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false0%R = round beta fexp Zfloor x -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = falseHrx:(0 < round beta fexp Zfloor x)%Ref:=cexp x:Zexists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := ef |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false0%R = round beta fexp Zfloor x -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = falseHrx:(0 < round beta fexp Zfloor x)%Ref:=cexp x:Zmf:=Zfloor (scaled_mantissa beta fexp x):Zexists g : float beta, F2R {| Fnum := mf; Fexp := ef |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false0%R = round beta fexp Zfloor x -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = falseHrx:(0 < round beta fexp Zfloor x)%Ref:=cexp x:Zmf:=Zfloor (scaled_mantissa beta fexp x):ZF2R {| Fnum := mf; Fexp := ef |} = F2R {| Fnum := mf; Fexp := ef |} /\ canonical {| Fnum := mf; Fexp := ef |} /\ Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false0%R = round beta fexp Zfloor x -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = falseHrx:(0 < round beta fexp Zfloor x)%Ref:=cexp x:Zmf:=Zfloor (scaled_mantissa beta fexp x):ZF2R {| Fnum := mf; Fexp := ef |} = F2R {| Fnum := mf; Fexp := ef |} /\ Fexp {| Fnum := mf; Fexp := ef |} = cexp (F2R {| Fnum := mf; Fexp := ef |}) /\ Z.even (Fnum {| Fnum := mf; Fexp := ef |}) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false0%R = round beta fexp Zfloor x -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = falseHrx:(0 < round beta fexp Zfloor x)%Ref:=cexp x:Zmf:=Zfloor (scaled_mantissa beta fexp x):ZFexp {| Fnum := mf; Fexp := ef |} = cexp (F2R {| Fnum := mf; Fexp := ef |})beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false0%R = round beta fexp Zfloor x -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = falseHrx:(0 < round beta fexp Zfloor x)%Ref:=cexp x:Zmf:=Zfloor (scaled_mantissa beta fexp x):Zef = cexp (F2R {| Fnum := mf; Fexp := ef |})beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false0%R = round beta fexp Zfloor x -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = falseHrx:(0 < round beta fexp Zfloor x)%Ref:=cexp x:Zmf:=Zfloor (scaled_mantissa beta fexp x):Zef = cexp (round beta fexp Zfloor x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = falseHrx:(0 < round beta fexp Zfloor x)%Ref:=cexp x:Zmf:=Zfloor (scaled_mantissa beta fexp x):Zcexp (round beta fexp Zfloor x) = cexp (F2R {| Fnum := mf; Fexp := ef |})beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false0%R = round beta fexp Zfloor x -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = falseHrx:(0 < round beta fexp Zfloor x)%Ref:=cexp x:Zmf:=Zfloor (scaled_mantissa beta fexp x):Zcexp (round beta fexp Zfloor x) = cexp (F2R {| Fnum := mf; Fexp := ef |})beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false0%R = round beta fexp Zfloor x -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Y:Z.even (Zfloor (scaled_mantissa beta fexp x)) = false0%R = round beta fexp Zfloor x -> exists g : float beta, F2R {| Fnum := Zfloor (scaled_mantissa beta fexp x); Fexp := cexp x |} = F2R g /\ canonical g /\ Z.even (Fnum g) = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Hrx:0%R = round beta fexp Zfloor xZ.even (Zfloor (scaled_mantissa beta fexp x)) <> falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Hrx:0%R = round beta fexp Zfloor xZ.even 0 <> falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Hrx:0%R = round beta fexp Zfloor x0%Z = Zfloor (scaled_mantissa beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Hrx:0%R = round beta fexp Zfloor x0%Z = Zfloor (scaled_mantissa beta fexp x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Hrx:0%R = round beta fexp Zfloor x(0 * bpow (cexp x))%R = (IZR (Zfloor (scaled_mantissa beta fexp x)) * bpow (cexp x))%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Hrx:0%R = round beta fexp Zfloor xbpow (cexp x) <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Hrx:0%R = (IZR (Zfloor (scaled_mantissa beta fexp x)) * bpow (cexp x))%R(0 * bpow (cexp x))%R = 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Hrx:0%R = round beta fexp Zfloor xbpow (cexp x) <> 0%Rapply Rgt_not_eq, bpow_gt_0. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx:RHxp:(0 < x)%Ro:=round beta fexp Zrnd_odd x:RHo:format oHx:o <> xH:o = round beta fexp Zfloor x \/ o = round beta fexp Zceil xL:scaled_mantissa beta fexp x <> IZR (Zfloor (scaled_mantissa beta fexp x))Hrx:0%R = round beta fexp Zfloor xbpow (cexp x) <> 0%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x f1 f2 : R, Rnd_odd_pt x f1 -> Rnd_odd_pt x f2 -> f1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpforall x f1 f2 : R, Rnd_odd_pt x f1 -> Rnd_odd_pt x f2 -> f1 = f2(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)f1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:format xf1 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:format xx = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:format x(Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false) -> f1 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:format xx = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:format xJ:Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1J':Rnd_DN_pt format x f1f1 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:format xJ:Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1J':Rnd_UP_pt format x f1f1 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:format xx = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:format xJ:Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1J':Rnd_UP_pt format x f1f1 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:format xx = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:format xx = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:format x(Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false) -> x = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:format xJ:Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2J':Rnd_DN_pt format x f2f2 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:format xJ:Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2J':Rnd_UP_pt format x f2f2 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:format xJ:Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2J':Rnd_UP_pt format x f2f2 = xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:~ format xf1 = f2(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = x \/ (Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1) /\ (exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)Ff2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:f1 = xFf2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:f2 = x \/ (Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2) /\ (exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = false)L:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:f2 = xL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1 \/ Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2 \/ Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_UP_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_UP_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xtrue = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_UP_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xtrue = Z.even (Fnum gg)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_UP_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xtrue = negb (Z.even (Fnum ff))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_UP_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xnegb (Z.even (Fnum ff)) = Z.even (Fnum gg)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_UP_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xnegb (Z.even (Fnum ff)) = Z.even (Fnum gg)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_UP_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xZ.even (Fnum gg) = negb (Z.even (Fnum ff))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_UP_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xDN_UP_parity_prop beta fexp -> Z.even (Fnum gg) = negb (Z.even (Fnum ff))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_UP_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xF2R ff = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_UP_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xF2R gg = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_UP_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xRnd_DN_pt format x (round beta fexp Zfloor x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_UP_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xF2R gg = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_UP_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xF2R gg = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_DN_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_UP_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xRnd_UP_pt format x (round beta fexp Zceil x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2(* *)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_DN_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_DN_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_DN_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xtrue = falsebeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_DN_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xtrue = Z.even (Fnum ff)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_DN_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xtrue = negb (Z.even (Fnum gg))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_DN_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xnegb (Z.even (Fnum gg)) = Z.even (Fnum ff)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_DN_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xnegb (Z.even (Fnum gg)) = Z.even (Fnum ff)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_DN_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xZ.even (Fnum ff) = negb (Z.even (Fnum gg))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_DN_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xDN_UP_parity_prop beta fexp -> Z.even (Fnum ff) = negb (Z.even (Fnum gg))beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_DN_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xF2R gg = round beta fexp Zfloor xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_DN_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xF2R ff = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_DN_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xRnd_DN_pt format x (round beta fexp Zfloor x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_DN_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xF2R ff = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_DN_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xF2R ff = round beta fexp Zceil xbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1ff:float betaK1:f1 = F2R ffK2:canonical ffK3:Z.even (Fnum ff) = falseFf2:format f2H2:Rnd_DN_pt format x f2gg:float betaL1:f2 = F2R ggL2:canonical ggL3:Z.even (Fnum gg) = falseL:~ format xRnd_UP_pt format x (round beta fexp Zceil x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2apply Rnd_UP_pt_unique with format x; assumption. Qed.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, f1, f2:RFf1:format f1H1:Rnd_UP_pt format x f1H1':exists g : float beta, f1 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseFf2:format f2H2:Rnd_UP_pt format x f2H2':exists g : float beta, f2 = F2R g /\ canonical g /\ Z.even (Fnum g) = falseL:~ format xf1 = f2beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpround_pred_monotone Rnd_odd_ptbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpround_pred_monotone Rnd_odd_ptbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, y, f, g:RH1:Rnd_odd_pt x fH2:Rnd_odd_pt y gHxy:(x <= y)%R(f <= g)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, y, f, g:RH1:Rnd_odd_pt x fH2:Rnd_odd_pt y gHxy:(x <= y)%R(f <= round beta fexp Zrnd_odd x)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, y, f, g:RH1:Rnd_odd_pt x fH2:Rnd_odd_pt y gHxy:(x <= y)%R(round beta fexp Zrnd_odd x <= g)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, y, f, g:RH1:Rnd_odd_pt x fH2:Rnd_odd_pt y gHxy:(x <= y)%RRnd_odd_pt x (round beta fexp Zrnd_odd x)beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, y, f, g:RH1:Rnd_odd_pt x fH2:Rnd_odd_pt y gHxy:(x <= y)%R(round beta fexp Zrnd_odd x <= g)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, y, f, g:RH1:Rnd_odd_pt x fH2:Rnd_odd_pt y gHxy:(x <= y)%R(round beta fexp Zrnd_odd x <= g)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, y, f, g:RH1:Rnd_odd_pt x fH2:Rnd_odd_pt y gHxy:(x <= y)%R(round beta fexp Zrnd_odd x <= round beta fexp Zrnd_odd y)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, y, f, g:RH1:Rnd_odd_pt x fH2:Rnd_odd_pt y gHxy:(x <= y)%R(round beta fexp Zrnd_odd y <= g)%Rbeta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, y, f, g:RH1:Rnd_odd_pt x fH2:Rnd_odd_pt y gHxy:(x <= y)%R(round beta fexp Zrnd_odd y <= g)%Rapply round_odd_pt. Qed. End Fcore_rnd_odd. Section Odd_prop_aux. Variable beta : radix. Hypothesis Even_beta: Z.even (radix_val beta)=true. Notation bpow e := (bpow beta e). Variable fexp : Z -> Z. Variable fexpe : Z -> Z. Context { valid_exp : Valid_exp fexp }. Context { exists_NE_ : Exists_NE beta fexp }. (* for underflow reason *) Context { valid_expe : Valid_exp fexpe }. Context { exists_NE_e : Exists_NE beta fexpe }. (* for defining rounding to odd *) Hypothesis fexpe_fexp: forall e, (fexpe e <= fexp e -2)%Z.beta:radixfexp:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpx, y, f, g:RH1:Rnd_odd_pt x fH2:Rnd_odd_pt y gHxy:(x <= y)%RRnd_odd_pt y (round beta fexp Zrnd_odd y)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zforall x : R, generic_format beta fexp x -> generic_format beta fexpe xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zforall x : R, generic_format beta fexp x -> generic_format beta fexpe xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RHx:generic_format beta fexp xgeneric_format beta fexpe xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RHx:generic_format beta fexp xHx2:x <> 0%R(fexpe (mag beta x) <= fexp (mag beta x))%Zomega. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RHx:generic_format beta fexp xHx2:x <> 0%R(fexpe (mag beta x) <= fexp (mag beta x) - 2)%Z -> (fexpe (mag beta x) <= fexp (mag beta x))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zforall (c : Z -> Z) (x : R), (exists f : float beta, F2R f = x /\ (c (mag beta x) < Fexp f)%Z) -> exists f : float beta, F2R f = x /\ canonical beta c f /\ Z.even (Fnum f) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zforall (c : Z -> Z) (x : R), (exists f : float beta, F2R f = x /\ (c (mag beta x) < Fexp f)%Z) -> exists f : float beta, F2R f = x /\ canonical beta c f /\ Z.even (Fnum f) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%Zexists f : float beta, F2R f = x /\ canonical beta c f /\ Z.even (Fnum f) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZF2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x /\ canonical beta c {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} /\ Z.even (Fnum {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |}) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZF2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xF2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x /\ canonical beta c {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} /\ Z.even (Fnum {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |}) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%Z(IZR (Fnum g * beta ^ (Fexp g - c (mag beta x))) * bpow (c (mag beta x)))%R = xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xF2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x /\ canonical beta c {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} /\ Z.even (Fnum {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |}) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%Z(IZR (Fnum g) * bpow (Fexp g - c (mag beta x)) * bpow (c (mag beta x)))%R = xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%Z(0 <= Fexp g - c (mag beta x))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xF2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x /\ canonical beta c {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} /\ Z.even (Fnum {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |}) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%Z(IZR (Fnum g) * bpow (Fexp g - c (mag beta x) + c (mag beta x)))%R = xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%Z(0 <= Fexp g - c (mag beta x))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xF2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x /\ canonical beta c {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} /\ Z.even (Fnum {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |}) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%Z(IZR (Fnum g) * bpow (Fexp g - c (mag beta (IZR (Fnum g) * bpow (Fexp g))) + c (mag beta (IZR (Fnum g) * bpow (Fexp g)))))%R = (IZR (Fnum g) * bpow (Fexp g))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%Z(0 <= Fexp g - c (mag beta x))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xF2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x /\ canonical beta c {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} /\ Z.even (Fnum {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |}) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%Z(Fexp g - c (mag beta (IZR (Fnum g) * bpow (Fexp g))) + c (mag beta (IZR (Fnum g) * bpow (Fexp g))))%Z = Fexp gbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%Z(0 <= Fexp g - c (mag beta x))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xF2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x /\ canonical beta c {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} /\ Z.even (Fnum {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |}) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%Z(0 <= Fexp g - c (mag beta x))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xF2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x /\ canonical beta c {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} /\ Z.even (Fnum {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |}) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xF2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x /\ canonical beta c {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} /\ Z.even (Fnum {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |}) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xcanonical beta c {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} /\ Z.even (Fnum {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |}) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xcanonical beta c {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |}beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xZ.even (Fnum {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |}) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xFexp {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = c (mag beta (F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |}))beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xZ.even (Fnum {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |}) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xZ.even (Fnum {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |}) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xZ.even (Fnum g * beta ^ (Fexp g - c (mag beta x))) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x(Z.even (Fnum g) || Z.even (beta ^ (Fexp g - c (mag beta x))))%bool = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x(Z.even (Fnum g) || Z.even beta)%bool = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x(0 < Fexp g - c (mag beta x))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x(Z.even (Fnum g) || true)%bool = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x(0 < Fexp g - c (mag beta x))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = xZ.even (Fnum g) = true \/ true = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x(0 < Fexp g - c (mag beta x))%Zomega. Qed. Variable choice:Z->bool. Variable x:R. Variable d u: float beta. Hypothesis Hd: Rnd_DN_pt (generic_format beta fexp) x (F2R d). Hypothesis Cd: canonical beta fexp d. Hypothesis Hu: Rnd_UP_pt (generic_format beta fexp) x (F2R u). Hypothesis Cu: canonical beta fexp u. Hypothesis xPos: (0 < x)%R. Let m:= ((F2R d+F2R u)/2)%R.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zc:Z -> Zx:Rg:float betaHg1:F2R g = xHg2:(c (mag beta x) < Fexp g)%ZH:F2R {| Fnum := Fnum g * beta ^ (Fexp g - c (mag beta x)); Fexp := c (mag beta x) |} = x(0 < Fexp g - c (mag beta x))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RF2R d = round beta fexp Zfloor xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RF2R d = round beta fexp Zfloor xapply round_DN_pt... Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RRnd_DN_pt (generic_format beta fexp) x (round beta fexp Zfloor x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RF2R u = round beta fexp Zceil xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RF2R u = round beta fexp Zceil xapply round_UP_pt... Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RRnd_UP_pt (generic_format beta fexp) x (round beta fexp Zceil x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 <= F2R d)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 <= F2R d)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rgeneric_format beta fexp 0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 <= x)%Rnow left. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 <= x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 < F2R d)%R -> mag beta (F2R d) = mag beta xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 < F2R d)%R -> mag beta (F2R d) = mag beta xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rmag beta (F2R d) = mag beta xnow rewrite <- d_eq. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%R(0 < round beta fexp Zfloor x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 < F2R d)%R -> Fexp d = fexp (mag beta x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 < F2R d)%R -> Fexp d = fexp (mag beta x)now rewrite Cd, <- mag_d. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%RFexp d = fexp (mag beta x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 < F2R d)%R -> generic_format beta fexp (bpow (mag beta x))beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 < F2R d)%R -> generic_format beta fexp (bpow (mag beta x))beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rgeneric_format beta fexp (bpow (mag beta x))beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%R(fexp (mag beta x + 1) <= mag beta x)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%R(fexp (mag beta x) < mag beta x)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%R(Fexp d < mag beta x)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%R(Fexp d < mag beta (F2R d))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%R(mag beta (F2R d) <= mag beta x)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%RF2R d <> 0%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rgeneric_format beta fexp (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%R(mag beta (F2R d) <= mag beta x)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rgeneric_format beta fexp (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%R(mag beta (F2R d) <= mag beta x)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%R(mag beta (F2R d) <= mag beta x)%Zapply Hd. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%R(F2R d <= x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 < F2R d)%R -> generic_format beta fexp (bpow (mag beta (F2R d)))beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 < F2R d)%R -> generic_format beta fexp (bpow (mag beta (F2R d)))beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%R(fexp (mag beta (F2R d) + 1) <= mag beta (F2R d))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%R(fexp (mag beta (F2R d)) < mag beta (F2R d))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%RF2R d <> 0%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rgeneric_format beta fexp (F2R d)now apply generic_format_canonical. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rgeneric_format beta fexp (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(F2R d <= m)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(F2R d <= m)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(F2R d <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RH:(F2R d <= F2R u)%R(F2R d <= m)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(F2R d <= x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(x <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RH:(F2R d <= F2R u)%R(F2R d <= m)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(x <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RH:(F2R d <= F2R u)%R(F2R d <= m)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RH:(F2R d <= F2R u)%R(F2R d <= m)%Rlra. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RH:(F2R d <= F2R u)%R(F2R d <= (F2R d + F2R u) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(m <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(m <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(F2R d <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RH:(F2R d <= F2R u)%R(m <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(F2R d <= x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(x <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RH:(F2R d <= F2R u)%R(m <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(x <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RH:(F2R d <= F2R u)%R(m <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RH:(F2R d <= F2R u)%R(m <= F2R u)%Rlra. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RH:(F2R d <= F2R u)%R((F2R d + F2R u) / 2 <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 < F2R d)%R -> mag beta m = mag beta (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 < F2R d)%R -> mag beta m = mag beta (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(bpow (mag beta (F2R d) - 1) <= m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(bpow (mag beta (F2R d) - 1) <= m)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(bpow (mag beta (F2R d) - 1) <= F2R d)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(F2R d <= m)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%Re:ZHe:F2R d <> 0%R -> (bpow (e - 1) <= Rabs (F2R d) < bpow e)%R(bpow (Build_mag_prop beta (F2R d) e He - 1) <= F2R d)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(F2R d <= m)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%Re:ZHe:F2R d <> 0%R -> (bpow (e - 1) <= Rabs (F2R d) < bpow e)%R(bpow (e - 1) <= F2R d)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(F2R d <= m)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%Re:ZHe:F2R d <> 0%R -> (bpow (e - 1) <= F2R d < bpow e)%R(bpow (e - 1) <= F2R d)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%Re:ZHe:F2R d <> 0%R -> (bpow (e - 1) <= Rabs (F2R d) < bpow e)%R(F2R d >= 0)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(F2R d <= m)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%Re:ZHe:F2R d <> 0%R -> (bpow (e - 1) <= F2R d < bpow e)%RF2R d <> 0%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%Re:ZHe:F2R d <> 0%R -> (bpow (e - 1) <= Rabs (F2R d) < bpow e)%R(F2R d >= 0)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(F2R d <= m)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%Re:ZHe:F2R d <> 0%R -> (bpow (e - 1) <= Rabs (F2R d) < bpow e)%R(F2R d >= 0)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(F2R d <= m)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(F2R d <= m)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%R(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%R(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%R(F2R u <= bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%R(round beta fexp Zceil x <= bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%Rgeneric_format beta fexp (bpow (mag beta (F2R d)))beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%R(x <= bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%R(fexp (mag beta (F2R d) + 1) <= mag beta (F2R d))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%R(x <= bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%R(fexp (mag beta (F2R d)) < mag beta (F2R d))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%R(x <= bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RF2R d <> 0%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%Rgeneric_format beta fexp (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%R(x <= bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%Rgeneric_format beta fexp (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%R(x <= bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%R(x <= bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(x <= bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R~ (bpow (mag beta (F2R d)) <= F2R d)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(bpow (mag beta (F2R d)) <= F2R d)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(F2R d < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(bpow (mag beta (F2R d)) <= F2R d)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : BinNums.Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%Re:BinNums.ZHe:F2R d <> 0%R -> (bpow (e - 1) <= Rabs (F2R d) < bpow e)%RZ:(bpow (Build_mag_prop beta (F2R d) e He) < x)%R(F2R d < bpow (Build_mag_prop beta (F2R d) e He))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(bpow (mag beta (F2R d)) <= F2R d)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : BinNums.Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%Re:BinNums.ZHe:F2R d <> 0%R -> (bpow (e - 1) <= F2R d < bpow e)%RZ:(bpow e < x)%R(F2R d < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : BinNums.Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%Re:BinNums.ZHe:F2R d <> 0%R -> (bpow (e - 1) <= Rabs (F2R d) < bpow e)%RZ:(bpow e < x)%R(F2R d >= 0)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(bpow (mag beta (F2R d)) <= F2R d)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : BinNums.Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%Re:BinNums.ZHe:F2R d <> 0%R -> (bpow (e - 1) <= F2R d < bpow e)%RZ:(bpow e < x)%RF2R d <> 0%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : BinNums.Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%Re:BinNums.ZHe:F2R d <> 0%R -> (bpow (e - 1) <= Rabs (F2R d) < bpow e)%RZ:(bpow e < x)%R(F2R d >= 0)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(bpow (mag beta (F2R d)) <= F2R d)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : BinNums.Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%Re:BinNums.ZHe:F2R d <> 0%R -> (bpow (e - 1) <= Rabs (F2R d) < bpow e)%RZ:(bpow e < x)%R(F2R d >= 0)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(bpow (mag beta (F2R d)) <= F2R d)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(bpow (mag beta (F2R d)) <= F2R d)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(bpow (mag beta (F2R d)) <= round beta fexp Zfloor x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(round beta fexp Zfloor x <= F2R d)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(bpow (mag beta (F2R d)) <= round beta fexp Zfloor x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%Rgeneric_format beta fexp (bpow (mag beta (F2R d)))beta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(bpow (mag beta (F2R d)) <= x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(fexp (mag beta (F2R d) + 1) <= mag beta (F2R d))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(bpow (mag beta (F2R d)) <= x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(fexp (mag beta (F2R d)) < mag beta (F2R d))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(bpow (mag beta (F2R d)) <= x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%RF2R d <> 0%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%Rgeneric_format beta fexp (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(bpow (mag beta (F2R d)) <= x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%Rgeneric_format beta fexp (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(bpow (mag beta (F2R d)) <= x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:BinNums.Z -> BinNums.Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : BinNums.Z, (fexpe e <= fexp e - 2)%Zchoice:BinNums.Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:(m < F2R u)%RZ:(bpow (mag beta (F2R d)) < x)%R(bpow (mag beta (F2R d)) <= x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(m < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R u(F2R d < bpow (mag beta (F2R d)))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R uF2R d = mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R ue:ZHe:F2R d <> 0%R -> (bpow (e - 1) <= Rabs (F2R d) < bpow e)%R(F2R d < bpow (Build_mag_prop beta (F2R d) e He))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R uF2R d = mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R ue:ZHe:F2R d <> 0%R -> (bpow (e - 1) <= F2R d < bpow e)%R(F2R d < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R ue:ZHe:F2R d <> 0%R -> (bpow (e - 1) <= Rabs (F2R d) < bpow e)%R(F2R d >= 0)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R uF2R d = mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R ue:ZHe:F2R d <> 0%R -> (bpow (e - 1) <= F2R d < bpow e)%RF2R d <> 0%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R ue:ZHe:F2R d <> 0%R -> (bpow (e - 1) <= Rabs (F2R d) < bpow e)%R(F2R d >= 0)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R uF2R d = mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R ue:ZHe:F2R d <> 0%R -> (bpow (e - 1) <= Rabs (F2R d) < bpow e)%R(F2R d >= 0)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R uF2R d = mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:m = F2R uF2R d = mlra. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RdPos:(0 < F2R d)%RH:((F2R d + F2R u) / 2)%R = F2R uF2R d = ((F2R d + F2R u) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R0%R = F2R d -> mag beta m = (mag beta (F2R u) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R0%R = F2R d -> mag beta m = (mag beta (F2R u) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dmag beta m = (mag beta (F2R u) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R d(bpow (mag beta (F2R u) - 1 - 1) <= m < bpow (mag beta (F2R u) - 1))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R d(bpow (mag beta (F2R u) - 1 - 1) <= F2R u / 2 < bpow (mag beta (F2R u) - 1))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R d(bpow (mag beta (round beta fexp Zceil x) - 1 - 1) <= round beta fexp Zceil x / 2 < bpow (mag beta (round beta fexp Zceil x) - 1))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(bpow (mag beta (round beta fexp Zceil x) - 1 - 1) <= round beta fexp Zceil x / 2 < bpow (mag beta (round beta fexp Zceil x) - 1))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (mag beta (round beta fexp Zceil x) - 1 - 1) <= round beta fexp Zceil x / 2 < bpow (mag beta (round beta fexp Zceil x) - 1))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (mag beta (bpow (fexp e)) - 1 - 1) <= bpow (fexp e) / 2 < bpow (mag beta (bpow (fexp e)) - 1))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e + 1 - 1 - 1) <= bpow (fexp e) / 2 < bpow (fexp e + 1 - 1))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e - 1) <= bpow (fexp e) / 2 < bpow (fexp e))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e - 1) <= bpow (fexp e) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e) / 2 < bpow (fexp e))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e) * bpow (- (1)) <= bpow (fexp e) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e) / 2 < bpow (fexp e))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(0 <= bpow (fexp e))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (- (1)) <= / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e) / 2 < bpow (fexp e))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (- (1)) <= / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e) / 2 < bpow (fexp e))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(/ IZR (beta * 1) <= / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e) / 2 < bpow (fexp e))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(0 < 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(2 <= IZR beta)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e) / 2 < bpow (fexp e))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(2 <= IZR beta)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e) / 2 < bpow (fexp e))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(2 <= beta)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e) / 2 < bpow (fexp e))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(1 < beta)%Z -> (2 <= beta)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e) / 2 < bpow (fexp e))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e) / 2 < bpow (fexp e))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e) / 2 < bpow (fexp e) * 1)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e) * 1 <= bpow (fexp e))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (fexp e) / 2 < bpow (fexp e) * 1)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(0 < bpow (fexp e))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(/ 2 < 1)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(/ 2 < 1)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%Rround beta fexp Zfloor x = 0%Rnow rewrite <- d_eq, Y. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%Rround beta fexp Zfloor x = 0%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 < F2R d)%R -> exists f : float beta, F2R f = F2R u /\ Fexp f = Fexp dbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 < F2R d)%R -> exists f : float beta, F2R f = F2R u /\ Fexp f = Fexp dbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rexists f : float beta, F2R f = F2R u /\ Fexp f = Fexp dbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rexists f : float beta, F2R f = F2R {| Fnum := Zceil (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} /\ Fexp f = Fexp dsimpl; now rewrite Fexp_d. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%RFexp {| Fnum := Zceil (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} = Fexp dbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 < F2R d)%R -> exists f : float beta, F2R f = m /\ Fexp f = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R(0 < F2R d)%R -> exists f : float beta, F2R f = m /\ Fexp f = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rexists f : float beta, F2R f = m /\ Fexp f = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%R(exists p : Z, beta = (2 * p + 0)%Z) -> exists f : float beta, F2R f = m /\ Fexp f = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zexists f : float beta, F2R f = m /\ Fexp f = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dexists f : float beta, F2R f = m /\ Fexp f = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dF2R (Fmult {| Fnum := b; Fexp := -1 |} (Fplus d u')) = m /\ Fexp (Fmult {| Fnum := b; Fexp := -1 |} (Fplus d u')) = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dF2R (Fmult {| Fnum := b; Fexp := -1 |} (Fplus d u')) = mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dFexp (Fmult {| Fnum := b; Fexp := -1 |} (Fplus d u')) = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp d(F2R {| Fnum := b; Fexp := -1 |} * (F2R d + F2R u))%R = mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dFexp (Fmult {| Fnum := b; Fexp := -1 |} (Fplus d u')) = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp d((F2R d + F2R u) * F2R {| Fnum := b; Fexp := -1 |})%R = ((F2R d + F2R u) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dFexp (Fmult {| Fnum := b; Fexp := -1 |} (Fplus d u')) = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dF2R {| Fnum := b; Fexp := -1 |} = (/ 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dFexp (Fmult {| Fnum := b; Fexp := -1 |} (Fplus d u')) = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp d(IZR b * / IZR (beta * 1))%R = (/ 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dFexp (Fmult {| Fnum := b; Fexp := -1 |} (Fplus d u')) = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp d(IZR b * / (2 * IZR b))%R = (/ 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dFexp (Fmult {| Fnum := b; Fexp := -1 |} (Fplus d u')) = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dIZR b <> 0%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dFexp (Fmult {| Fnum := b; Fexp := -1 |} (Fplus d u')) = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp d(2 * 0 < 2 * IZR b)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dFexp (Fmult {| Fnum := b; Fexp := -1 |} (Fplus d u')) = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp d(0 < IZR beta)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dFexp (Fmult {| Fnum := b; Fexp := -1 |} (Fplus d u')) = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dFexp (Fmult {| Fnum := b; Fexp := -1 |} (Fplus d u')) = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dFexp (Fmult {| Fnum := b; Fexp := -1 |} (Fplus d u')) = (-1 + Fexp (Fplus d u'))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp d(-1 + Fexp (Fplus d u'))%Z = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dFexp (let '{| Fnum := m2; Fexp := e2 |} := Fplus d u' in {| Fnum := b * m2; Fexp := -1 + e2 |}) = (-1 + Fexp (Fplus d u'))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp d(-1 + Fexp (Fplus d u'))%Z = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp d(-1 + Fexp (Fplus d u'))%Z = (fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dFexp (Fplus d u') = fexp (mag beta x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp d(-1)%Z = (- (1))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dFexp (Fplus d u') = fexp (mag beta x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dZ.min (Fexp d) (Fexp u') = fexp (mag beta x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp dFexp d = fexp (mag beta x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp d(Fexp d <= Fexp u')%Zrewrite Hu'2; omega. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rb:ZHb:beta = (2 * b)%Zu':float betaHu'1:F2R u' = F2R uHu'2:Fexp u' = Fexp d(Fexp d <= Fexp u')%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R0%R = F2R d -> exists f : float beta, F2R f = m /\ Fexp f = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R0%R = F2R d -> exists f : float beta, F2R f = m /\ Fexp f = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dexists f : float beta, F2R f = m /\ Fexp f = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R d(exists p : Z, beta = (2 * p + 0)%Z) -> exists f : float beta, F2R f = m /\ Fexp f = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%Zexists f : float beta, F2R f = m /\ Fexp f = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZF2R (Fmult {| Fnum := b; Fexp := -1 |} u) = m /\ Fexp (Fmult {| Fnum := b; Fexp := -1 |} u) = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZF2R (Fmult {| Fnum := b; Fexp := -1 |} u) = mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZFexp (Fmult {| Fnum := b; Fexp := -1 |} u) = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%Z(F2R {| Fnum := b; Fexp := -1 |} * F2R u)%R = (F2R u / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZFexp (Fmult {| Fnum := b; Fexp := -1 |} u) = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%Z(F2R u * F2R {| Fnum := b; Fexp := -1 |})%R = (F2R u / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZFexp (Fmult {| Fnum := b; Fexp := -1 |} u) = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZF2R {| Fnum := b; Fexp := -1 |} = (/ 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZFexp (Fmult {| Fnum := b; Fexp := -1 |} u) = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%Z(IZR b * / IZR (beta * 1))%R = (/ 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZFexp (Fmult {| Fnum := b; Fexp := -1 |} u) = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%Z(IZR b * / (2 * IZR b))%R = (/ 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZFexp (Fmult {| Fnum := b; Fexp := -1 |} u) = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZIZR b <> 0%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZFexp (Fmult {| Fnum := b; Fexp := -1 |} u) = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%Z(2 * 0 < 2 * IZR b)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZFexp (Fmult {| Fnum := b; Fexp := -1 |} u) = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%Z(0 < IZR beta)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZFexp (Fmult {| Fnum := b; Fexp := -1 |} u) = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZFexp (Fmult {| Fnum := b; Fexp := -1 |} u) = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZFexp (Fmult {| Fnum := b; Fexp := -1 |} u) = (-1 + Fexp u)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%Z(-1 + Fexp u)%Z = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%ZFexp (let '{| Fnum := m2; Fexp := e2 |} := u in {| Fnum := b * m2; Fexp := -1 + e2 |}) = (-1 + Fexp u)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%Z(-1 + Fexp u)%Z = (fexp (mag beta (F2R u)) - 1)%Zrewrite Zplus_comm, Cu; unfold Zminus; now apply f_equal2. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R db:ZHb:beta = (2 * b)%Z(-1 + Fexp u)%Z = (fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R0%R = F2R d -> (fexp (mag beta (F2R u) - 1) < fexp (mag beta (F2R u)) + 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:R0%R = F2R d -> (fexp (mag beta (F2R u) - 1) < fexp (mag beta (F2R u)) + 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R d(fexp (mag beta (F2R u) - 1) < fexp (mag beta (F2R u)) + 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R d(fexp (mag beta (F2R u) - 1) <= fexp (mag beta (F2R u)))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dH:(fexp (mag beta (F2R u) - 1) <= fexp (mag beta (F2R u)))%Z(fexp (mag beta (F2R u) - 1) < fexp (mag beta (F2R u)) + 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R d(fexp (mag beta (F2R u) - 1) <= fexp (mag beta (F2R u)))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(fexp (mag beta (F2R u) - 1) <= fexp (mag beta (F2R u)))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(fexp (mag beta (F2R u) - 1) <= fexp (mag beta (F2R u)))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= Rabs x < bpow e)%R(x >= 0)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(fexp (mag beta (F2R u) - 1) <= fexp (mag beta (F2R u)))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(e <= fexp e)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%Z(fexp (mag beta (F2R u) - 1) <= fexp (mag beta (F2R u)))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%R(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%Rround beta fexp Zfloor x = 0%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%Z(fexp (mag beta (F2R u) - 1) <= fexp (mag beta (F2R u)))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%Rround beta fexp Zfloor x = 0%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%Z(fexp (mag beta (F2R u) - 1) <= fexp (mag beta (F2R u)))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%Z(fexp (mag beta (F2R u) - 1) <= fexp (mag beta (F2R u)))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%Z(fexp (mag beta (bpow (fexp e)) - 1) <= fexp (mag beta (bpow (fexp e))))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%Z(bpow (e - 1) <= x < bpow e)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%Z(fexp (mag beta (bpow (fexp e)) - 1) <= fexp (mag beta (bpow (fexp e))))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%Z(fexp (fexp e + 1 - 1) <= fexp (fexp e + 1))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%Z(fexp (fexp e) <= fexp (fexp e + 1))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%Z(fexp e <= fexp (fexp e + 1))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%Zfexp e = fexp (fexp e)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%ZV:Z.even beta = false(fexp e <= fexp (fexp e + 1))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%ZV:forall e0 : Z, ((fexp e0 < e0)%Z -> (fexp (e0 + 1) < e0)%Z) /\ ((e0 <= fexp e0)%Z -> fexp (fexp e0 + 1) = fexp e0)(fexp e <= fexp (fexp e + 1))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%Zfexp e = fexp (fexp e)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%ZV:forall e0 : Z, ((fexp e0 < e0)%Z -> (fexp (e0 + 1) < e0)%Z) /\ ((e0 <= fexp e0)%Z -> fexp (fexp e0 + 1) = fexp e0)(fexp e <= fexp (fexp e + 1))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%Zfexp e = fexp (fexp e)apply sym_eq, valid_exp; omega. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e0 : Z, (fexpe e0 <= fexp e0 - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R de:ZHe:x <> 0%R -> (bpow (e - 1) <= x < bpow e)%RH:(e <= fexp e)%Zfexp e = fexp (fexp e)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rgeneric_format beta fexpe mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rgeneric_format beta fexpe m(* *)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rgeneric_format beta fexpe mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dgeneric_format beta fexpe mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%Zgeneric_format beta fexpe mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dgeneric_format beta fexpe mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%ZF2R g = mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%Zm <> 0%R -> (cexp beta fexpe m <= Fexp g)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dgeneric_format beta fexpe mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%Zm <> 0%R -> (cexp beta fexpe m <= Fexp g)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dgeneric_format beta fexpe mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%ZH:m <> 0%R(fexpe (mag beta m) <= fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dgeneric_format beta fexpe mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%ZH:m <> 0%R(fexpe (mag beta (F2R d)) <= fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dgeneric_format beta fexpe mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%ZH:m <> 0%R(fexpe (mag beta (F2R d)) <= Fexp d - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dgeneric_format beta fexpe mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%ZH:m <> 0%R(fexpe (mag beta (F2R d)) <= cexp beta fexp (F2R d) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dgeneric_format beta fexpe mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%ZH:m <> 0%R(fexpe (mag beta (F2R d)) <= fexp (mag beta (F2R d)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dgeneric_format beta fexpe mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%ZH:m <> 0%R(fexpe (mag beta (F2R d)) <= fexp (mag beta (F2R d)) - 2)%Z -> (fexpe (mag beta (F2R d)) <= fexp (mag beta (F2R d)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dgeneric_format beta fexpe m(* *)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dgeneric_format beta fexpe mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta (F2R u)) - 1)%Zgeneric_format beta fexpe mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta (F2R u)) - 1)%ZF2R g = mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta (F2R u)) - 1)%Zm <> 0%R -> (cexp beta fexpe m <= Fexp g)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta (F2R u)) - 1)%Zm <> 0%R -> (cexp beta fexpe m <= Fexp g)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta (F2R u)) - 1)%ZH:m <> 0%R(fexpe (mag beta m) <= fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta (F2R u)) - 1)%ZH:m <> 0%R(fexpe (mag beta (F2R u) - 1) <= fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta (F2R u)) - 1)%ZH:m <> 0%R(fexp (mag beta (F2R u) - 1) - 2 <= fexp (mag beta (F2R u)) - 1)%Zomega. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta (F2R u)) - 1)%ZH:m <> 0%R(fexp (mag beta (F2R u) - 1) < fexp (mag beta (F2R u)) + 1)%Z -> (fexp (mag beta (F2R u) - 1) - 2 <= fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rexists g : float beta, F2R g = m /\ canonical beta fexpe g /\ Z.even (Fnum g) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rexists g : float beta, F2R g = m /\ canonical beta fexpe g /\ Z.even (Fnum g) = true(* *)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rexists g : float beta, F2R g = m /\ canonical beta fexpe g /\ Z.even (Fnum g) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dexists g : float beta, F2R g = m /\ canonical beta fexpe g /\ Z.even (Fnum g) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%Zexists g0 : float beta, F2R g0 = m /\ canonical beta fexpe g0 /\ Z.even (Fnum g0) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dexists g : float beta, F2R g = m /\ canonical beta fexpe g /\ Z.even (Fnum g) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%Zexists f : float beta, F2R f = m /\ (fexpe (mag beta m) < Fexp f)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dexists g : float beta, F2R g = m /\ canonical beta fexpe g /\ Z.even (Fnum g) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%Z(fexpe (mag beta m) < Fexp g)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dexists g : float beta, F2R g = m /\ canonical beta fexpe g /\ Z.even (Fnum g) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%Z(fexpe (mag beta m) < fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dexists g : float beta, F2R g = m /\ canonical beta fexpe g /\ Z.even (Fnum g) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%Z(fexpe (mag beta (F2R d)) < fexp (mag beta x) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dexists g : float beta, F2R g = m /\ canonical beta fexpe g /\ Z.even (Fnum g) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%Z(fexpe (mag beta (F2R d)) < Fexp d - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dexists g : float beta, F2R g = m /\ canonical beta fexpe g /\ Z.even (Fnum g) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%Z(fexpe (mag beta (F2R d)) < cexp beta fexp (F2R d) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dexists g : float beta, F2R g = m /\ canonical beta fexpe g /\ Z.even (Fnum g) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%Z(fexpe (mag beta (F2R d)) < fexp (mag beta (F2R d)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dexists g : float beta, F2R g = m /\ canonical beta fexpe g /\ Z.even (Fnum g) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:(0 < F2R d)%Rg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta x) - 1)%Z(fexpe (mag beta (F2R d)) <= fexp (mag beta (F2R d)) - 2)%Z -> (fexpe (mag beta (F2R d)) < fexp (mag beta (F2R d)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dexists g : float beta, F2R g = m /\ canonical beta fexpe g /\ Z.even (Fnum g) = true(* *)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dexists g : float beta, F2R g = m /\ canonical beta fexpe g /\ Z.even (Fnum g) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta (F2R u)) - 1)%Zexists g0 : float beta, F2R g0 = m /\ canonical beta fexpe g0 /\ Z.even (Fnum g0) = truebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta (F2R u)) - 1)%Zexists f : float beta, F2R f = m /\ (fexpe (mag beta m) < Fexp f)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta (F2R u)) - 1)%Z(fexpe (mag beta m) < Fexp g)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta (F2R u)) - 1)%Z(fexpe (mag beta m) < fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta (F2R u)) - 1)%Z(fexpe (mag beta (F2R u) - 1) < fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta (F2R u)) - 1)%Z(fexp (mag beta (F2R u) - 1) - 2 < fexp (mag beta (F2R u)) - 1)%Zomega. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:RY:0%R = F2R dg:float betaHg1:F2R g = mHg2:Fexp g = (fexp (mag beta (F2R u)) - 1)%Z(fexp (mag beta (F2R u) - 1) < fexp (mag beta (F2R u)) + 1)%Z -> (fexp (mag beta (F2R u) - 1) - 2 < fexp (mag beta (F2R u)) - 1)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rforall z : R, (F2R d <= z < F2R u)%R -> Rnd_DN_pt (generic_format beta fexp) z (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rforall z : R, (F2R d <= z < F2R u)%R -> Rnd_DN_pt (generic_format beta fexp) z (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%RRnd_DN_pt (generic_format beta fexp) z (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%RRnd_DN_pt (generic_format beta fexp) z (round beta fexp Zfloor z)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%Rround beta fexp Zfloor z = F2R dbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%Rround beta fexp Zfloor z = F2R dbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%Rgeneric_format beta fexp (round beta fexp Zfloor z)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%R(round beta fexp Zfloor z <= F2R d)%R -> round beta fexp Zfloor z = F2R dbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%R(F2R u <= round beta fexp Zfloor z)%R -> round beta fexp Zfloor z = F2R dbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%R(round beta fexp Zfloor z <= F2R d)%R -> round beta fexp Zfloor z = F2R dbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%R(F2R u <= round beta fexp Zfloor z)%R -> round beta fexp Zfloor z = F2R dbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%RY:(round beta fexp Zfloor z <= F2R d)%R(F2R d <= round beta fexp Zfloor z)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%R(F2R u <= round beta fexp Zfloor z)%R -> round beta fexp Zfloor z = F2R dbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%RY:(round beta fexp Zfloor z <= F2R d)%Rgeneric_format beta fexp (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%RY:(round beta fexp Zfloor z <= F2R d)%R(F2R d <= z)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%R(F2R u <= round beta fexp Zfloor z)%R -> round beta fexp Zfloor z = F2R dbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%RY:(round beta fexp Zfloor z <= F2R d)%R(F2R d <= z)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%R(F2R u <= round beta fexp Zfloor z)%R -> round beta fexp Zfloor z = F2R dbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%R(F2R u <= round beta fexp Zfloor z)%R -> round beta fexp Zfloor z = F2R dbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%RY:(F2R u <= round beta fexp Zfloor z)%R(z < z)%Rapply round_DN_pt... Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d <= z < F2R u)%RY:(F2R u <= round beta fexp Zfloor z)%R(round beta fexp Zfloor z <= z)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rforall z : R, (F2R d < z <= F2R u)%R -> Rnd_UP_pt (generic_format beta fexp) z (F2R u)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rforall z : R, (F2R d < z <= F2R u)%R -> Rnd_UP_pt (generic_format beta fexp) z (F2R u)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%RRnd_UP_pt (generic_format beta fexp) z (F2R u)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%RRnd_UP_pt (generic_format beta fexp) z (round beta fexp Zceil z)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%Rround beta fexp Zceil z = F2R ubeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%Rround beta fexp Zceil z = F2R ubeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%Rgeneric_format beta fexp (round beta fexp Zceil z)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%R(round beta fexp Zceil z <= F2R d)%R -> round beta fexp Zceil z = F2R ubeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%R(F2R u <= round beta fexp Zceil z)%R -> round beta fexp Zceil z = F2R ubeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%R(round beta fexp Zceil z <= F2R d)%R -> round beta fexp Zceil z = F2R ubeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%R(F2R u <= round beta fexp Zceil z)%R -> round beta fexp Zceil z = F2R ubeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%RY:(round beta fexp Zceil z <= F2R d)%R(z < z)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%R(F2R u <= round beta fexp Zceil z)%R -> round beta fexp Zceil z = F2R ubeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%RY:(round beta fexp Zceil z <= F2R d)%R(z <= round beta fexp Zceil z)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%R(F2R u <= round beta fexp Zceil z)%R -> round beta fexp Zceil z = F2R ubeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%R(F2R u <= round beta fexp Zceil z)%R -> round beta fexp Zceil z = F2R ubeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%RY:(F2R u <= round beta fexp Zceil z)%R(round beta fexp Zceil z <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%RY:(F2R u <= round beta fexp Zceil z)%Rgeneric_format beta fexp (F2R u)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%RY:(F2R u <= round beta fexp Zceil z)%R(z <= F2R u)%Rapply Hz1. Qed.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rz:RHz1:(F2R d < z <= F2R u)%RY:(F2R u <= round beta fexp Zceil z)%R(z <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:generic_format beta fexp xround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:generic_format beta fexp xx = obeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:generic_format beta fexp xgeneric_format beta fexpe xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp x(F2R d <= o)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xgeneric_format beta fexpe (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp x(F2R d <= x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp x(F2R d <= x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%R(o <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%Rgeneric_format beta fexpe (F2R u)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%R(x <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%R(x <= F2R u)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%Rx <> m -> o = m -> forall P : Prop, Pbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mforall P : Prop, Pbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mRnd_odd_pt beta fexpe x obeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mH:Rnd_odd_pt beta fexpe x oforall P : Prop, Pbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mH:Rnd_odd_pt beta fexpe x oforall P : Prop, Pbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mH:o = xforall P : Prop, Pbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mH:(Rnd_DN_pt (generic_format beta fexpe) x o \/ Rnd_UP_pt (generic_format beta fexpe) x o) /\ (exists g : float beta, o = F2R g /\ canonical beta fexpe g /\ Z.even (Fnum g) = false)forall P : Prop, Pbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mH:o = xx = mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mH:(Rnd_DN_pt (generic_format beta fexpe) x o \/ Rnd_UP_pt (generic_format beta fexpe) x o) /\ (exists g : float beta, o = F2R g /\ canonical beta fexpe g /\ Z.even (Fnum g) = false)forall P : Prop, Pbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mH:(Rnd_DN_pt (generic_format beta fexpe) x o \/ Rnd_UP_pt (generic_format beta fexpe) x o) /\ (exists g : float beta, o = F2R g /\ canonical beta fexpe g /\ Z.even (Fnum g) = false)forall P : Prop, Pbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mk:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falseforall P : Prop, Pbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mk:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = mHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = trueforall P : Prop, Pbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mk:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = mHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = truetrue <> falsebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mk:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = mHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = truetrue = falsebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mk:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = mHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = truetrue = falsebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mk:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = mHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = trueZ.even (Fnum k') = Z.even (Fnum k)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mk:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = mHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = truek' = kbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RY1:x <> mY2:o = mk:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = mHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = trueF2R k' = F2R kbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0generic_format beta fexp o -> forall P0 : Prop, P0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp oforall P0 : Prop, P0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp oRnd_odd_pt beta fexpe x obeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp oH:Rnd_odd_pt beta fexpe x oforall P0 : Prop, P0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp oH:Rnd_odd_pt beta fexpe x oforall P0 : Prop, P0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp oH:o = xforall P0 : Prop, P0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp oH:(Rnd_DN_pt (generic_format beta fexpe) x o \/ Rnd_UP_pt (generic_format beta fexpe) x o) /\ (exists g : float beta, o = F2R g /\ canonical beta fexpe g /\ Z.even (Fnum g) = false)forall P0 : Prop, P0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp oH:o = xgeneric_format beta fexp xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp oH:(Rnd_DN_pt (generic_format beta fexpe) x o \/ Rnd_UP_pt (generic_format beta fexpe) x o) /\ (exists g : float beta, o = F2R g /\ canonical beta fexpe g /\ Z.even (Fnum g) = false)forall P0 : Prop, P0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp oH:(Rnd_DN_pt (generic_format beta fexpe) x o \/ Rnd_UP_pt (generic_format beta fexpe) x o) /\ (exists g : float beta, o = F2R g /\ canonical beta fexpe g /\ Z.even (Fnum g) = false)forall P0 : Prop, P0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falseforall P0 : Prop, P0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falseexists f : float beta, F2R f = o /\ (fexpe (mag beta o) < Fexp f)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = oHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = trueforall P0 : Prop, P0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falseF2R ?f = obeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = false(fexpe (mag beta o) < Fexp ?f)%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = oHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = trueforall P0 : Prop, P0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = false(fexpe (mag beta o) < Fexp {| Fnum := Ztrunc (scaled_mantissa beta fexp o); Fexp := cexp beta fexp o |})%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = oHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = trueforall P0 : Prop, P0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = false(fexpe (mag beta o) < fexp (mag beta o))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = oHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = trueforall P0 : Prop, P0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = false(fexp (mag beta o) - 2 < fexp (mag beta o))%Zbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = oHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = trueforall P0 : Prop, P0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = oHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = trueforall P0 : Prop, P0beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = oHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = truetrue <> falsebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = oHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = truetrue = falsebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = oHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = truetrue = falsebeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = oHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = trueZ.even (Fnum k') = Z.even (Fnum k)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = oHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = truek' = kbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0Y:generic_format beta fexp ok:float betaHk1:o = F2R kHk2:canonical beta fexpe kHk3:Z.even (Fnum k) = falsek':float betaHk'1:F2R k' = oHk'2:canonical beta fexpe k'Hk'3:Z.even (Fnum k') = trueF2R k' = F2R kbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK1:(F2R d <= o)%RK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0round beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:F2R d = oround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xK2:(o <= F2R u)%RP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:o = F2R uround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) x(* . *)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%Rround beta fexp (Znearest choice) o = F2R dbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RF2R d = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RRnd_DN_pt (generic_format beta fexp) o (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RRnd_UP_pt (generic_format beta fexp) o (F2R u)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%R(o < (F2R d + F2R u) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RF2R d = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RRnd_UP_pt (generic_format beta fexp) o (F2R u)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%R(o < (F2R d + F2R u) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RF2R d = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%R(o < (F2R d + F2R u) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RF2R d = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%R(o <= (F2R d + F2R u) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RH1:(o <= (F2R d + F2R u) / 2)%R(o < (F2R d + F2R u) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RF2R d = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%Rgeneric_format beta fexpe ((F2R d + F2R u) / 2)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%R(x <= (F2R d + F2R u) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RH1:(o <= (F2R d + F2R u) / 2)%R(o < (F2R d + F2R u) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RF2R d = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%R(x <= (F2R d + F2R u) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RH1:(o <= (F2R d + F2R u) / 2)%R(o < (F2R d + F2R u) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RF2R d = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RH1:(o <= (F2R d + F2R u) / 2)%R(o < (F2R d + F2R u) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RF2R d = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RH1:o = ((F2R d + F2R u) / 2)%R(o < (F2R d + F2R u) / 2)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RF2R d = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RH1:o = ((F2R d + F2R u) / 2)%Rx <> mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RH1:o = ((F2R d + F2R u) / 2)%Ro = mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RF2R d = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RH1:o = ((F2R d + F2R u) / 2)%Ro = mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RF2R d = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:(x < m)%RF2R d = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) x(* . *)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mround beta fexp (Znearest choice) x = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mx = obeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mx = obeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RH0:x = mgeneric_format beta fexpe xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) x(* . *)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rround beta fexp (Znearest choice) o = F2R ubeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RF2R u = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RRnd_DN_pt (generic_format beta fexp) o (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RRnd_UP_pt (generic_format beta fexp) o (F2R u)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%R((F2R d + F2R u) / 2 < o)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RF2R u = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RRnd_UP_pt (generic_format beta fexp) o (F2R u)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%R((F2R d + F2R u) / 2 < o)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RF2R u = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%R((F2R d + F2R u) / 2 < o)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RF2R u = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%R((F2R d + F2R u) / 2 <= o)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RH0:((F2R d + F2R u) / 2 <= o)%R((F2R d + F2R u) / 2 < o)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RF2R u = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%Rgeneric_format beta fexpe ((F2R d + F2R u) / 2)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%R((F2R d + F2R u) / 2 <= x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RH0:((F2R d + F2R u) / 2 <= o)%R((F2R d + F2R u) / 2 < o)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RF2R u = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%R((F2R d + F2R u) / 2 <= x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RH0:((F2R d + F2R u) / 2 <= o)%R((F2R d + F2R u) / 2 < o)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RF2R u = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RH0:((F2R d + F2R u) / 2 <= o)%R((F2R d + F2R u) / 2 < o)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RF2R u = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RH0:((F2R d + F2R u) / 2)%R = o((F2R d + F2R u) / 2 < o)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RF2R u = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RH0:((F2R d + F2R u) / 2)%R = ox <> mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RH0:((F2R d + F2R u) / 2)%R = oo = mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RF2R u = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RH0:((F2R d + F2R u) / 2)%R = oo = mbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RF2R u = round beta fexp (Znearest choice) xapply sym_eq, round_N_eq_UP_pt with (F2R d)... Qed. End Odd_prop_aux. Section Odd_prop. Variable beta : radix. Hypothesis Even_beta: Z.even (radix_val beta)=true. Variable fexp : Z -> Z. Variable fexpe : Z -> Z. Variable choice:Z->bool. Context { valid_exp : Valid_exp fexp }. Context { exists_NE_ : Exists_NE beta fexp }. (* for underflow reason *) Context { valid_expe : Valid_exp fexpe }. Context { exists_NE_e : Exists_NE beta fexpe }. (* for defining rounding to odd *) Hypothesis fexpe_fexp: forall e, (fexpe e <= fexp e -2)%Z.beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zchoice:Z -> boolx:Rd, u:float betaHd:Rnd_DN_pt (generic_format beta fexp) x (F2R d)Cd:canonical beta fexp dHu:Rnd_UP_pt (generic_format beta fexp) x (F2R u)Cu:canonical beta fexp uxPos:(0 < x)%Rm:=((F2R d + F2R u) / 2)%R:Ro:=round beta fexpe Zrnd_odd x:RHx:~ generic_format beta fexp xP:x <> m -> o = m -> forall P0 : Prop, P0H:generic_format beta fexp o -> forall P0 : Prop, P0K1:(F2R d < o)%RK2:(o < F2R u)%RY:(m < x)%RF2R u = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zforall x : R, round beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zforall x : R, round beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:x = 0%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd (- - x)) = round beta fexp (Znearest choice) (- - x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:x = 0%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rround beta fexp (Znearest choice) (- round beta fexpe Zrnd_odd (- x)) = round beta fexp (Znearest choice) (- - x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:x = 0%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%R(- round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))))) (round beta fexpe Zrnd_odd (- x)))%R = (- round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))))) (- x))%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:x = 0%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rround beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))))) (round beta fexpe Zrnd_odd (- x)) = round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))))) (- x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:x = 0%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rgeneric_format beta fexp (round beta fexp Zfloor (- x))beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rd:float betaHd1:round beta fexp Zfloor (- x) = F2R dHd2:canonical beta fexp dround beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))))) (round beta fexpe Zrnd_odd (- x)) = round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))))) (- x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:x = 0%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rd:float betaHd1:round beta fexp Zfloor (- x) = F2R dHd2:canonical beta fexp dround beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))))) (round beta fexpe Zrnd_odd (- x)) = round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))))) (- x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:x = 0%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rd:float betaHd1:round beta fexp Zfloor (- x) = F2R dHd2:canonical beta fexp dgeneric_format beta fexp (round beta fexp Zceil (- x))beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rd:float betaHd1:round beta fexp Zfloor (- x) = F2R dHd2:canonical beta fexp du:float betaHu1:round beta fexp Zceil (- x) = F2R uHu2:canonical beta fexp uround beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))))) (round beta fexpe Zrnd_odd (- x)) = round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))))) (- x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:x = 0%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rd:float betaHd1:round beta fexp Zfloor (- x) = F2R dHd2:canonical beta fexp du:float betaHu1:round beta fexp Zceil (- x) = F2R uHu2:canonical beta fexp uround beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))))) (round beta fexpe Zrnd_odd (- x)) = round beta fexp (Znearest (fun t : Z => negb (choice (- (t + 1))))) (- x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:x = 0%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rd:float betaHd1:round beta fexp Zfloor (- x) = F2R dHd2:canonical beta fexp du:float betaHu1:round beta fexp Zceil (- x) = F2R uHu2:canonical beta fexp uRnd_DN_pt (generic_format beta fexp) (- x) (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rd:float betaHd1:round beta fexp Zfloor (- x) = F2R dHd2:canonical beta fexp du:float betaHu1:round beta fexp Zceil (- x) = F2R uHu2:canonical beta fexp uRnd_UP_pt (generic_format beta fexp) (- x) (F2R u)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rd:float betaHd1:round beta fexp Zfloor (- x) = F2R dHd2:canonical beta fexp du:float betaHu1:round beta fexp Zceil (- x) = F2R uHu2:canonical beta fexp u(0 < - x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:x = 0%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rd:float betaHd1:round beta fexp Zfloor (- x) = F2R dHd2:canonical beta fexp du:float betaHu1:round beta fexp Zceil (- x) = F2R uHu2:canonical beta fexp uRnd_UP_pt (generic_format beta fexp) (- x) (F2R u)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rd:float betaHd1:round beta fexp Zfloor (- x) = F2R dHd2:canonical beta fexp du:float betaHu1:round beta fexp Zceil (- x) = F2R uHu2:canonical beta fexp u(0 < - x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:x = 0%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x < 0)%Rd:float betaHd1:round beta fexp Zfloor (- x) = F2R dHd2:canonical beta fexp du:float betaHu1:round beta fexp Zceil (- x) = F2R uHu2:canonical beta fexp u(0 < - x)%Rbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:x = 0%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) x(* . *)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:x = 0%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) x(* . *)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rgeneric_format beta fexp (round beta fexp Zfloor x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rd:float betaHd1:round beta fexp Zfloor x = F2R dHd2:canonical beta fexp dround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rd:float betaHd1:round beta fexp Zfloor x = F2R dHd2:canonical beta fexp dround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rd:float betaHd1:round beta fexp Zfloor x = F2R dHd2:canonical beta fexp dgeneric_format beta fexp (round beta fexp Zceil x)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rd:float betaHd1:round beta fexp Zfloor x = F2R dHd2:canonical beta fexp du:float betaHu1:round beta fexp Zceil x = F2R uHu2:canonical beta fexp uround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rd:float betaHd1:round beta fexp Zfloor x = F2R dHd2:canonical beta fexp du:float betaHu1:round beta fexp Zceil x = F2R uHu2:canonical beta fexp uround beta fexp (Znearest choice) (round beta fexpe Zrnd_odd x) = round beta fexp (Znearest choice) xbeta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rd:float betaHd1:round beta fexp Zfloor x = F2R dHd2:canonical beta fexp du:float betaHu1:round beta fexp Zceil x = F2R uHu2:canonical beta fexp uRnd_DN_pt (generic_format beta fexp) x (F2R d)beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rd:float betaHd1:round beta fexp Zfloor x = F2R dHd2:canonical beta fexp du:float betaHu1:round beta fexp Zceil x = F2R uHu2:canonical beta fexp uRnd_UP_pt (generic_format beta fexp) x (F2R u)rewrite <- Hu1; apply round_UP_pt... Qed. End Odd_prop. Section Odd_propbis. Variable beta : radix. Hypothesis Even_beta: Z.even (radix_val beta)=true. Variable emin prec:Z. Variable choice:Z->bool. Hypothesis prec_gt_1: (1 < prec)%Z. Notation format := (generic_format beta (FLT_exp emin prec)). Notation round_flt :=(round beta (FLT_exp emin prec) (Znearest choice)). Notation cexp_flt := (cexp beta (FLT_exp emin prec)). Notation fexpe k := (FLT_exp (emin-k) (prec+k)).beta:radixEven_beta:Z.even beta = truefexp, fexpe:Z -> Zchoice:Z -> boolvalid_exp:Valid_exp fexpexists_NE_:Exists_NE beta fexpvalid_expe:Valid_exp fexpeexists_NE_e:Exists_NE beta fexpefexpe_fexp:forall e : Z, (fexpe e <= fexp e - 2)%Zx:RH:(x > 0)%Rd:float betaHd1:round beta fexp Zfloor x = F2R dHd2:canonical beta fexp du:float betaHu1:round beta fexp Zceil x = F2R uHu2:canonical beta fexp uRnd_UP_pt (generic_format beta fexp) x (F2R u)beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zforall x y : R, (exists n e : Z, x = (IZR n * bpow beta e)%R /\ (1 <= e)%Z) -> IZR (Zrnd_odd (x + y)) = (x + IZR (Zrnd_odd y))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zforall x y : R, (exists n e : Z, x = (IZR n * bpow beta e)%R /\ (1 <= e)%Z) -> IZR (Zrnd_odd (x + y)) = (x + IZR (Zrnd_odd y))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%ZIZR (Zrnd_odd (x + y)) = (x + IZR (Zrnd_odd y))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%Zx = IZR (Zfloor x)beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%ZZ.even (Zfloor x) = truebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%Z(IZR n * bpow beta e)%R = IZR (Zfloor (IZR n * bpow beta e))beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%ZZ.even (Zfloor x) = truebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%Z(IZR n * IZR (beta ^ e))%R = IZR (Zfloor (IZR n * IZR (beta ^ e)))beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%Z(0 <= e)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%ZZ.even (Zfloor x) = truebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%Z(IZR n * IZR (beta ^ e))%R = IZR (Zfloor (IZR n * IZR (beta ^ e)))beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%ZZ.even (Zfloor x) = truebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%ZZ.even (Zfloor x) = truebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%ZZ.even (Zfloor (IZR n * IZR (beta ^ e))) = truebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%Z(0 <= e)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%ZZ.even (Zfloor (IZR n * IZR (beta ^ e))) = truebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%ZZ.even (n * beta ^ e) = truebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%Z(Z.even n || Z.even (beta ^ e))%bool = truebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%Z(Z.even n || Z.even beta)%bool = truebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%Z(0 < e)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%Z(Z.even n || Z.even beta)%bool = trueapply Bool.orb_true_iff; now right. Qed.beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx, y:Rn, e:ZH1:x = (IZR n * bpow beta e)%RH2:(1 <= e)%Z(Z.even n || true)%bool = truebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zforall x : R, (emin < mag beta x)%Z -> mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) = mag beta xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zforall x : R, (emin < mag beta x)%Z -> mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) = mag beta xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:R(emin < mag beta x)%Z -> mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) = mag beta xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RPrec_gt_0 precbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 prec(emin < mag beta x)%Z -> mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) = mag beta xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 prec(emin < mag beta x)%Z -> mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) = mag beta xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x = 0%R(emin < mag beta x)%Z -> mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) = mag beta xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%R(emin < mag beta x)%Z -> mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) = mag beta xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%R(emin < mag beta x)%Z -> mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) = mag beta xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Zmag beta (round beta (FLT_exp emin prec) Zrnd_odd x) = ebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Z(bpow beta (e - 1) <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Z(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Zformat (bpow beta (e - 1))beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Z(bpow beta (e - 1) <= Rabs x)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Z(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Z(emin <= e - 1)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Z(bpow beta (e - 1) <= Rabs x)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Z(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Z(bpow beta (e - 1) <= Rabs x)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Z(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Z(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Z(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%R(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Zformat (bpow beta e)beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Z(Rabs x <= bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%R(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Z(emin <= e)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Z(Rabs x <= bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%R(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%Z(Rabs x <= bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%R(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%R(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta e(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eRnd_odd_pt beta (FLT_exp emin prec) x (round beta (FLT_exp emin prec) Zrnd_odd x)beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_odd_pt beta (FLT_exp emin prec) x (round beta (FLT_exp emin prec) Zrnd_odd x)(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_odd_pt beta (FLT_exp emin prec) x (round beta (FLT_exp emin prec) Zrnd_odd x)(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:round beta (FLT_exp emin prec) Zrnd_odd x = x(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = false(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:round beta (FLT_exp emin prec) Zrnd_odd x = x~ (Rabs x < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:round beta (FLT_exp emin prec) Zrnd_odd x = x(Rabs x < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = false(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:round beta (FLT_exp emin prec) Zrnd_odd x = xbpow beta e = Rabs xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:round beta (FLT_exp emin prec) Zrnd_odd x = x(Rabs x < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = false(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:round beta (FLT_exp emin prec) Zrnd_odd x = x(Rabs x < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = false(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = false(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float beta(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaF2R gg = bpow beta ebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta e(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float beta(IZR (beta ^ (e - FLT_exp emin prec (e + 1))) * bpow beta (FLT_exp emin prec (e + 1)))%R = bpow beta ebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta e(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float beta(bpow beta (e - FLT_exp emin prec (e + 1)) * bpow beta (FLT_exp emin prec (e + 1)))%R = bpow beta ebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float beta(0 <= e - FLT_exp emin prec (e + 1))%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta e(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betabpow beta (e - FLT_exp emin prec (e + 1) + FLT_exp emin prec (e + 1)) = bpow beta ebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float beta(0 <= e - FLT_exp emin prec (e + 1))%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta e(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float beta(0 <= e - FLT_exp emin prec (e + 1))%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta e(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float beta(FLT_exp emin prec (e + 1) <= e)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta e(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float beta(Z.max (e + 1 - prec) emin <= e)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta e(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta e(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta ecanonical beta (FLT_exp emin prec) ggbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) gg(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eFLT_exp emin prec (e + 1) = cexp_flt (bpow beta e)beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) gg(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) gg(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggFnum gg = Z.abs (Fnum g)beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggFnum gg = Fnum (Fabs g)beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggFnum (Fabs g) = Z.abs (Fnum g)beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggFnum gg = Fnum (Fabs g)beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) gggg = Fabs gbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggcanonical beta (FLT_exp emin prec) (Fabs g)beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggF2R gg = F2R (Fabs g)beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggF2R gg = F2R (Fabs g)beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)Z.even (Fnum gg) = truebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)Y4:Z.even (Fnum gg) = true(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)Z.even (beta ^ (e - FLT_exp emin prec (e + 1))) = truebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)Y4:Z.even (Fnum gg) = true(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)(0 < e - FLT_exp emin prec (e + 1))%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)Y4:Z.even (Fnum gg) = true(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)(FLT_exp emin prec (e + 1) < e)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)Y4:Z.even (Fnum gg) = true(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)(Z.max (e + 1 - prec) emin < e)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)Y4:Z.even (Fnum gg) = true(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)Y4:Z.even (Fnum gg) = true(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)Y4:Z.even (Fnum gg) = truetrue <> falsebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)Y4:Z.even (Fnum gg) = truetrue = falsebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)Y4:Z.even (Fnum gg) = truetrue = falsebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)Y4:Z.even (Fnum gg) = truetrue = Z.even (Fnum g)now rewrite <- Y3. Qed.beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RT:Prec_gt_0 precZx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(emin < e)%ZV:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta e)%RK:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eH0:Rnd_DN_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x) \/ Rnd_UP_pt format x (round beta (FLT_exp emin prec) Zrnd_odd x)g:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falsegg:={| Fnum := beta ^ (e - FLT_exp emin prec (e + 1)); Fexp := FLT_exp emin prec (e + 1) |}:float betaY1:F2R gg = bpow beta eY2:canonical beta (FLT_exp emin prec) ggY3:Fnum gg = Z.abs (Fnum g)Y4:Z.even (Fnum gg) = truetrue = Z.even (Z.abs (Fnum g))beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zforall x : R, cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zforall x : R, cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:Rcexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RValid_exp (FLT_exp emin prec)beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x = 0%Rcexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Rcexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Rcexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(mag beta x <= emin)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%R(e <= emin)%Z -> FLT_exp emin prec (mag beta (round beta (FLT_exp emin prec) Zrnd_odd x)) = FLT_exp emin prec ebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZFLT_exp emin prec (mag beta (round beta (FLT_exp emin prec) Zrnd_odd x)) = Z.max (e - prec) eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZFLT_exp emin prec (mag beta (round beta (FLT_exp emin prec) Zrnd_odd x)) = eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%Z(e - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZFLT_exp emin prec (mag beta (round beta (FLT_exp emin prec) Zrnd_odd x)) = eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%Z(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%Z(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%Zformat (bpow beta emin)beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%Z(Rabs x <= bpow beta emin)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%Z(FLT_exp emin prec emin <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%Z(Rabs x <= bpow beta emin)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%Z(Rabs x <= bpow beta emin)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%Z(Rabs x < bpow beta e)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%Z(bpow beta e <= bpow beta emin)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%Z(bpow beta e <= bpow beta emin)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%R(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RRnd_odd_pt beta (FLT_exp emin prec) x (round beta (FLT_exp emin prec) Zrnd_odd x)beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RH0:Rnd_odd_pt beta (FLT_exp emin prec) x (round beta (FLT_exp emin prec) Zrnd_odd x)Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RH0:Rnd_odd_pt beta (FLT_exp emin prec) x (round beta (FLT_exp emin prec) Zrnd_odd x)Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RH0:round beta (FLT_exp emin prec) Zrnd_odd x = xRabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rg:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falseRabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RH0:round beta (FLT_exp emin prec) Zrnd_odd x = x(Rabs x > 0)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rg:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falseRabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RH0:round beta (FLT_exp emin prec) Zrnd_odd x = x(0 < bpow beta (e - 1))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RH0:round beta (FLT_exp emin prec) Zrnd_odd x = x(bpow beta (e - 1) <= Rabs x)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rg:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falseRabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RH0:round beta (FLT_exp emin prec) Zrnd_odd x = x(bpow beta (e - 1) <= Rabs x)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rg:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falseRabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rg:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falseRabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rg:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gHg3:Z.even (Fnum g) = falseK:Rabs (F2R g) = 0%RFalsebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rg:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gK:Rabs (F2R g) = 0%RZ.even (Fnum g) <> falsebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rg:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gK:Rabs (F2R g) = 0%RZ.even 0 <> falsebeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rg:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gK:Rabs (F2R g) = 0%R0%Z = Fnum gbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rg:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gK:Rabs (F2R g) = 0%R0%Z = Fnum gbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rg:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gK:Rabs (F2R g) = 0%RW:Fnum g <> 0%Z0%Z = Fnum gbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rg:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gW:Fnum g <> 0%ZRabs (F2R g) <> 0%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rg:float betaHg1:round beta (FLT_exp emin prec) Zrnd_odd x = F2R gHg2:canonical beta (FLT_exp emin prec) gW:Fnum g <> 0%ZF2R g <> 0%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RRabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta eminbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%R(bpow beta emin <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%R(bpow beta emin <= succ beta (FLT_exp emin prec) 0)%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%R(succ beta (FLT_exp emin prec) 0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%Rbpow beta emin = ulp beta (FLT_exp emin prec) 0beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%R(succ beta (FLT_exp emin prec) 0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%RPrec_gt_0 precbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%R(Rabs 0 < bpow beta (emin + prec))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%R(succ beta (FLT_exp emin prec) 0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%R(Rabs 0 < bpow beta (emin + prec))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%R(succ beta (FLT_exp emin prec) 0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%R(succ beta (FLT_exp emin prec) 0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%Rformat 0beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%Rformat (Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%R(0 < Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%Rformat (Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%R(0 < Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG1:(Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <= bpow beta emin)%RG2:(0 <= Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%RG3:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) <> 0%R(0 < Rabs (round beta (FLT_exp emin prec) Zrnd_odd x))%Rbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (round beta (FLT_exp emin prec) Zrnd_odd x) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%Re:ZHe:x <> 0%R -> (bpow beta (e - 1) <= Rabs x < bpow beta e)%RH:(e <= emin)%ZG:Rabs (round beta (FLT_exp emin prec) Zrnd_odd x) = bpow beta emin(mag beta (Rabs (round beta (FLT_exp emin prec) Zrnd_odd x)) - prec <= emin)%Zbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xbeta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%R(emin < mag beta x)%Z -> cexp_flt (round beta (FLT_exp emin prec) Zrnd_odd x) = cexp_flt xnow rewrite mag_round_odd. Qed. End Odd_propbis.beta:radixEven_beta:Z.even beta = trueemin, prec:Zchoice:Z -> boolprec_gt_1:(1 < prec)%Zx:RG0:Valid_exp (FLT_exp emin prec)Zx:x <> 0%RH:(emin < mag beta x)%ZFLT_exp emin prec (mag beta (round beta (FLT_exp emin prec) Zrnd_odd x)) = FLT_exp emin prec (mag beta x)