equal
deleted
inserted
replaced
553 next |
553 next |
554 case False thus ?thesis by (simp add: setsum_def) |
554 case False thus ?thesis by (simp add: setsum_def) |
555 qed |
555 qed |
556 |
556 |
557 lemma setsum_mono2: |
557 lemma setsum_mono2: |
558 fixes f :: "'a \<Rightarrow> 'b :: {ordered_ab_semigroup_add_imp_le,comm_monoid_add}" |
558 fixes f :: "'a \<Rightarrow> 'b :: ordered_comm_monoid_add" |
559 assumes fin: "finite B" and sub: "A \<subseteq> B" and nn: "\<And>b. b \<in> B-A \<Longrightarrow> 0 \<le> f b" |
559 assumes fin: "finite B" and sub: "A \<subseteq> B" and nn: "\<And>b. b \<in> B-A \<Longrightarrow> 0 \<le> f b" |
560 shows "setsum f A \<le> setsum f B" |
560 shows "setsum f A \<le> setsum f B" |
561 proof - |
561 proof - |
562 have "setsum f A \<le> setsum f A + setsum f (B-A)" |
562 have "setsum f A \<le> setsum f A + setsum f (B-A)" |
563 by(simp add: add_increasing2[OF setsum_nonneg] nn Ball_def) |
563 by(simp add: add_increasing2[OF setsum_nonneg] nn Ball_def) |
1028 by (subst setprod_Un_Int [symmetric], auto) |
1028 by (subst setprod_Un_Int [symmetric], auto) |
1029 |
1029 |
1030 lemma setprod_diff1: "finite A ==> f a \<noteq> 0 ==> |
1030 lemma setprod_diff1: "finite A ==> f a \<noteq> 0 ==> |
1031 (setprod f (A - {a}) :: 'a :: {field}) = |
1031 (setprod f (A - {a}) :: 'a :: {field}) = |
1032 (if a:A then setprod f A / f a else setprod f A)" |
1032 (if a:A then setprod f A / f a else setprod f A)" |
1033 by (erule finite_induct) (auto simp add: insert_Diff_if) |
1033 by (erule finite_induct) (auto simp add: insert_Diff_if) |
1034 |
1034 |
1035 lemma setprod_inversef: |
1035 lemma setprod_inversef: |
1036 fixes f :: "'b \<Rightarrow> 'a::{field,division_by_zero}" |
1036 fixes f :: "'b \<Rightarrow> 'a::{field,division_by_zero}" |
1037 shows "finite A ==> setprod (inverse \<circ> f) A = inverse (setprod f A)" |
1037 shows "finite A ==> setprod (inverse \<circ> f) A = inverse (setprod f A)" |
1038 by (erule finite_induct) auto |
1038 by (erule finite_induct) auto |