src/HOL/Library/Landau_Symbols.thy
changeset 70365 4df0628e8545
parent 69597 ff784d5a5bfb
child 70532 fcf3b891ccb1
equal deleted inserted replaced
70363:6d96ee03b62e 70365:4df0628e8545
  1640 
  1640 
  1641 
  1641 
  1642 subsection \<open>Asymptotic Equivalence\<close>
  1642 subsection \<open>Asymptotic Equivalence\<close>
  1643 
  1643 
  1644 (* TODO Move *)
  1644 (* TODO Move *)
  1645 lemma Lim_eventually: "eventually (\<lambda>x. f x = c) F \<Longrightarrow> filterlim f (nhds c) F"
  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)
  1646   by (simp add: eventually_mono eventually_nhds_x_imp_x filterlim_iff)
  1647 
  1647 
  1648 named_theorems asymp_equiv_intros
  1648 named_theorems asymp_equiv_intros
  1649 named_theorems asymp_equiv_simps
  1649 named_theorems asymp_equiv_simps
  1650 
  1650 
  1773   case False
  1773   case False
  1774   with tendsto_mult_right[OF asymp_equivD[OF assms], of c] show ?thesis by simp
  1774   with tendsto_mult_right[OF asymp_equivD[OF assms], of c] show ?thesis by simp
  1775 next
  1775 next
  1776   case True
  1776   case True
  1777   with asymp_equiv_eventually_zeros[OF assms] show ?thesis
  1777   with asymp_equiv_eventually_zeros[OF assms] show ?thesis
  1778     by (simp add: Lim_eventually)
  1778     by (simp add: tendsto_eventually)
  1779 qed
  1779 qed
  1780 
  1780 
  1781 lemma asymp_equiv_refl_ev:
  1781 lemma asymp_equiv_refl_ev:
  1782   assumes "eventually (\<lambda>x. f x = g x) F"
  1782   assumes "eventually (\<lambda>x. f x = g x) F"
  1783   shows   "f \<sim>[F] g"
  1783   shows   "f \<sim>[F] g"
  1784   by (intro asymp_equivI Lim_eventually)
  1784   by (intro asymp_equivI tendsto_eventually)
  1785      (insert assms, auto elim!: eventually_mono)
  1785      (insert assms, auto elim!: eventually_mono)
  1786 
  1786 
  1787 lemma asymp_equiv_sandwich:
  1787 lemma asymp_equiv_sandwich:
  1788   fixes f g h :: "'a \<Rightarrow> 'b :: {real_normed_field, order_topology, linordered_field}"
  1788   fixes f g h :: "'a \<Rightarrow> 'b :: {real_normed_field, order_topology, linordered_field}"
  1789   assumes "eventually (\<lambda>x. f x \<ge> 0) F"
  1789   assumes "eventually (\<lambda>x. f x \<ge> 0) F"