(****************************************************************************  IEEE754  :  Zenum  Laurent Thery  ***************************************************************************** Simple functions to enumerate relative numbers *)
Require Export Faux.
Require Export Omega.
Require Export List.
(* Returns the list of relative numbers from z to z+n *)
Fixpoint mZlist_aux (p : Z) (n : nat) {struct n} :
list Z :=
match n with
| O => p :: nil
| S n1 => p :: mZlist_aux (Zsucc p) n1
end.

(* Specifications: *)
Theorem mZlist_aux_correct :
forall (n : nat) (p q : Z),
(p <= q)%Z -> (q <= p + Z_of_nat n)%Z -> In q (mZlist_aux p n).