Notation bpow e := (bpow beta e).Notation format := (generic_format beta fexp).

(* Specifications: *)
Theorem generic_format_plus : forall x y, format x -> format y -> (Rabs (x + y) < bpow (Zmin (ln_beta beta x) (ln_beta beta y)))%R -> format (x + y)%R.
Theorem generic_format_plus_weak : forall x y, format x -> format y -> (Rabs (x + y) <= Rmin (Rabs x) (Rabs y))%R -> format (x + y)%R.
Lemma sterbenz_aux : forall x y, format x -> format y -> (y <= x <= 2 * y)%R -> format (x - y)%R.
Theorem sterbenz : forall x y, format x -> format y -> (y / 2 <= x <= 2 * y)%R -> format (x - y)%R.
Theorem inbetween_float_round : forall rnd choice, ( forall x m l, inbetween_int m x l -> rnd x = choice m l ) -> forall x m l, let e := canonic_exp beta fexp x in inbetween_float beta m e x l -> round beta fexp rnd x = F2R (Float beta (choice m l) e).
Theorem generic_format_plus : forall x y, format x -> format y -> (Rabs (x + y) < bpow (Zmin (ln_beta beta x) (ln_beta beta y)))%R -> format (x + y)%R.
Theorem generic_format_plus_weak : forall x y, format x -> format y -> (Rabs (x + y) <= Rmin (Rabs x) (Rabs y))%R -> format (x + y)%R.
Lemma sterbenz_aux : forall x y, format x -> format y -> (y <= x <= 2 * y)%R -> format (x - y)%R.
Theorem sterbenz : forall x y, format x -> format y -> (y / 2 <= x <= 2 * y)%R -> format (x - y)%R.
Theorem inbetween_float_round : forall rnd choice, ( forall x m l, inbetween_int m x l -> rnd x = choice m l ) -> forall x m l, let e := canonic_exp beta fexp x in inbetween_float beta m e x l -> round beta fexp rnd x = F2R (Float beta (choice m l) e).