(** Relates location and rounding to nearest away. *)

(* Specifications: *)
Theorem inbetween_int_NA :
forall x m l,
inbetween_int m x l ->
ZnearestA x = cond_incr (round_N (Zle_bool 0 m) l) m.
Theorem inbetween_float_NA :
forall x m l,
let e := canonic_exp beta fexp x in
inbetween_float beta m e x l ->
round beta fexp ZnearestA x = F2R (Float beta (cond_incr (round_N (Zle_bool 0 m) l) m) e).
Theorem inbetween_int_NA_sign :
forall x m l,
inbetween_int m (Rabs x) l ->
ZnearestA x = cond_Zopp (Rlt_bool x 0) (cond_incr (round_N true l) m).
Theorem inbetween_int_NA :
forall x m l,
inbetween_int m x l ->
ZnearestA x = cond_incr (round_N (Zle_bool 0 m) l) m.
Theorem inbetween_float_NA :
forall x m l,
let e := canonic_exp beta fexp x in
inbetween_float beta m e x l ->
round beta fexp ZnearestA x = F2R (Float beta (cond_incr (round_N (Zle_bool 0 m) l) m) e).
Theorem inbetween_int_NA_sign :
forall x m l,
inbetween_int m (Rabs x) l ->
ZnearestA x = cond_Zopp (Rlt_bool x 0) (cond_incr (round_N true l) m).