Definition round_sign_UP s l :=
  match l with
  | loc_Exact => false
  | _ => negb s
  end.

(* Specifications: *)
Theorem inbetween_int_UP_sign : forall x m l, inbetween_int m (Rabs x) l -> Zceil x = cond_Zopp (Rlt_bool x 0) (cond_incr (round_sign_UP (Rlt_bool x 0) l) m).
Theorem inbetween_float_UP_sign : forall x m l, let e := canonic_exp beta fexp x in inbetween_float beta m e (Rabs x) l -> round beta fexp Zceil x = F2R (Float beta (cond_Zopp (Rlt_bool x 0) (cond_incr (round_sign_UP (Rlt_bool x 0) l) m)) e).
Theorem inbetween_int_UP_sign : forall x m l, inbetween_int m (Rabs x) l -> Zceil x = cond_Zopp (Rlt_bool x 0) (cond_incr (round_sign_UP (Rlt_bool x 0) l) m).
Theorem inbetween_float_UP_sign : forall x m l, let e := canonic_exp beta fexp x in inbetween_float beta m e (Rabs x) l -> round beta fexp Zceil x = F2R (Float beta (cond_Zopp (Rlt_bool x 0) (cond_incr (round_sign_UP (Rlt_bool x 0) l) m)) e).