intros z m H' H'0 H'1; case (Zle_lt_or_eq _ _ H'0); intros H'2.
exists (Float m z); split; auto with zarith.
repeat split; simpl in |- *; auto with zarith.
rewrite Zabs_eq; auto; rewrite pGivesBound; auto.
case (FboundNext (Float (Zpred (Zpos (vNum b))) z)); auto with float.
intros f' (H1, H2); exists f'; split; auto.
rewrite H2; rewrite pGivesBound.
unfold FtoRradix, FtoR in |- *; simpl in |- *; auto.
rewrite <- Zsucc_pred; rewrite <- H'2; auto; ring.
Qed.

(* Specifications: *)
Theorem FboundedMbound :
forall z m : Z,
(Zabs m <= Zpower_nat radix precision)%Z ->
(- dExp b <= z)%Z ->
exists c : float, Fbounded b c /\ c = (m * powerRZ radix z)%R :>R.