unfold rat_inf_limit, inf_limit in *.
intuition.
edestruct H; eauto.
exists x.
intuition.
rewrite <- H0.
eapply H2.
eapply H3.
trivial.
Qed.

(* Specifications: *)
Lemma rat_inf_limit_const : forall (f : Rat -> Prop) a,
f a ->
(forall a1 a2, f a1 -> f a2 -> a1 == a2) ->
rat_inf_limit (fun _ => f) a.