intros b p q H' H'0 H'1 H'2 H'3;
exists (Fnum p * Zpower_nat radix (Zabs_nat (Fexp p - Fexp q)))%Z.
cut
(Float (Fnum p * Zpower_nat radix (Zabs_nat (Fexp p - Fexp q))) (Fexp q) = p
:>R); [ intros Eq1 | idtac ].
split; auto.
repeat split; simpl in |- *; auto with float.
apply Zle_lt_trans with (Zabs (Fnum q)); auto with float.
apply Zle_monotony_contra_abs_pow with (z := radix) (n := Fexp q);
auto with real arith.
unfold FtoRradix, FtoR in Eq1; simpl in Eq1; rewrite Eq1; auto with real.
change (Rabs p <= Rabs q)%R in |- *.
repeat rewrite Rabs_pos_eq; auto with real.
apply Rle_trans with (1 := H'2); auto.
pattern (Fexp q) at 2 in |- *;
replace (Fexp q) with (Fexp p - Zabs_nat (Fexp p - Fexp q))%Z.
change (Fshift radix (Zabs_nat (Fexp p - Fexp q)) p = p :>R) in |- *.
unfold FtoRradix in |- *; apply FshiftCorrect; auto.
rewrite inj_abs; auto with zarith; ring.
Qed.

(* Specifications: *)
Theorem maxFbounded :
forall (b : Fbound) (z : Z),
(- dExp b <= z)%Z -> Fbounded b (Float (Zpred (Zpos (vNum b))) z).