diff -r 8eb6365f5916 -r b9a1486e79be src/HOL/Library/BigO.thy --- a/src/HOL/Library/BigO.thy Sun Oct 16 22:43:51 2016 +0200 +++ b/src/HOL/Library/BigO.thy Mon Oct 17 11:46:22 2016 +0200 @@ -23,7 +23,7 @@ to be inessential.) \<^item> We no longer use \+\ as output syntax for \+o\ \<^item> Lemmas involving \sumr\ have been replaced by more general lemmas - involving `\setsum\. + involving `\sum\. \<^item> The library has been expanded, with e.g.~support for expressions of the form \f < g + O(h)\. @@ -546,21 +546,21 @@ done -subsection \Setsum\ +subsection \Sum\ -lemma bigo_setsum_main: "\x. \y \ A x. 0 \ h x y \ +lemma bigo_sum_main: "\x. \y \ A x. 0 \ h x y \ \c. \x. \y \ A x. \f x y\ \ c * h x y \ (\x. \y \ A x. f x y) =o O(\x. \y \ A x. h x y)" apply (auto simp add: bigo_def) apply (rule_tac x = "\c\" in exI) apply (subst abs_of_nonneg) back back - apply (rule setsum_nonneg) + apply (rule sum_nonneg) apply force - apply (subst setsum_distrib_left) + apply (subst sum_distrib_left) apply (rule allI) apply (rule order_trans) - apply (rule setsum_abs) - apply (rule setsum_mono) + apply (rule sum_abs) + apply (rule sum_mono) apply (rule order_trans) apply (drule spec)+ apply (drule bspec)+ @@ -572,24 +572,24 @@ apply force done -lemma bigo_setsum1: "\x y. 0 \ h x y \ +lemma bigo_sum1: "\x y. 0 \ h x y \ \c. \x y. \f x y\ \ c * h x y \ (\x. \y \ A x. f x y) =o O(\x. \y \ A x. h x y)" - apply (rule bigo_setsum_main) + apply (rule bigo_sum_main) apply force apply clarsimp apply (rule_tac x = c in exI) apply force done -lemma bigo_setsum2: "\y. 0 \ h y \ +lemma bigo_sum2: "\y. 0 \ h y \ \c. \y. \f y\ \ c * (h y) \ (\x. \y \ A x. f y) =o O(\x. \y \ A x. h y)" - by (rule bigo_setsum1) auto + by (rule bigo_sum1) auto -lemma bigo_setsum3: "f =o O(h) \ +lemma bigo_sum3: "f =o O(h) \ (\x. \y \ A x. l x y * f (k x y)) =o O(\x. \y \ A x. \l x y * h (k x y)\)" - apply (rule bigo_setsum1) + apply (rule bigo_sum1) apply (rule allI)+ apply (rule abs_ge_zero) apply (unfold bigo_def) @@ -603,44 +603,44 @@ apply (rule abs_ge_zero) done -lemma bigo_setsum4: "f =o g +o O(h) \ +lemma bigo_sum4: "f =o g +o O(h) \ (\x. \y \ A x. l x y * f (k x y)) =o (\x. \y \ A x. l x y * g (k x y)) +o O(\x. \y \ A x. \l x y * h (k x y)\)" apply (rule set_minus_imp_plus) apply (subst fun_diff_def) - apply (subst setsum_subtractf [symmetric]) + apply (subst sum_subtractf [symmetric]) apply (subst right_diff_distrib [symmetric]) - apply (rule bigo_setsum3) + apply (rule bigo_sum3) apply (subst fun_diff_def [symmetric]) apply (erule set_plus_imp_minus) done -lemma bigo_setsum5: "f =o O(h) \ \x y. 0 \ l x y \ +lemma bigo_sum5: "f =o O(h) \ \x y. 0 \ l x y \ \x. 0 \ h x \ (\x. \y \ A x. l x y * f (k x y)) =o O(\x. \y \ A x. l x y * h (k x y))" apply (subgoal_tac "(\x. \y \ A x. l x y * h (k x y)) = (\x. \y \ A x. \l x y * h (k x y)\)") apply (erule ssubst) - apply (erule bigo_setsum3) + apply (erule bigo_sum3) apply (rule ext) - apply (rule setsum.cong) + apply (rule sum.cong) apply (rule refl) apply (subst abs_of_nonneg) apply auto done -lemma bigo_setsum6: "f =o g +o O(h) \ \x y. 0 \ l x y \ +lemma bigo_sum6: "f =o g +o O(h) \ \x y. 0 \ l x y \ \x. 0 \ h x \ (\x. \y \ A x. l x y * f (k x y)) =o (\x. \y \ A x. l x y * g (k x y)) +o O(\x. \y \ A x. l x y * h (k x y))" apply (rule set_minus_imp_plus) apply (subst fun_diff_def) - apply (subst setsum_subtractf [symmetric]) + apply (subst sum_subtractf [symmetric]) apply (subst right_diff_distrib [symmetric]) - apply (rule bigo_setsum5) + apply (rule bigo_sum5) apply (subst fun_diff_def [symmetric]) apply (drule set_plus_imp_minus) apply auto