intros p q x H H0 H1.
apply Rle_trans with (Fulp b radix precision p * / 2%nat)%R.
rewrite H1.
replace (Rabs (x - p)) with (2%nat * Rabs (x - p) * / 2%nat)%R;
[ idtac | field; auto with real ].
apply Rmult_le_compat_r; auto with real.
apply ClosestUlp; auto.
apply Rmult_le_compat_r.
apply Rlt_le.
apply Rinv_0_lt_compat; auto with real.
unfold FtoRradix in |- *; apply FulpLe; auto.
Qed.

(* Specifications: *)
Theorem ClosestErrorExp :
forall (p q : float) (x : R),
Fbounded b p ->
Fbounded b q ->
Closest b radix x p ->
q = (x - p)%R :>R ->
exists error : float,
Fbounded b error /\
error = q :>R /\ (Fexp error <= Zmax (Fexp p - precision) (- dExp b))%Z.