intros P z p HP H'.
case
(RoundedModeRep b radix precision)
with (P := P) (p := Float z 0%nat) (q := p); auto.
cut (CompatibleP b radix P);
[ intros Cp | apply RoundedModeP_inv2 with (1 := HP); auto ];
auto.
apply Cp with (1 := H'); auto.
unfold FtoRradix, FtoR in |- *; simpl in |- *.
rewrite Rmult_1_r; auto.
apply RoundedModeBounded with (P := P) (r := IZR z); auto.
intros x H'0; exists x; auto.
unfold FtoRradix in |- *; rewrite H'0.
unfold FtoRradix, FtoR in |- *; simpl in |- *.
rewrite Rmult_1_r; auto.
Qed.

(* Specifications: *)
Theorem NroundN :
forall (P : R -> float -> Prop) (n : nat) (p : float),
RoundedModeP b radix P -> P n p -> exists n' : nat, p = n' :>R.