intros b p q H' H'0 H'1 H'2.
cut (0 <= Fnum p)%Z;
[ intros Z1
| apply (LeR0Fnum radix); auto with real arith; fold FtoRradix in |- *;
rewrite H'0; auto ].
cut (0 <= Fnum q)%Z;
[ intros Z2 | apply (LeR0Fnum radix); auto with real arith ].
split.
apply Zle_lt_trans with (Zabs (Fnum p)); [ idtac | auto with float ].
repeat rewrite Zabs_eq; auto.
apply Zle_trans with (Fnum (Fshift radix (Zabs_nat (Fexp q - Fexp p)) q));
auto.
unfold Fshift in |- *; simpl in |- *; auto.
pattern (Fnum q) at 1 in |- *; replace (Fnum q) with (Fnum q * 1)%Z;
auto with zarith.
apply (Rle_Fexp_eq_Zle radix); auto with real zarith.
rewrite FshiftCorrect; auto with real zarith.
unfold Fshift in |- *; simpl in |- *; rewrite inj_abs; try ring.
apply Zle_Zminus_ZERO; apply le_IZR; auto with real arith.
apply Zle_trans with (Fexp p).
case H'; auto.
apply le_IZR; auto with real arith.
Qed.

(* Specifications: *)
Theorem FboundedEqExp :
forall (b : Fbound) (p q : float),
Fbounded b p -> p = q :>R -> (Fexp p <= Fexp q)%R -> Fbounded b q.