proposition: Theorem rat_inf_limit_2_trans : forall f1 f2 f3, rat_inf_limit_2 f1 f2 -> rat_inf_limit_2 f2 f3 -> left_total f2 -> rat_inf_limit_2 f1 f3.
proof: Proof. unfold rat_inf_limit_2, inf_limit_2; intuition. edestruct (H (ratHalf epsilon)). eapply ratHalf_ne_0; intuition. edestruct (H0 (ratHalf epsilon)); eauto. eapply ratHalf_ne_0. intuition. exists (max x x0). intuition. destruct (H1 n'). eapply leRat_trans. eapply ratDistance_le_trans. eapply H3. eapply Nat.max_lub_l. eapply H5. trivial. eapply H8. eapply H4. eapply Nat.max_lub_r. eapply H5. eauto. trivial. eapply eqRat_impl_leRat. eapply ratHalf_add. Qed.
imports: Arith FCF.Fold List FCF.StdNat FCF.Rat Arith