proposition: Lemma rat_inf_limit_mono : forall (f : nat -> Rat -> Prop) (g : nat -> nat)(v : Rat), rat_inf_limit f v -> (forall n1 n2, n1 <= n2 -> g n1 <= g n2)%nat -> (forall y, exists x, g x = y) -> rat_inf_limit (fun n => f (g n)) v.
proof: Proof. unfold rat_inf_limit, inf_limit. intuition. destruct (H epsilon); intuition. destruct (H1 x). econstructor. intuition. eapply (H3 (g n')). eapply Nat.le_trans. 2:{ eapply H0. eapply H5. } rewrite <- H4. eapply Nat.le_refl. trivial. Qed.
imports: Arith FCF.Fold List FCF.StdNat FCF.Rat Arith