equal
deleted
inserted
replaced
1639 qed |
1639 qed |
1640 |
1640 |
1641 |
1641 |
1642 subsection \<open>Asymptotic Equivalence\<close> |
1642 subsection \<open>Asymptotic Equivalence\<close> |
1643 |
1643 |
1644 (* TODO Move *) |
|
1645 lemma tendsto_eventually: "eventually (\<lambda>x. f x = c) F \<Longrightarrow> filterlim f (nhds c) F" |
|
1646 by (simp add: eventually_mono eventually_nhds_x_imp_x filterlim_iff) |
|
1647 |
|
1648 named_theorems asymp_equiv_intros |
1644 named_theorems asymp_equiv_intros |
1649 named_theorems asymp_equiv_simps |
1645 named_theorems asymp_equiv_simps |
1650 |
1646 |
1651 definition asymp_equiv :: "('a \<Rightarrow> ('b :: real_normed_field)) \<Rightarrow> 'a filter \<Rightarrow> ('a \<Rightarrow> 'b) \<Rightarrow> bool" |
1647 definition asymp_equiv :: "('a \<Rightarrow> ('b :: real_normed_field)) \<Rightarrow> 'a filter \<Rightarrow> ('a \<Rightarrow> 'b) \<Rightarrow> bool" |
1652 (\<open>_ \<sim>[_] _\<close> [51, 10, 51] 50) |
1648 (\<open>_ \<sim>[_] _\<close> [51, 10, 51] 50) |
1674 proof (intro asymp_equivI) |
1670 proof (intro asymp_equivI) |
1675 have "eventually (\<lambda>x. 1 = (if f x = 0 \<and> f x = 0 then 1 else f x / f x)) F" |
1671 have "eventually (\<lambda>x. 1 = (if f x = 0 \<and> f x = 0 then 1 else f x / f x)) F" |
1676 by (intro always_eventually) simp |
1672 by (intro always_eventually) simp |
1677 moreover have "((\<lambda>_. 1) \<longlongrightarrow> 1) F" by simp |
1673 moreover have "((\<lambda>_. 1) \<longlongrightarrow> 1) F" by simp |
1678 ultimately show "((\<lambda>x. if f x = 0 \<and> f x = 0 then 1 else f x / f x) \<longlongrightarrow> 1) F" |
1674 ultimately show "((\<lambda>x. if f x = 0 \<and> f x = 0 then 1 else f x / f x) \<longlongrightarrow> 1) F" |
1679 by (simp add: Landau_Symbols.tendsto_eventually) |
1675 by (simp add: tendsto_eventually) |
1680 qed |
1676 qed |
1681 |
1677 |
1682 lemma asymp_equiv_symI: |
1678 lemma asymp_equiv_symI: |
1683 assumes "f \<sim>[F] g" |
1679 assumes "f \<sim>[F] g" |
1684 shows "g \<sim>[F] f" |
1680 shows "g \<sim>[F] f" |