src/HOL/Library/Landau_Symbols.thy
changeset 77491 9d431c939a7f
parent 77490 2c86ea8961b5
child 80175 200107cdd3ac
equal deleted inserted replaced
77490:2c86ea8961b5 77491:9d431c939a7f
  1497 lemma big_sum_in_bigo:
  1497 lemma big_sum_in_bigo:
  1498   assumes "\<And>x. x \<in> A \<Longrightarrow> f x \<in> O[F](g)"
  1498   assumes "\<And>x. x \<in> A \<Longrightarrow> f x \<in> O[F](g)"
  1499   shows   "(\<lambda>x. sum (\<lambda>y. f y x) A) \<in> O[F](g)"
  1499   shows   "(\<lambda>x. sum (\<lambda>y. f y x) A) \<in> O[F](g)"
  1500   using assms by (induction A rule: infinite_finite_induct) (auto intro: sum_in_bigo)
  1500   using assms by (induction A rule: infinite_finite_induct) (auto intro: sum_in_bigo)
  1501 
  1501 
       
  1502 lemma le_imp_bigo_real:
       
  1503   assumes "c \<ge> 0" "eventually (\<lambda>x. f x \<le> c * (g x :: real)) F" "eventually (\<lambda>x. 0 \<le> f x) F"
       
  1504   shows   "f \<in> O[F](g)"
       
  1505 proof -
       
  1506   have "eventually (\<lambda>x. norm (f x) \<le> c * norm (g x)) F"
       
  1507     using assms(2,3)
       
  1508   proof eventually_elim
       
  1509     case (elim x)
       
  1510     have "norm (f x) \<le> c * g x" using elim by simp
       
  1511     also have "\<dots> \<le> c * norm (g x)" by (intro mult_left_mono assms) auto
       
  1512     finally show ?case .
       
  1513   qed
       
  1514   thus ?thesis by (intro bigoI[of _ c]) auto
       
  1515 qed
       
  1516 
  1502 context landau_symbol
  1517 context landau_symbol
  1503 begin
  1518 begin
  1504 
  1519 
  1505 lemma mult_cancel_left:
  1520 lemma mult_cancel_left:
  1506   assumes "f1 \<in> \<Theta>[F](g1)" and "eventually (\<lambda>x. g1 x \<noteq> 0) F"
  1521   assumes "f1 \<in> \<Theta>[F](g1)" and "eventually (\<lambda>x. g1 x \<noteq> 0) F"