equal
deleted
inserted
replaced
1214 |
1214 |
1215 lemma setsum_eq_0_iff [simp]: |
1215 lemma setsum_eq_0_iff [simp]: |
1216 "finite F ==> (setsum f F = 0) = (ALL a:F. f a = (0::nat))" |
1216 "finite F ==> (setsum f F = 0) = (ALL a:F. f a = (0::nat))" |
1217 by (induct set: finite) auto |
1217 by (induct set: finite) auto |
1218 |
1218 |
|
1219 lemma setsum_eq_Suc0_iff: "finite A \<Longrightarrow> |
|
1220 (setsum f A = Suc 0) = (EX a:A. f a = Suc 0 & (ALL b:A. a\<noteq>b \<longrightarrow> f b = 0))" |
|
1221 apply(erule finite_induct) |
|
1222 apply (auto simp add:add_is_1) |
|
1223 done |
|
1224 |
|
1225 lemmas setsum_eq_1_iff = setsum_eq_Suc0_iff[simplified One_nat_def[symmetric]] |
|
1226 |
1219 lemma setsum_Un_nat: "finite A ==> finite B ==> |
1227 lemma setsum_Un_nat: "finite A ==> finite B ==> |
1220 (setsum f (A Un B) :: nat) = setsum f A + setsum f B - setsum f (A Int B)" |
1228 (setsum f (A Un B) :: nat) = setsum f A + setsum f B - setsum f (A Int B)" |
1221 -- {* For the natural numbers, we have subtraction. *} |
1229 -- {* For the natural numbers, we have subtraction. *} |
1222 by (subst setsum_Un_Int [symmetric], auto simp add: algebra_simps) |
1230 by (subst setsum_Un_Int [symmetric], auto simp add: algebra_simps) |
1223 |
1231 |