(* A function that returns a list containing all the bounded smaller than a given real *)
 
Definition mBFloat (p : R) :=
  map (fun p : Z * Z => Float (fst p) (snd p))
    (mProd Z Z (Z * Z)
       (mZlist (- pPred (vNum b)) (pPred (vNum b)))
       (mZlist (- dExp b) (Fexp (boundR p)))).

(* Specifications: *)
Theorem mBFadic_correct1 : forall (r : R) (q : float), ~ is_Fzero q -> (Fopp (boundR r) < q)%R -> (q < boundR r)%R -> Fbounded b q -> In q (mBFloat r).
Theorem mBFadic_correct2 : forall r : R, In (boundR r) (mBFloat r).
Theorem mBFadic_correct3 : forall r : R, In (Fopp (boundR r)) (mBFloat r).
Theorem mBFadic_correct4 : forall r : R, In (Float 0%nat (- dExp b)) (mBFloat r).
Theorem mBPadic_Fbounded : forall (p : float) (r : R), In p (mBFloat r) -> Fbounded b p.