intuition.
unfold rat_inf_limit_2, inf_limit_2, rat_inf_limit, inf_limit in *.
intuition.
edestruct (H (ratHalf epsilon)).
eapply ratHalf_ne_0.
intuition.
edestruct (H0 (ratHalf epsilon)).
eapply ratHalf_ne_0.
intuition.
exists (Max.max x x0).
intuition.
destruct (H1 n').
eapply leRat_trans.
eapply ratTriangleInequality.
rewrite H3.
rewrite H4.
rewrite ratHalf_add.
intuition.
eapply Max.max_lub_r.
eauto.
eauto.
eapply Max.max_lub_l.
eauto.
trivial.
trivial.
Qed.

(* Specifications: *)
Lemma rat_inf_limit_eq : forall f a1 a2,
rat_inf_limit f a1 ->
a1 == a2 ->
rat_inf_limit f a2.