# HG changeset patch # User hoelzl # Date 1421770385 -3600 # Node ID fde2659085e1699bbf26e173751cc0dea33b1da3 # Parent 854fe701c9843dbd4052a5fb882c4f377fe6d678 generalized sum_diff_distrib to setsum_subtractf_nat diff -r 854fe701c984 -r fde2659085e1 src/HOL/Groups_Big.thy --- a/src/HOL/Groups_Big.thy Fri Jan 16 10:59:15 2015 +0100 +++ b/src/HOL/Groups_Big.thy Tue Jan 20 17:13:05 2015 +0100 @@ -630,19 +630,20 @@ finally show ?thesis by (auto simp add: add_right_mono add_strict_left_mono) qed -lemma setsum_negf: - "setsum (%x. - (f x)::'a::ab_group_add) A = - setsum f A" +lemma setsum_negf: "(\x\A. - f x::'a::ab_group_add) = - (\x\A. f x)" proof (cases "finite A") case True thus ?thesis by (induct set: finite) auto next case False thus ?thesis by simp qed -lemma setsum_subtractf: - "setsum (%x. ((f x)::'a::ab_group_add) - g x) A = - setsum f A - setsum g A" +lemma setsum_subtractf: "(\x\A. f x - g x::'a::ab_group_add) = (\x\A. f x) - (\x\A. g x)" using setsum.distrib [of f "- g" A] by (simp add: setsum_negf) +lemma setsum_subtractf_nat: + "(\x. x \ A \ g x \ f x) \ (\x\A. f x - g x::nat) = (\x\A. f x) - (\x\A. g x)" + by (induction A rule: infinite_finite_induct) (auto simp: setsum_mono) + lemma setsum_nonneg: assumes nn: "\x\A. (0::'a::{ordered_ab_semigroup_add,comm_monoid_add}) \ f x" shows "0 \ setsum f A" diff -r 854fe701c984 -r fde2659085e1 src/HOL/Set_Interval.thy --- a/src/HOL/Set_Interval.thy Fri Jan 16 10:59:15 2015 +0100 +++ b/src/HOL/Set_Interval.thy Tue Jan 20 17:13:05 2015 +0100 @@ -1647,31 +1647,8 @@ "2 * (\i\{..nat" - shows - "\x. Q x \ P x \ - (\xxxxxx. Q x \ P x \ (\xxxii