unfold rat_inf_limit, inf_limit.
intuition.
destruct (H epsilon); intuition.
destruct (H1 x).
econstructor.
intuition.
eapply (H3 (g n')).
eapply le_trans.
2:{
eapply H0.
eapply H5.
}
rewrite <- H4.
eapply le_refl.
trivial.
Qed.

(* Specifications: *)
Lemma rat_inf_limit_sqrt:
forall (f : nat -> Rat -> Prop) (v : Rat),
rat_inf_limit f v ->
rat_inf_limit (fun n => f (Nat.sqrt n)) v.