(** Specialization of inbetween for two consecutive integers. *)

Definition inbetween_int m x l :=
  inbetween (Z2R m) (Z2R (m + 1)) x l.

(* Specifications: *)
Theorem inbetween_float_new_location : forall x m e l k, (0 < k)%Z -> inbetween_float m e x l -> inbetween_float (Zdiv m (Zpower beta k)) (e + k) x (new_location (Zpower beta k) (Zmod m (Zpower beta k)) l).
Theorem inbetween_float_new_location_single : forall x m e l, inbetween_float m e x l -> inbetween_float (Zdiv m beta) (e + 1) x (new_location beta (Zmod m beta) l).
Theorem inbetween_float_ex : forall m e l, exists x, inbetween_float m e x l.
Theorem inbetween_float_unique : forall x e m l m' l', inbetween_float m e x l -> inbetween_float m' e x l' -> m = m' /\ l = l'.
Theorem inbetween_float_new_location : forall x m e l k, (0 < k)%Z -> inbetween_float m e x l -> inbetween_float (Zdiv m (Zpower beta k)) (e + k) x (new_location (Zpower beta k) (Zmod m (Zpower beta k)) l).
Theorem inbetween_float_new_location_single : forall x m e l, inbetween_float m e x l -> inbetween_float (Zdiv m beta) (e + 1) x (new_location beta (Zmod m beta) l).
Theorem inbetween_float_ex : forall m e l, exists x, inbetween_float m e x l.
Theorem inbetween_float_unique : forall x e m l m' l', inbetween_float m e x l -> inbetween_float m' e x l' -> m = m' /\ l = l'.