src/HOL/Library/Landau_Symbols.thy
changeset 70688 3d894e1cfc75
parent 70532 fcf3b891ccb1
child 70817 dd675800469d
equal deleted inserted replaced
70682:4c53227f4b73 70688:3d894e1cfc75
  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"