intros x y H' H'0 H'1 H'2 H'3.
cut (0 < radix)%Z; [ intros Z1 | idtac ].
rewrite minusSameExp; auto.
repeat split; simpl in |- *; auto with float.
apply Zle_lt_trans with (Zabs (Fnum x)); auto with float zarith.
change (Fnum (Fabs (Float (Fnum x - Fnum y) (Fexp x))) <= Fnum (Fabs x))%Z
in |- *.
apply Rle_Fexp_eq_Zle with (radix := radix); auto with zarith.
rewrite <- (minusSameExp radix); auto.
repeat rewrite (Fabs_correct radix); try rewrite Fminus_correct;
auto with zarith.
repeat rewrite Rabs_pos_eq; auto with real.
apply Rle_trans with (x - 0)%R; auto with real.
unfold Rminus in |- *; auto with real.
apply Rle_trans with (FtoRradix y); auto with real.
replace 0%R with (x - x)%R; auto with real.
unfold Rminus in |- *; auto with real.
apply Zlt_trans with (2 := radixMoreThanOne); auto with zarith.
Qed.

(* Specifications: *)
Theorem BminusSameExp :
forall x y : float,
Fbounded b x ->
Fbounded b y ->
(0 <= x)%R -> (0 <= y)%R -> Fexp x = Fexp y -> Fbounded b (Fminus radix x y).