Notation format := (generic_format beta fexp).

(* Specifications: *)
Lemma plus_error_aux : forall x y, (canonic_exp beta fexp x <= canonic_exp beta fexp y)%Z -> format x -> format y -> format (round beta fexp (Znearest choice) (x + y) - (x + y))%R.
Theorem plus_error : forall x y, format x -> format y -> format (round beta fexp (Znearest choice) (x + y) - (x + y))%R.
Lemma round_plus_eq_zero_aux : forall x y, (canonic_exp beta fexp x <= canonic_exp beta fexp y)%Z -> format x -> format y -> (0 <= x + y)%R -> round beta fexp rnd (x + y) = 0%R -> (x + y = 0)%R.
Theorem round_plus_eq_zero : forall x y, format x -> format y -> round beta fexp rnd (x + y) = 0%R -> (x + y = 0)%R.
Theorem FLT_format_plus_small: forall x y, 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).
Lemma plus_error_aux : forall x y, (canonic_exp beta fexp x <= canonic_exp beta fexp y)%Z -> format x -> format y -> format (round beta fexp (Znearest choice) (x + y) - (x + y))%R.
Theorem plus_error : forall x y, format x -> format y -> format (round beta fexp (Znearest choice) (x + y) - (x + y))%R.
Lemma round_plus_eq_zero_aux : forall x y, (canonic_exp beta fexp x <= canonic_exp beta fexp y)%Z -> format x -> format y -> (0 <= x + y)%R -> round beta fexp rnd (x + y) = 0%R -> (x + y = 0)%R.
Theorem round_plus_eq_zero : forall x y, format x -> format y -> round beta fexp rnd (x + y) = 0%R -> (x + y = 0)%R.
Theorem FLT_format_plus_small: forall x y, 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).