intros x Hx H.
apply sym_eq;
apply Rplus_eq_reg_l with (- FtoRradix (FPred b radix precision x))%R.
apply trans_eq with (Fulp b radix precision (FPred b radix precision x));
[ idtac | ring ].
apply trans_eq with (FtoRradix x - FtoRradix (FPred b radix precision x))%R;
[ ring | idtac ].
unfold FtoRradix in |- *; rewrite <- Fminus_correct; auto with zarith;
fold FtoRradix in |- *.
pattern x at 1 in |- *;
replace x with (FSucc b radix precision (FPred b radix precision x));
[ idtac | apply FSucPred; auto with zarith arith ].
unfold FtoRradix in |- *; apply FSuccUlpPos; auto with zarith arith.
apply FPredCanonic; auto with zarith arith.
apply R0RltRlePred; auto with zarith arith real.
Qed.

(* Specifications: *)
Theorem FulpFPredLe :
forall f : float,
Fbounded b f ->
Fcanonic radix b f ->
(Fulp b radix precision f <=
radix * Fulp b radix precision (FPred b radix precision f))%R.