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

Error of the rounded-to-nearest addition is representable.

Require Import Psatz.
Require Import Raux Defs Float_prop Generic_fmt.
Require Import FIX FLX FLT Ulp Operations.
Require Import Relative.


Section Fprop_plus_error.

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

Variable fexp : Z -> Z.
Context { valid_exp : Valid_exp fexp }.

Section round_repr_same_exp.

Variable rnd : R -> Z.
Context { valid_rnd : Valid_rnd rnd }.

beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall m e : Z, exists m' : Z, round beta fexp rnd (F2R {| Fnum := m; Fexp := e |}) = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall m e : Z, exists m' : Z, round beta fexp rnd (F2R {| Fnum := m; Fexp := e |}) = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z

exists m' : Z, round beta fexp rnd (F2R {| Fnum := m; Fexp := e |}) = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z

exists m' : Z, round beta fexp rnd (F2R {| Fnum := m; Fexp := e |}) = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z

exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- cexp beta fexp (F2R {| Fnum := m; Fexp := e |}))); Fexp := cexp beta fexp (F2R {| Fnum := m; Fexp := e |}) |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z

exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

F2R {| Fnum := rnd (IZR (Fnum {| Fnum := m; Fexp := e |}) * bpow (Fexp {| Fnum := m; Fexp := e |}) * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

F2R {| Fnum := rnd (IZR m * bpow e * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

F2R {| Fnum := rnd (IZR m * bpow (e + - e')); Fexp := e' |} = F2R {| Fnum := m; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

F2R {| Fnum := rnd (IZR m * IZR (beta ^ (e + - e'))); Fexp := e' |} = F2R {| Fnum := m; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z
(0 <= e + - e')%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

F2R {| Fnum := rnd (IZR m * IZR (beta ^ (e + - e'))); Fexp := e' |} = F2R {| Fnum := m; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

F2R {| Fnum := m * beta ^ (e + - e'); Fexp := e' |} = F2R {| Fnum := m; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

(IZR (Fnum {| Fnum := m * beta ^ (e + - e'); Fexp := e' |}) * bpow (Fexp {| Fnum := m * beta ^ (e + - e'); Fexp := e' |}))%R = (IZR (Fnum {| Fnum := m; Fexp := e |}) * bpow (Fexp {| Fnum := m; Fexp := e |}))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

(IZR (m * beta ^ (e + - e')) * bpow e')%R = (IZR m * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

(IZR m * IZR (beta ^ (e + - e')) * bpow e')%R = (IZR m * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

(IZR m * (IZR (beta ^ (e + - e')) * bpow e'))%R = (IZR m * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

(IZR m * (bpow (e + - e') * bpow e'))%R = (IZR m * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z
(0 <= e + - e')%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

(IZR m * (bpow (e + - e') * bpow e'))%R = (IZR m * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

(IZR m * bpow (e + - e' + e'))%R = (IZR m * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e' <= e)%Z

(e + - e' + e')%Z = e
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z

exists m' : Z, F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := m'; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z

F2R {| Fnum := rnd (F2R {| Fnum := m; Fexp := e |} * bpow (- e')); Fexp := e' |} = F2R {| Fnum := rnd (IZR m * bpow (e - e')) * beta ^ (e' - e); Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z

(IZR (Fnum {| Fnum := rnd (IZR (Fnum {| Fnum := m; Fexp := e |}) * bpow (Fexp {| Fnum := m; Fexp := e |}) * bpow (- e')); Fexp := e' |}) * bpow (Fexp {| Fnum := rnd (IZR (Fnum {| Fnum := m; Fexp := e |}) * bpow (Fexp {| Fnum := m; Fexp := e |}) * bpow (- e')); Fexp := e' |}))%R = (IZR (Fnum {| Fnum := rnd (IZR m * bpow (e - e')) * beta ^ (e' - e); Fexp := e |}) * bpow (Fexp {| Fnum := rnd (IZR m * bpow (e - e')) * beta ^ (e' - e); Fexp := e |}))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z

(IZR (rnd (IZR m * bpow e * bpow (- e'))) * bpow e')%R = (IZR (rnd (IZR m * bpow (e - e')) * beta ^ (e' - e)) * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z

(IZR (rnd (IZR m * bpow e * bpow (- e'))) * bpow e')%R = (IZR (rnd (IZR m * bpow (e - e'))) * IZR (beta ^ (e' - e)) * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z

(IZR (rnd (IZR m * bpow e * bpow (- e'))) * bpow e')%R = (IZR (rnd (IZR m * bpow (e - e'))) * bpow (e' - e) * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z
(0 <= e' - e)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z

(IZR (rnd (IZR m * bpow e * bpow (- e'))) * bpow e')%R = (IZR (rnd (IZR m * bpow (e - e'))) * bpow (e' - e) * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z

(IZR (rnd (IZR m * (bpow e * bpow (- e')))) * bpow e')%R = (IZR (rnd (IZR m * bpow (e - e'))) * (bpow (e' - e) * bpow e))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z

(IZR (rnd (IZR m * bpow (e + - e'))) * bpow e')%R = (IZR (rnd (IZR m * bpow (e - e'))) * bpow (e' - e + e))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
m, e:Z
e':=cexp beta fexp (F2R {| Fnum := m; Fexp := e |}):Z
He:(e < e')%Z

e' = (e' - e + e)%Z
ring. Qed. End round_repr_same_exp. Context { monotone_exp : Monotone_exp fexp }. Notation format := (generic_format beta fexp). Variable choice : Z -> bool.
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool

forall x y : R, (cexp beta fexp x <= cexp beta fexp y)%Z -> format x -> format y -> format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool

forall x y : R, (cexp beta fexp x <= cexp beta fexp y)%Z -> format x -> format y -> format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R

(cexp beta fexp x <= cexp beta fexp y)%Z -> format x -> format y -> format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z

(ex <= cexp beta fexp y)%Z -> format x -> format y -> format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z

(ex <= ey)%Z -> format x -> format y -> format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y

format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R = R0

format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R = R0

format R0
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0

format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z

format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z

format (round beta fexp (Znearest choice) (x + y) - (x + y))
(* *)
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z

(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z

(F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp x); Fexp := cexp beta fexp x |} + F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp y); Fexp := cexp beta fexp y |})%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z

(F2R {| Fnum := mx; Fexp := ex |} + F2R {| Fnum := my; Fexp := ey |})%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z

F2R (Fplus {| Fnum := mx; Fexp := ex |} {| Fnum := my; Fexp := ey |}) = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z

F2R (let '(m1, m2, e) := Falign {| Fnum := mx; Fexp := ex |} {| Fnum := my; Fexp := ey |} in {| Fnum := m1 + m2; Fexp := e |}) = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z

F2R (let '(m1, m2, e) := if (ex <=? ey)%Z then (mx, (my * beta ^ (ey - ex))%Z, ex) else ((mx * beta ^ (ex - ey))%Z, my, ey) in {| Fnum := m1 + m2; Fexp := e |}) = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}

format (round beta fexp (Znearest choice) (x + y) - (x + y))
(* *)
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}

format (round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
mxy:Z
Hxy':round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) = F2R {| Fnum := mxy; Fexp := ex |}

format (round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
mxy:Z
Hxy':round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) = F2R {| Fnum := mxy; Fexp := ex |}

format (F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
mxy:Z
Hxy':round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) = F2R {| Fnum := mxy; Fexp := ex |}

(F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})%R = F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
mxy:Z
Hxy':round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) = F2R {| Fnum := mxy; Fexp := ex |}
H:(F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})%R = F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}
format (F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
mxy:Z
Hxy':round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) = F2R {| Fnum := mxy; Fexp := ex |}
H:(F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})%R = F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}

format (F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
mxy:Z
Hxy':round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) = F2R {| Fnum := mxy; Fexp := ex |}
H:(F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})%R = F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}

format (F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |})
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
mxy:Z
Hxy':round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) = F2R {| Fnum := mxy; Fexp := ex |}
H:(F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})%R = F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}

(mxy - (mx + my * beta ^ (ey - ex)))%Z <> 0%Z -> (cexp beta fexp (F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}) <= ex)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
mxy:Z
Hxy':round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) = F2R {| Fnum := mxy; Fexp := ex |}
H:(F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})%R = F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}

(cexp beta fexp (F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}) <= ex)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
mxy:Z
Hxy':round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) = F2R {| Fnum := mxy; Fexp := ex |}
H:(F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})%R = F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}

(mag beta (F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}) <= mag beta x)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
mxy:Z
Hxy':round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) = F2R {| Fnum := mxy; Fexp := ex |}
H:(F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})%R = F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}

(mag beta (round beta fexp (Znearest choice) (x + y) - (x + y)) <= mag beta x)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
mxy:Z
Hxy':round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) = F2R {| Fnum := mxy; Fexp := ex |}
H:(F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})%R = F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}

(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
mxy:Z
Hxy':round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) = F2R {| Fnum := mxy; Fexp := ex |}
H:(F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})%R = F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}
(Rabs (round beta fexp (Znearest choice) (x + y) - (x + y)) <= Rabs x)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
mxy:Z
Hxy':round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) = F2R {| Fnum := mxy; Fexp := ex |}
H:(F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})%R = F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}

(Rabs (round beta fexp (Znearest choice) (x + y) - (x + y)) <= Rabs x)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
mxy:Z
Hxy':round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) = F2R {| Fnum := mxy; Fexp := ex |}
H:(F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})%R = F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}

(Rabs (round beta fexp (Znearest choice) (x + y) - (x + y)) <= Rabs (- (y - (x + y))))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
ex:=cexp beta fexp x:Z
ey:=cexp beta fexp y:Z
He:(ex <= ey)%Z
Hx:format x
Hy:format y
H0:(round beta fexp (Znearest choice) (x + y) - (x + y))%R <> R0
mx:=Ztrunc (scaled_mantissa beta fexp x):Z
my:=Ztrunc (scaled_mantissa beta fexp y):Z
Hxy:(x + y)%R = F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}
mxy:Z
Hxy':round beta fexp (Znearest choice) (F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |}) = F2R {| Fnum := mxy; Fexp := ex |}
H:(F2R {| Fnum := mxy; Fexp := ex |} - F2R {| Fnum := mx + my * beta ^ (ey - ex); Fexp := ex |})%R = F2R {| Fnum := mxy - (mx + my * beta ^ (ey - ex)); Fexp := ex |}

(Rabs (round beta fexp (Znearest choice) (x + y) - (x + y)) <= Rabs (y - (x + y)))%R
now apply (round_N_pt beta _ choice (x + y)). Qed.
Error of the addition
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool

forall x y : R, format x -> format y -> format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool

forall x y : R, format x -> format y -> format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
Hx:format x
Hy:format y

format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
Hx:format x
Hy:format y
H:(cexp beta fexp x <= cexp beta fexp y)%Z

format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
Hx:format x
Hy:format y
H:(cexp beta fexp y < cexp beta fexp x)%Z
format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
Hx:format x
Hy:format y
H:(cexp beta fexp y < cexp beta fexp x)%Z

format (round beta fexp (Znearest choice) (x + y) - (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
Hx:format x
Hy:format y
H:(cexp beta fexp y < cexp beta fexp x)%Z

format (round beta fexp (Znearest choice) (y + x) - (y + x))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
choice:Z -> bool
x, y:R
Hx:format x
Hy:format y
H:(cexp beta fexp y < cexp beta fexp x)%Z

(cexp beta fexp y <= cexp beta fexp x)%Z
now apply Zlt_le_weak. Qed. End Fprop_plus_error. Section Fprop_plus_zero. Variable beta : radix. Notation bpow e := (bpow beta e). Variable fexp : Z -> Z. Context { valid_exp : Valid_exp fexp }. Context { exp_not_FTZ : Exp_not_FTZ fexp }. Notation format := (generic_format beta fexp). Section round_plus_eq_zero_aux. Variable rnd : R -> Z. Context { valid_rnd : Valid_rnd rnd }.
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x y : R, (cexp beta fexp x <= cexp beta fexp y)%Z -> format x -> format y -> (0 < x + y)%R -> round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x y : R, (cexp beta fexp x <= cexp beta fexp y)%Z -> format x -> format y -> (0 < x + y)%R -> round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R

round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(x + y)%R <> 0%R -> (bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R

round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(x + y)%R <> 0%R -> (bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R

round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R

round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z

round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
round beta fexp rnd (x + y) <> 0%R
(* . *)
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z

(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z
H:(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z

(F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)); Fexp := fexp exy |} + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z
H:(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z

(F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)); Fexp := fexp exy |} + F2R {| Fnum := Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |})%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z
H:(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z
H:(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}

round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z
H:(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}

round beta fexp rnd (F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z
H:(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}

F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |} <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z
H:(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}
format (F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |})
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z
H:(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}

(x + y)%R <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z
H:(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}
format (F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |})
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z
H:(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}

format (F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |})
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z
H:(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}

(Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)))%Z <> 0%Z -> (cexp beta fexp (F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}) <= fexp exy)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z
H:(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}

(cexp beta fexp (F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}) <= fexp exy)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z
H:(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}

(cexp beta fexp (x + y) <= fexp exy)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z
H:(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}

(fexp (mag beta (x + y)) <= fexp exy)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(exy <= fexp exy)%Z
H:(x + y)%R = F2R {| Fnum := Ztrunc (x * bpow (- fexp exy)) + Ztrunc (y * bpow (- fexp exy)); Fexp := fexp exy |}

(fexp exy <= fexp exy)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z

round beta fexp rnd (x + y) <> 0%R
(* . *)
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
H:round beta fexp rnd (x + y) = 0%R

False
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
H:round beta fexp rnd (x + y) = 0%R

(round beta fexp rnd (Rabs (x + y)) < round beta fexp rnd (bpow (exy - 1)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
H:round beta fexp rnd (x + y) = 0%R

(round beta fexp rnd (x + y) < round beta fexp rnd (bpow (exy - 1)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
H:round beta fexp rnd (x + y) = 0%R

(0 < round beta fexp rnd (bpow (exy - 1)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
H:round beta fexp rnd (x + y) = 0%R

(0 < bpow (exy - 1))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
H:round beta fexp rnd (x + y) = 0%R
format (bpow (exy - 1))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
H:round beta fexp rnd (x + y) = 0%R

format (bpow (exy - 1))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
H:round beta fexp rnd (x + y) = 0%R

(fexp (exy - 1 + 1) <= exy - 1)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
He:(cexp beta fexp x <= cexp beta fexp y)%Z
Hx:format x
Hy:format y
Hxy:(0 < x + y)%R
exy:Z
Hexy:(bpow (exy - 1) <= Rabs (x + y) < bpow exy)%R
He':(fexp exy < exy)%Z
H:round beta fexp rnd (x + y) = 0%R

(fexp (exy - 1 + 1) < Z.succ (exy - 1))%Z
now rewrite (Zsucc_pred exy) in He'. Qed. End round_plus_eq_zero_aux. Variable rnd : R -> Z. Context { valid_rnd : Valid_rnd rnd }.
rnd(x+y)=0 -> x+y = 0 provided this is not a FTZ format
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x y : R, format x -> format y -> (x + y)%R <> 0%R -> round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x y : R, format x -> format y -> (x + y)%R <> 0%R -> round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R

round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(0 <= x + y)%R

round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
round beta fexp rnd (x + y) <> 0%R
(* . *)
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(0 <= x + y)%R
H2:(cexp beta fexp x <= cexp beta fexp y)%Z

round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(0 <= x + y)%R
H2:(cexp beta fexp y < cexp beta fexp x)%Z
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(0 <= x + y)%R
H2:(cexp beta fexp x <= cexp beta fexp y)%Z

(0 < x + y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(0 <= x + y)%R
H2:(cexp beta fexp y < cexp beta fexp x)%Z
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(0 <= x + y)%R
H2:(cexp beta fexp y < cexp beta fexp x)%Z

round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(0 <= x + y)%R
H2:(cexp beta fexp y < cexp beta fexp x)%Z

round beta fexp rnd (y + x) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(0 <= x + y)%R
H2:(cexp beta fexp y < cexp beta fexp x)%Z

(cexp beta fexp y <= cexp beta fexp x)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(0 <= x + y)%R
H2:(cexp beta fexp y < cexp beta fexp x)%Z
(0 < y + x)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(0 <= x + y)%R
H2:(cexp beta fexp y < cexp beta fexp x)%Z

(0 < y + x)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R

round beta fexp rnd (x + y) <> 0%R
(* . *)
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R

round beta fexp rnd (- (- x + - y)) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R

(- round beta fexp (Zrnd_opp rnd) (- x + - y))%R <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R

round beta fexp (Zrnd_opp rnd) (- x + - y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
H2:(cexp beta fexp (- x) <= cexp beta fexp (- y))%Z

round beta fexp (Zrnd_opp rnd) (- x + - y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
H2:(cexp beta fexp (- y) < cexp beta fexp (- x))%Z
round beta fexp (Zrnd_opp rnd) (- x + - y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
H2:(cexp beta fexp (- x) <= cexp beta fexp (- y))%Z

(0 < - x + - y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
H2:(cexp beta fexp (- y) < cexp beta fexp (- x))%Z
round beta fexp (Zrnd_opp rnd) (- x + - y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
H2:(cexp beta fexp (- y) < cexp beta fexp (- x))%Z

round beta fexp (Zrnd_opp rnd) (- x + - y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
H2:(cexp beta fexp (- y) < cexp beta fexp (- x))%Z

round beta fexp (Zrnd_opp rnd) (- y + - x) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
H2:(cexp beta fexp (- y) < cexp beta fexp (- x))%Z

(cexp beta fexp (- y) <= cexp beta fexp (- x))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
H2:(cexp beta fexp (- y) < cexp beta fexp (- x))%Z
(0 < - y + - x)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Hx:format x
Hy:format y
Hxy:(x + y)%R <> 0%R
H1:(x + y < 0)%R
H2:(cexp beta fexp (- y) < cexp beta fexp (- x))%Z

(0 < - y + - x)%R
lra. Qed.
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x y : R, format x -> format y -> round beta fexp rnd (x + y) = 0%R -> (x + y)%R = 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x y : R, format x -> format y -> round beta fexp rnd (x + y) = 0%R -> (x + y)%R = 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
H:round beta fexp rnd (x + y) = 0%R

(x + y)%R = 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
H:round beta fexp rnd (x + y) = 0%R
H':(x + y)%R = 0%R

(x + y)%R = 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
H:round beta fexp rnd (x + y) = 0%R
H':(x + y)%R <> 0%R
(x + y)%R = 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
H:round beta fexp rnd (x + y) = 0%R
H':(x + y)%R <> 0%R

(x + y)%R = 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
exp_not_FTZ:Exp_not_FTZ fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
H':(x + y)%R <> 0%R

round beta fexp rnd (x + y) <> 0%R
now apply round_plus_neq_0. Qed. End Fprop_plus_zero. Section Fprop_plus_FLT. Variable beta : radix. Notation bpow e := (bpow beta e). Variable emin prec : Z. Context { prec_gt_0_ : Prec_gt_0 prec }.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

forall x y : R, generic_format beta (FLT_exp emin prec) x -> generic_format beta (FLT_exp emin prec) y -> (Rabs (x + y) <= bpow (prec + emin))%R -> generic_format beta (FLT_exp emin prec) (x + y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

forall x y : R, generic_format beta (FLT_exp emin prec) x -> generic_format beta (FLT_exp emin prec) y -> (Rabs (x + y) <= bpow (prec + emin))%R -> generic_format beta (FLT_exp emin prec) (x + y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H:(Rabs (x + y) <= bpow (prec + emin))%R

generic_format beta (FLT_exp emin prec) (x + y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H:(Rabs (x + y) <= bpow (prec + emin))%R

(Rabs (x + y) <= bpow (emin + prec))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H:(Rabs (x + y) <= bpow (prec + emin))%R
generic_format beta (FIX_exp emin) (x + y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H:(Rabs (x + y) <= bpow (prec + emin))%R

generic_format beta (FIX_exp emin) (x + y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
Fx:FIX_format beta emin x
Fy:generic_format beta (FLT_exp emin prec) y
H:(Rabs (x + y) <= bpow (prec + emin))%R

generic_format beta (FIX_exp emin) (x + y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
Fx:FIX_format beta emin x
Fy:FIX_format beta emin y
H:(Rabs (x + y) <= bpow (prec + emin))%R

generic_format beta (FIX_exp emin) (x + y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
nx:float beta
H1x:x = F2R nx
H2x:Fexp nx = emin
Fy:FIX_format beta emin y
H:(Rabs (x + y) <= bpow (prec + emin))%R

generic_format beta (FIX_exp emin) (x + y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
nx:float beta
H1x:x = F2R nx
H2x:Fexp nx = emin
ny:float beta
H1y:y = F2R ny
H2y:Fexp ny = emin
H:(Rabs (x + y) <= bpow (prec + emin))%R

generic_format beta (FIX_exp emin) (x + y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
nx:float beta
H1x:x = F2R nx
H2x:Fexp nx = emin
ny:float beta
H1y:y = F2R ny
H2y:Fexp ny = emin
H:(Rabs (x + y) <= bpow (prec + emin))%R

FIX_format beta emin (x + y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
nx:float beta
H1x:x = F2R nx
H2x:Fexp nx = emin
ny:float beta
H1y:y = F2R ny
H2y:Fexp ny = emin
H:(Rabs (x + y) <= bpow (prec + emin))%R

(x + y)%R = F2R {| Fnum := Fnum nx + Fnum ny; Fexp := emin |}
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
nx:float beta
H1x:x = F2R nx
H2x:Fexp nx = emin
ny:float beta
H1y:y = F2R ny
H2y:Fexp ny = emin
H:(Rabs (x + y) <= bpow (prec + emin))%R
Fexp {| Fnum := Fnum nx + Fnum ny; Fexp := emin |} = emin
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
nx:float beta
H1x:x = F2R nx
H2x:Fexp nx = emin
ny:float beta
H1y:y = F2R ny
H2y:Fexp ny = emin
H:(Rabs (x + y) <= bpow (prec + emin))%R

(IZR (Fnum nx) * bpow (Fexp nx) + IZR (Fnum ny) * bpow (Fexp ny))%R = (IZR (Fnum nx + Fnum ny) * bpow emin)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
nx:float beta
H1x:x = F2R nx
H2x:Fexp nx = emin
ny:float beta
H1y:y = F2R ny
H2y:Fexp ny = emin
H:(Rabs (x + y) <= bpow (prec + emin))%R
Fexp {| Fnum := Fnum nx + Fnum ny; Fexp := emin |} = emin
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
nx:float beta
H1x:x = F2R nx
H2x:Fexp nx = emin
ny:float beta
H1y:y = F2R ny
H2y:Fexp ny = emin
H:(Rabs (x + y) <= bpow (prec + emin))%R

(IZR (Fnum nx) * bpow emin + IZR (Fnum ny) * bpow emin)%R = (IZR (Fnum nx + Fnum ny) * bpow emin)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
nx:float beta
H1x:x = F2R nx
H2x:Fexp nx = emin
ny:float beta
H1y:y = F2R ny
H2y:Fexp ny = emin
H:(Rabs (x + y) <= bpow (prec + emin))%R
Fexp {| Fnum := Fnum nx + Fnum ny; Fexp := emin |} = emin
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
nx:float beta
H1x:x = F2R nx
H2x:Fexp nx = emin
ny:float beta
H1y:y = F2R ny
H2y:Fexp ny = emin
H:(Rabs (x + y) <= bpow (prec + emin))%R

Fexp {| Fnum := Fnum nx + Fnum ny; Fexp := emin |} = emin
easy. Qed. Variable choice : Z -> bool.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
choice:Z -> bool

forall x y : R, generic_format beta (FLT_exp emin prec) x -> generic_format beta (FLT_exp emin prec) y -> exists eps : R, (Rabs eps <= u_ro beta prec / (1 + u_ro beta prec))%R /\ round beta (FLT_exp emin prec) (Znearest choice) (x + y) = ((x + y) * (1 + eps))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
choice:Z -> bool

forall x y : R, generic_format beta (FLT_exp emin prec) x -> generic_format beta (FLT_exp emin prec) y -> exists eps : R, (Rabs eps <= u_ro beta prec / (1 + u_ro beta prec))%R /\ round beta (FLT_exp emin prec) (Znearest choice) (x + y) = ((x + y) * (1 + eps))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
choice:Z -> bool
x, y:R
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y

exists eps : R, (Rabs eps <= u_ro beta prec / (1 + u_ro beta prec))%R /\ round beta (FLT_exp emin prec) (Znearest choice) (x + y) = ((x + y) * (1 + eps))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
choice:Z -> bool
x, y:R
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
Pb:(0 <= u_ro beta prec / (1 + u_ro beta prec))%R

exists eps : R, (Rabs eps <= u_ro beta prec / (1 + u_ro beta prec))%R /\ round beta (FLT_exp emin prec) (Znearest choice) (x + y) = ((x + y) * (1 + eps))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
choice:Z -> bool
x, y:R
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
Pb:(0 <= u_ro beta prec / (1 + u_ro beta prec))%R
M:(bpow (emin + prec - 1) <= Rabs (x + y))%R

exists eps : R, (Rabs eps <= u_ro beta prec / (1 + u_ro beta prec))%R /\ round beta (FLT_exp emin prec) (Znearest choice) (x + y) = ((x + y) * (1 + eps))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
choice:Z -> bool
x, y:R
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
Pb:(0 <= u_ro beta prec / (1 + u_ro beta prec))%R
M:(Rabs (x + y) < bpow (emin + prec - 1))%R
exists eps : R, (Rabs eps <= u_ro beta prec / (1 + u_ro beta prec))%R /\ round beta (FLT_exp emin prec) (Znearest choice) (x + y) = ((x + y) * (1 + eps))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
choice:Z -> bool
x, y:R
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
Pb:(0 <= u_ro beta prec / (1 + u_ro beta prec))%R
M:(bpow (emin + prec - 1) <= Rabs (x + y))%R

exists eps : R, (Rabs eps <= u_ro beta prec / (1 + u_ro beta prec))%R /\ round beta (FLT_exp emin prec) (Znearest choice) (x + y) = ((x + y) * (1 + eps))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
choice:Z -> bool
x, y:R
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
Pb:(0 <= u_ro beta prec / (1 + u_ro beta prec))%R
M:(bpow (emin + prec - 1) <= Rabs (x + y))%R
d:R
Bd:(Rabs d <= u_ro beta prec / (1 + u_ro beta prec))%R
Hd:round beta (FLX_exp prec) (Znearest choice) (x + y) = ((x + y) * (1 + d))%R

exists eps : R, (Rabs eps <= u_ro beta prec / (1 + u_ro beta prec))%R /\ round beta (FLT_exp emin prec) (Znearest choice) (x + y) = ((x + y) * (1 + eps))%R
now exists d; split; [exact Bd|]; rewrite <- Hd; apply round_FLT_FLX.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
choice:Z -> bool
x, y:R
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
Pb:(0 <= u_ro beta prec / (1 + u_ro beta prec))%R
M:(Rabs (x + y) < bpow (emin + prec - 1))%R

exists eps : R, (Rabs eps <= u_ro beta prec / (1 + u_ro beta prec))%R /\ round beta (FLT_exp emin prec) (Znearest choice) (x + y) = ((x + y) * (1 + eps))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
choice:Z -> bool
x, y:R
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
Pb:(0 <= u_ro beta prec / (1 + u_ro beta prec))%R
M:(Rabs (x + y) < bpow (emin + prec - 1))%R

round beta (FLT_exp emin prec) (Znearest choice) (x + y) = (x + y)%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
choice:Z -> bool
x, y:R
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
Pb:(0 <= u_ro beta prec / (1 + u_ro beta prec))%R
M:(Rabs (x + y) < bpow (emin + prec - 1))%R

generic_format beta (FLT_exp emin prec) (x + y)
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
choice:Z -> bool
x, y:R
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
Pb:(0 <= u_ro beta prec / (1 + u_ro beta prec))%R
M:(Rabs (x + y) < bpow (emin + prec - 1))%R

(Rabs (x + y) <= bpow (prec + emin))%R
apply Rlt_le, (Rlt_le_trans _ _ _ M), bpow_le; lia. Qed.
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
choice:Z -> bool

forall x y : R, generic_format beta (FLT_exp emin prec) x -> generic_format beta (FLT_exp emin prec) y -> exists eps : R, (Rabs eps <= u_ro beta prec)%R /\ (x + y)%R = (round beta (FLT_exp emin prec) (Znearest choice) (x + y) * (1 + eps))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
choice:Z -> bool

forall x y : R, generic_format beta (FLT_exp emin prec) x -> generic_format beta (FLT_exp emin prec) y -> exists eps : R, (Rabs eps <= u_ro beta prec)%R /\ (x + y)%R = (round beta (FLT_exp emin prec) (Znearest choice) (x + y) * (1 + eps))%R
beta:radix
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
choice:Z -> bool
x, y:R
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y

exists eps : R, (Rabs eps <= u_ro beta prec)%R /\ (x + y)%R = (round beta (FLT_exp emin prec) (Znearest choice) (x + y) * (1 + eps))%R
now apply relative_error_N_round_ex_derive, FLT_plus_error_N_ex. Qed. End Fprop_plus_FLT. Section Fprop_plus_mult_ulp. Variable beta : radix. Notation bpow e := (bpow beta e). Variable fexp : Z -> Z. Context { valid_exp : Valid_exp fexp }. Context { monotone_exp : Monotone_exp fexp }. Variable rnd : R -> Z. Context { valid_rnd : Valid_rnd rnd }. Notation format := (generic_format beta fexp). Notation cexp := (cexp beta fexp).
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall (x : R) (e : Z), format x -> (e <= cexp x)%Z -> exists m : Z, x = (IZR m * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall (x : R) (e : Z), format x -> (e <= cexp x)%Z -> exists m : Z, x = (IZR m * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(e <= cexp x)%Z

exists m : Z, x = (IZR m * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(e <= cexp x)%Z

x = (IZR (Ztrunc (scaled_mantissa beta fexp x) * beta ^ (cexp x - e)) * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(e <= cexp x)%Z

(IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp x))%R = (IZR (Ztrunc (scaled_mantissa beta fexp x) * beta ^ (cexp x - e)) * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(e <= cexp x)%Z

(IZR (Ztrunc (scaled_mantissa beta fexp x)) * bpow (cexp x))%R = (IZR (Ztrunc (scaled_mantissa beta fexp x)) * (IZR (beta ^ (cexp x - e)) * bpow e))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(e <= cexp x)%Z

bpow (cexp x) = (IZR (beta ^ (cexp x - e)) * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(e <= cexp x)%Z

bpow (cexp x) = (bpow (cexp x - e) * bpow e)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(e <= cexp x)%Z
(0 <= cexp x - e)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x:R
e:Z
Fx:format x
He:(e <= cexp x)%Z

bpow (cexp x) = (bpow (cexp x - e) * bpow e)%R
rewrite <- bpow_plus; f_equal; ring. Qed.
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall z : R, z <> 0%R -> (mag beta z - 1)%Z = mag beta (z / IZR beta)
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall z : R, z <> 0%R -> (mag beta z - 1)%Z = mag beta (z / IZR beta)
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
z:R
Hz:z <> 0%R

(mag beta z - 1)%Z = mag beta (z / IZR beta)
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
z:R
Hz:z <> 0%R

(mag beta z + - (1))%Z = mag beta (z / IZR beta)
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
z:R
Hz:z <> 0%R

mag beta (z * bpow (- (1))) = mag beta (z / IZR beta)
now rewrite bpow_opp, bpow_1. Qed.
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x y : R, format x -> format y -> x <> 0%R -> exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd

forall x y : R, format x -> format y -> x <> 0%R -> exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R

exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta (x / IZR beta) <= mag beta y)%Z

exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta (x / IZR beta) <= mag beta y)%Z
e:=cexp (x / IZR beta):Z

exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta (x / IZR beta) <= mag beta y)%Z
e:=cexp (x / IZR beta):Z

(e <= cexp x)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta (x / IZR beta) <= mag beta y)%Z
e:=cexp (x / IZR beta):Z
nx:Z
Hnx:x = (IZR nx * bpow e)%R
exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta (x / IZR beta) <= mag beta y)%Z
e:=cexp (x / IZR beta):Z

(mag beta (x / IZR beta) <= mag beta x)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta (x / IZR beta) <= mag beta y)%Z
e:=cexp (x / IZR beta):Z
nx:Z
Hnx:x = (IZR nx * bpow e)%R
exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta (x / IZR beta) <= mag beta y)%Z
e:=cexp (x / IZR beta):Z
nx:Z
Hnx:x = (IZR nx * bpow e)%R

exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta (x / IZR beta) <= mag beta y)%Z
e:=cexp (x / IZR beta):Z
nx:Z
Hnx:x = (IZR nx * bpow e)%R

(e <= cexp y)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta (x / IZR beta) <= mag beta y)%Z
e:=cexp (x / IZR beta):Z
nx:Z
Hnx:x = (IZR nx * bpow e)%R
ny:Z
Hny:y = (IZR ny * bpow e)%R
exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta (x / IZR beta) <= mag beta y)%Z
e:=cexp (x / IZR beta):Z
nx:Z
Hnx:x = (IZR nx * bpow e)%R
ny:Z
Hny:y = (IZR ny * bpow e)%R

exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta (x / IZR beta) <= mag beta y)%Z
e:=cexp (x / IZR beta):Z
nx:Z
Hnx:x = (IZR nx * bpow e)%R
ny:Z
Hny:y = (IZR ny * bpow e)%R
n:Z
Hn:round beta fexp rnd (F2R {| Fnum := nx + ny; Fexp := e |}) = F2R {| Fnum := n; Fexp := e |}

exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta (x / IZR beta) <= mag beta y)%Z
e:=cexp (x / IZR beta):Z
nx:Z
Hnx:x = (IZR nx * bpow e)%R
ny:Z
Hny:y = (IZR ny * bpow e)%R
n:Z
Hn:round beta fexp rnd (F2R {| Fnum := nx + ny; Fexp := e |}) = F2R {| Fnum := n; Fexp := e |}

round beta fexp rnd (x + y) = F2R {| Fnum := n; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta (x / IZR beta) <= mag beta y)%Z
e:=cexp (x / IZR beta):Z
nx:Z
Hnx:x = (IZR nx * bpow e)%R
ny:Z
Hny:y = (IZR ny * bpow e)%R
n:Z
Hn:round beta fexp rnd (F2R {| Fnum := nx + ny; Fexp := e |}) = F2R {| Fnum := n; Fexp := e |}

round beta fexp rnd (x + y) = F2R {| Fnum := n; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta (x / IZR beta) <= mag beta y)%Z
e:=cexp (x / IZR beta):Z
nx:Z
Hnx:x = (IZR nx * bpow e)%R
ny:Z
Hny:y = (IZR ny * bpow e)%R
n:Z
Hn:round beta fexp rnd (F2R {| Fnum := nx + ny; Fexp := e |}) = F2R {| Fnum := n; Fexp := e |}

(x + y)%R = F2R {| Fnum := nx + ny; Fexp := e |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z

exists m : Z, round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z

exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
(* *)
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z

format (round beta fexp rnd (x + y))
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x / IZR beta) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z

(cexp (x / IZR beta) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z

(cexp (x / IZR beta) <= cexp (x + y))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z

(mag beta (x / IZR beta) <= mag beta (x + y))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z

(mag beta x - 1 <= mag beta (x + y))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z

(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
(* . *)
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z

Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z

forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R

(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(0 <= y)%R

(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(y < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R

(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(0 <= y)%R
Hy':0%R = y
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(y < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(0 <= x)%R

(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(x < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(0 <= y)%R
Hy':0%R = y
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(y < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(0 <= x)%R

Rabs (x + y) = (Rabs x + y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - y)%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(x < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(0 <= y)%R
Hy':0%R = y
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(y < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(0 <= x)%R

Rabs (x + y) = (x + y)%R \/ y <> 0%R /\ Rabs (x + y) = (x - y)%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(x < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(0 <= y)%R
Hy':0%R = y
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(y < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(0 <= x)%R

(0 <= x + y)%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(x < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(0 <= y)%R
Hy':0%R = y
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(y < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(x < 0)%R

(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(0 <= y)%R
Hy':0%R = y
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(y < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(x < 0)%R

(y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - y)%R
x, y:R
Hy:(0 <= y)%R
Hy':0%R = y
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(y < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(x < 0)%R

(y <= - x)%R -> Rabs (x + y) = (- x + y)%R \/ y <> 0%R /\ Rabs (x + y) = (- x - y)%R
x, y:R
Hy:(0 <= y)%R
Hy':0%R = y
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(y < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(x < 0)%R
H:(y <= - x)%R

y <> 0%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(x < 0)%R
H:(y <= - x)%R
Rabs (x + y) = (- x - y)%R
x, y:R
Hy:(0 <= y)%R
Hy':0%R = y
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(y < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(x < 0)%R
H:(y <= - x)%R

Rabs (x + y) = (- x - y)%R
x, y:R
Hy:(0 <= y)%R
Hy':0%R = y
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(y < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(x < 0)%R
H:(y <= - x)%R

(- (x + y))%R = (- x - y)%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(x < 0)%R
H:(y <= - x)%R
(x + y <= 0)%R
x, y:R
Hy:(0 <= y)%R
Hy':0%R = y
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(y < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(0 <= y)%R
Hy':(0 < y)%R
Hx:(x < 0)%R
H:(y <= - x)%R

(x + y <= 0)%R
x, y:R
Hy:(0 <= y)%R
Hy':0%R = y
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(y < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(0 <= y)%R
Hy':0%R = y

(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(y < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(0 <= y)%R
Hy':0%R = y

Rabs (x + y) = (Rabs x + Rabs y)%R
x, y:R
Hy:(y < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(y < 0)%R

(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(y < 0)%R
Hx:(0 <= x)%R

(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
x, y:R
Hy:(y < 0)%R
Hx:(x < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(y < 0)%R
Hx:(0 <= x)%R

(- y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + - y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - - y)%R
x, y:R
Hy:(y < 0)%R
Hx:(x < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(y < 0)%R
Hx:(0 <= x)%R

(- y <= x)%R -> Rabs (x + y) = (x + - y)%R \/ y <> 0%R /\ Rabs (x + y) = (x - - y)%R
x, y:R
Hy:(y < 0)%R
Hx:(x < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(y < 0)%R
Hx:(0 <= x)%R
H:(- y <= x)%R

y <> 0%R
x, y:R
Hy:(y < 0)%R
Hx:(0 <= x)%R
H:(- y <= x)%R
Rabs (x + y) = (x - - y)%R
x, y:R
Hy:(y < 0)%R
Hx:(x < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(y < 0)%R
Hx:(0 <= x)%R
H:(- y <= x)%R

Rabs (x + y) = (x - - y)%R
x, y:R
Hy:(y < 0)%R
Hx:(x < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(y < 0)%R
Hx:(0 <= x)%R
H:(- y <= x)%R

(x + y)%R = (x - - y)%R
x, y:R
Hy:(y < 0)%R
Hx:(0 <= x)%R
H:(- y <= x)%R
(0 <= x + y)%R
x, y:R
Hy:(y < 0)%R
Hx:(x < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(y < 0)%R
Hx:(0 <= x)%R
H:(- y <= x)%R

(0 <= x + y)%R
x, y:R
Hy:(y < 0)%R
Hx:(x < 0)%R
(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(y < 0)%R
Hx:(x < 0)%R

(Rabs y <= Rabs x)%R -> Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(y < 0)%R
Hx:(x < 0)%R

Rabs (x + y) = (Rabs x + Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(y < 0)%R
Hx:(x < 0)%R

Rabs (x + y) = (Rabs x + - y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(y < 0)%R
Hx:(x < 0)%R

Rabs (x + y) = (- x + - y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(y < 0)%R
Hx:(x < 0)%R

(- (x + y))%R = (- x + - y)%R
x, y:R
Hy:(y < 0)%R
Hx:(x < 0)%R
(x + y <= 0)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
x, y:R
Hy:(y < 0)%R
Hx:(x < 0)%R

(x + y <= 0)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R

Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R

(Rabs y < Rabs x)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R

(0 < Rabs x)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R
(mag beta (Rabs y) < mag beta (Rabs x))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R

(mag beta (Rabs y) < mag beta (Rabs x))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta x - 1)%Z
V:forall x0 y0 : R, (Rabs y0 <= Rabs x0)%R -> Rabs (x0 + y0) = (Rabs x0 + Rabs y0)%R \/ y0 <> 0%R /\ Rabs (x0 + y0) = (Rabs x0 - Rabs y0)%R

(mag beta (Rabs y) < mag beta (Rabs x))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R \/ y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R

(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
(* . *)
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R

(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R

(mag beta x - 1 <= mag beta x)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R
(mag beta x <= mag beta (Rabs x + Rabs y))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R

(mag beta x <= mag beta (Rabs x + Rabs y))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R

(mag beta (Rabs x) <= mag beta (Rabs x + Rabs y))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R

(0 < Rabs x)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R
(Rabs x <= Rabs x + Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R

(Rabs x <= Rabs x + Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:Rabs (x + y) = (Rabs x + Rabs y)%R

(0 <= Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U:y <> 0%R /\ Rabs (x + y) = (Rabs x - Rabs y)%R

(mag beta x - 1 <= mag beta (Rabs (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U':y <> 0%R
U:Rabs (x + y) = (Rabs x - Rabs y)%R

(mag beta x - 1 <= mag beta (Rabs x - Rabs y))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U':y <> 0%R
U:Rabs (x + y) = (Rabs x - Rabs y)%R

(mag beta (Rabs x) - 1 <= mag beta (Rabs x - Rabs y))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U':y <> 0%R
U:Rabs (x + y) = (Rabs x - Rabs y)%R

(0 < Rabs x)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U':y <> 0%R
U:Rabs (x + y) = (Rabs x - Rabs y)%R
(0 < Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U':y <> 0%R
U:Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta (Rabs y) <= mag beta (Rabs x) - 2)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U':y <> 0%R
U:Rabs (x + y) = (Rabs x - Rabs y)%R

(0 < Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U':y <> 0%R
U:Rabs (x + y) = (Rabs x - Rabs y)%R
(mag beta (Rabs y) <= mag beta (Rabs x) - 2)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U':y <> 0%R
U:Rabs (x + y) = (Rabs x - Rabs y)%R

(mag beta (Rabs y) <= mag beta (Rabs x) - 2)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U':y <> 0%R
U:Rabs (x + y) = (Rabs x - Rabs y)%R

(mag beta y <= mag beta x - 2)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U':y <> 0%R
U:Rabs (x + y) = (Rabs x - Rabs y)%R

(mag beta y < mag beta x - 1)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U':y <> 0%R
U:Rabs (x + y) = (Rabs x - Rabs y)%R
H:(mag beta y < mag beta x - 1)%Z
(mag beta y <= mag beta x - 2)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
U':y <> 0%R
U:Rabs (x + y) = (Rabs x - Rabs y)%R
H:(mag beta y < mag beta x - 1)%Z

(mag beta y <= mag beta x - 2)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z

(cexp (x + y) <= cexp (round beta fexp rnd (x + y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z

round beta fexp rnd (x + y) <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z

(x + y)%R <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(x + y)%R = 0%R

(mag beta (x / IZR beta) <= mag beta y)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(x + y)%R = 0%R

(mag beta x - 1 <= mag beta y)%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(x + y)%R = 0%R

(mag beta x - 1 <= mag beta (- x))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(x + y)%R = 0%R
(- x)%R = y
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(x + y)%R = 0%R

(- x)%R = y
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R
exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
H1:(mag beta y < mag beta (x / IZR beta))%Z
n:Z
Hn:round beta fexp rnd (x + y) = (IZR n * bpow (cexp (x / IZR beta)))%R

exists m : Z, round beta fexp rnd (x + y) = (IZR m * bpow (cexp (x / IZR beta)))%R
now exists n. Qed. Context {exp_not_FTZ : Exp_not_FTZ fexp}.
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp

forall x y : R, format x -> format y -> round beta fexp rnd (x + y) <> 0%R -> (ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp

forall x y : R, format x -> format y -> round beta fexp rnd (x + y) <> 0%R -> (ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R

(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R

(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
(* *)
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R

(ulp beta fexp (0 / IZR beta) <= Rabs (round beta fexp rnd y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R

(ulp beta fexp (0 / IZR beta) <= Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R

(ulp beta fexp 0 <= Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R

(ulp beta fexp 0 <= Rabs (F2R {| Fnum := Ztrunc (scaled_mantissa beta fexp y); Fexp := cexp y |}))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R

(ulp beta fexp 0 <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))) * Rabs (bpow (cexp y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R

(ulp beta fexp 0 <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))) * bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) = 0%Z

(ulp beta fexp 0 <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))) * bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z
(ulp beta fexp 0 <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))) * bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) = 0%Z

round beta fexp rnd (x + y) = 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z
(ulp beta fexp 0 <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))) * bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) = 0%Z

round beta fexp rnd (0 + 0 * bpow (cexp y)) = 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z
(ulp beta fexp 0 <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))) * bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) = 0%Z

round beta fexp rnd 0 = 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z
(ulp beta fexp 0 <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))) * bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z

(ulp beta fexp 0 <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))) * bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z

(ulp beta fexp 0 <= 1 * bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z
(1 * bpow (cexp y) <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))) * bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z

(ulp beta fexp 0 <= bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z
(1 * bpow (cexp y) <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))) * bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z

(ulp beta fexp 0 <= ulp beta fexp y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z
y <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z
(1 * bpow (cexp y) <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))) * bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z

y <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z
(1 * bpow (cexp y) <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))) * bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z
K:y = 0%R

Ztrunc (scaled_mantissa beta fexp y) = 0%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z
(1 * bpow (cexp y) <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))) * bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z
K:y = 0%R

Ztrunc 0 = 0%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z
(1 * bpow (cexp y) <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))) * bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z

(1 * bpow (cexp y) <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))) * bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z

(0 <= bpow (cexp y))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z
(1 <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z

(1 <= Rabs (IZR (Ztrunc (scaled_mantissa beta fexp y))))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z

(1 <= IZR (Z.abs (Ztrunc (scaled_mantissa beta fexp y))))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z

(1 <= Z.abs (Ztrunc (scaled_mantissa beta fexp y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x = 0%R
Hm:Ztrunc (scaled_mantissa beta fexp y) <> 0%Z

(0 < Z.abs (Ztrunc (scaled_mantissa beta fexp y)))%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R

(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
(* *)
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}

(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m = 0%Z

(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m = 0%Z

round beta fexp rnd (x + y) = 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m = 0%Z

F2R {| Fnum := 0; Fexp := cexp (x / IZR beta) |} = 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z
(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z

(ulp beta fexp (x / IZR beta) <= Rabs (round beta fexp rnd (x + y)))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z

(ulp beta fexp (x / IZR beta) <= F2R {| Fnum := Z.abs m; Fexp := cexp (x / IZR beta) |})%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z

(bpow (cexp (x / IZR beta)) <= F2R {| Fnum := Z.abs m; Fexp := cexp (x / IZR beta) |})%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z
(x / IZR beta)%R <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z

(1 * bpow (cexp (x / IZR beta)) <= F2R {| Fnum := Z.abs m; Fexp := cexp (x / IZR beta) |})%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z
(x / IZR beta)%R <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z

(0 <= bpow (Fexp {| Fnum := Z.abs m; Fexp := cexp (x / IZR beta) |}))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z
(1 <= IZR (Fnum {| Fnum := Z.abs m; Fexp := cexp (x / IZR beta) |}))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z
(x / IZR beta)%R <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z

(1 <= IZR (Fnum {| Fnum := Z.abs m; Fexp := cexp (x / IZR beta) |}))%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z
(x / IZR beta)%R <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z

(1 <= Fnum {| Fnum := Z.abs m; Fexp := cexp (x / IZR beta) |})%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z
(x / IZR beta)%R <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z

(0 < Fnum {| Fnum := Z.abs m; Fexp := cexp (x / IZR beta) |})%Z
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z
(x / IZR beta)%R <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z

(x / IZR beta)%R <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z

(/ IZR beta)%R <> 0%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
monotone_exp:Monotone_exp fexp
rnd:R -> Z
valid_rnd:Valid_rnd rnd
exp_not_FTZ:Exp_not_FTZ fexp
x, y:R
Fx:format x
Fy:format y
KK:round beta fexp rnd (x + y) <> 0%R
Zx:x <> 0%R
m:Z
Hm:round beta fexp rnd (x + y) = F2R {| Fnum := m; Fexp := cexp (x / IZR beta) |}
Zm:m <> 0%Z

IZR beta <> 0%R
apply Rgt_not_eq, radix_pos. Qed. End Fprop_plus_mult_ulp. Section Fprop_plus_ge_ulp. Variable beta : radix. Notation bpow e := (bpow beta e). Variable rnd : R -> Z. Context { valid_rnd : Valid_rnd rnd }. Variable emin prec : Z. Context { prec_gt_0_ : Prec_gt_0 prec }.
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

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

forall (x y : R) (e : Z), generic_format beta (FLT_exp emin prec) x -> generic_format beta (FLT_exp emin prec) y -> (bpow (e + prec) <= Rabs x)%R -> round beta (FLT_exp emin prec) rnd (x + y) <> 0%R -> (bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R

(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R

x <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
He:x = 0%R

~ (bpow (e + prec) <= Rabs x)%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
He:x = 0%R

(0 < bpow (e + prec))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(bpow e <= ulp beta (FLT_exp emin prec) (x / IZR beta))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta (FLT_exp emin prec) (x / IZR beta) <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(bpow e <= ulp beta (FLT_exp emin prec) (x / IZR beta))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(bpow e <= bpow (cexp beta (FLT_exp emin prec) (x / IZR beta)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(bpow e <= bpow (FLT_exp emin prec (mag beta (x / IZR beta))))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(bpow e <= bpow (FLT_exp emin prec (mag beta x - 1)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(e <= Z.max (mag beta x - 1 - prec) emin)%Z
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(e <= mag beta x - 1 - prec)%Z
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
n:Z
Hn:x <> 0%R -> (bpow (n - 1) <= Rabs x < bpow n)%R

(e <= n - 1 - prec)%Z
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
n:Z
Hn:x <> 0%R -> (bpow (n - 1) <= Rabs x < bpow n)%R

(e + prec < n)%Z
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
n:Z
Hn:x <> 0%R -> (bpow (n - 1) <= Rabs x < bpow n)%R

(bpow (e + prec) < bpow n)%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
n:Z
Hn:x <> 0%R -> (bpow (n - 1) <= Rabs x < bpow n)%R

(Rabs x < bpow n)%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(/ IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

IZR beta <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(IZR beta > 0)%R
apply radix_pos. Qed.
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

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

forall (x y : R) (e : Z), generic_format beta (FLT_exp emin prec) x -> generic_format beta (FLT_exp emin prec) y -> (x <> 0%R -> (bpow (e + prec) <= Rabs x)%R) -> (x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R) -> round beta (FLT_exp emin prec) rnd (x + y) <> 0%R -> (bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H1:x <> 0%R -> (bpow (e + prec) <= Rabs x)%R
H2:x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R
H3:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R

(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H1:x <> 0%R -> (bpow (e + prec) <= Rabs x)%R
H2:x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R
H3:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
H4:x = 0%R

(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H1:x <> 0%R -> (bpow (e + prec) <= Rabs x)%R
H2:x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R
H3:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
H4:x <> 0%R
(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H1:x <> 0%R -> (bpow (e + prec) <= Rabs x)%R
H2:x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R
H3:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
H4:x = 0%R
H5:y = 0%R

(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H1:x <> 0%R -> (bpow (e + prec) <= Rabs x)%R
H2:x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R
H3:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
H4:x = 0%R
H5:y <> 0%R
(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H1:x <> 0%R -> (bpow (e + prec) <= Rabs x)%R
H2:x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R
H3:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
H4:x <> 0%R
(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H1:x <> 0%R -> (bpow (e + prec) <= Rabs x)%R
H2:x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R
H4:x = 0%R
H5:y = 0%R

round beta (FLT_exp emin prec) rnd (x + y) = 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H1:x <> 0%R -> (bpow (e + prec) <= Rabs x)%R
H2:x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R
H3:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
H4:x = 0%R
H5:y <> 0%R
(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H1:x <> 0%R -> (bpow (e + prec) <= Rabs x)%R
H2:x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R
H3:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
H4:x <> 0%R
(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H1:x <> 0%R -> (bpow (e + prec) <= Rabs x)%R
H2:x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R
H3:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
H4:x = 0%R
H5:y <> 0%R

(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H1:x <> 0%R -> (bpow (e + prec) <= Rabs x)%R
H2:x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R
H3:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
H4:x <> 0%R
(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H1:x <> 0%R -> (bpow (e + prec) <= Rabs x)%R
H2:x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R
H3:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
H4:x = 0%R
H5:y <> 0%R

(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd y))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H1:x <> 0%R -> (bpow (e + prec) <= Rabs x)%R
H2:x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R
H3:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
H4:x <> 0%R
(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H1:x <> 0%R -> (bpow (e + prec) <= Rabs x)%R
H2:x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R
H3:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
H4:x <> 0%R

(bpow e <= Rabs (round beta (FLT_exp emin prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLT_exp emin prec) x
Fy:generic_format beta (FLT_exp emin prec) y
H1:x <> 0%R -> (bpow (e + prec) <= Rabs x)%R
H2:x = 0%R -> y <> 0%R -> (bpow e <= Rabs y)%R
H3:round beta (FLT_exp emin prec) rnd (x + y) <> 0%R
H4:x <> 0%R

(bpow (e + prec) <= Rabs x)%R
now apply H1. Qed.
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec

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

forall (x y : R) (e : Z), generic_format beta (FLX_exp prec) x -> generic_format beta (FLX_exp prec) y -> (bpow (e + prec) <= Rabs x)%R -> round beta (FLX_exp prec) rnd (x + y) <> 0%R -> (bpow e <= Rabs (round beta (FLX_exp prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R

(bpow e <= Rabs (round beta (FLX_exp prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R

x <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(bpow e <= Rabs (round beta (FLX_exp prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
He:x = 0%R

~ (bpow (e + prec) <= Rabs x)%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(bpow e <= Rabs (round beta (FLX_exp prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
He:x = 0%R

(0 < bpow (e + prec))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(bpow e <= Rabs (round beta (FLX_exp prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(bpow e <= Rabs (round beta (FLX_exp prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(bpow e <= ulp beta (FLX_exp prec) (x / IZR beta))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(ulp beta (FLX_exp prec) (x / IZR beta) <= Rabs (round beta (FLX_exp prec) rnd (x + y)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(bpow e <= ulp beta (FLX_exp prec) (x / IZR beta))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(bpow e <= bpow (cexp beta (FLX_exp prec) (x / IZR beta)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(bpow e <= bpow (FLX_exp prec (mag beta (x / IZR beta))))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(bpow e <= bpow (FLX_exp prec (mag beta x - 1)))%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(e <= mag beta x - 1 - prec)%Z
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
n:Z
Hn:x <> 0%R -> (bpow (n - 1) <= Rabs x < bpow n)%R

(e <= n - 1 - prec)%Z
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
n:Z
Hn:x <> 0%R -> (bpow (n - 1) <= Rabs x < bpow n)%R

(e + prec < n)%Z
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
n:Z
Hn:x <> 0%R -> (bpow (n - 1) <= Rabs x < bpow n)%R

(bpow (e + prec) < bpow n)%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
n:Z
Hn:x <> 0%R -> (bpow (n - 1) <= Rabs x < bpow n)%R

(Rabs x < bpow n)%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R
(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(x / IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(/ IZR beta)%R <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

IZR beta <> 0%R
beta:radix
rnd:R -> Z
valid_rnd:Valid_rnd rnd
emin, prec:Z
prec_gt_0_:Prec_gt_0 prec
x, y:R
e:Z
Fx:generic_format beta (FLX_exp prec) x
Fy:generic_format beta (FLX_exp prec) y
He:(bpow (e + prec) <= Rabs x)%R
KK:round beta (FLX_exp prec) rnd (x + y) <> 0%R
Zx:x <> 0%R

(IZR beta > 0)%R
apply radix_pos. Qed. End Fprop_plus_ge_ulp. Section Fprop_plus_le_ops. Variable beta : radix. Variable fexp : Z -> Z. Context { valid_exp : Valid_exp fexp }. Variable choice : Z -> bool.
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
choice:Z -> bool

forall x y : R, generic_format beta fexp x -> generic_format beta fexp y -> (Rabs (round beta fexp (Znearest choice) (x + y) - (x + y)) <= Rabs x)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
choice:Z -> bool

forall x y : R, generic_format beta fexp x -> generic_format beta fexp y -> (Rabs (round beta fexp (Znearest choice) (x + y) - (x + y)) <= Rabs x)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
choice:Z -> bool
x, y:R
Fx:generic_format beta fexp x
Fy:generic_format beta fexp y

(Rabs (round beta fexp (Znearest choice) (x + y) - (x + y)) <= Rabs x)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
choice:Z -> bool
x, y:R
Fx:generic_format beta fexp x
Fy:generic_format beta fexp y

(Rabs (y - (x + y)) <= Rabs x)%R
rewrite Rabs_minus_sym; right; f_equal; ring. Qed.
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
choice:Z -> bool

forall x y : R, generic_format beta fexp x -> generic_format beta fexp y -> (Rabs (round beta fexp (Znearest choice) (x + y) - (x + y)) <= Rabs y)%R
beta:radix
fexp:Z -> Z
valid_exp:Valid_exp fexp
choice:Z -> bool

forall x y : R, generic_format beta fexp x -> generic_format beta fexp y -> (Rabs (round beta fexp (Znearest choice) (x + y) - (x + y)) <= Rabs y)%R
now intros x y Fx Fy; rewrite Rplus_comm; apply plus_error_le_l. Qed. End Fprop_plus_le_ops.