equal
deleted
inserted
replaced
847 apply (case_tac "finite A") |
847 apply (case_tac "finite A") |
848 apply (erule finite_induct, auto) |
848 apply (erule finite_induct, auto) |
849 done |
849 done |
850 |
850 |
851 lemma int_setsum: "int (setsum f A) = setsum (int \<circ> f) A" |
851 lemma int_setsum: "int (setsum f A) = setsum (int \<circ> f) A" |
852 by (subst int_eq_of_nat, rule setsum_of_nat) |
852 by (simp add: int_eq_of_nat setsum_of_nat) |
853 |
853 |
854 lemma setprod_of_nat: "of_nat (setprod f A) = setprod (of_nat \<circ> f) A" |
854 lemma setprod_of_nat: "of_nat (setprod f A) = setprod (of_nat \<circ> f) A" |
855 apply (case_tac "finite A") |
855 apply (case_tac "finite A") |
856 apply (erule finite_induct, auto) |
856 apply (erule finite_induct, auto) |
857 done |
857 done |
860 apply (case_tac "finite A") |
860 apply (case_tac "finite A") |
861 apply (erule finite_induct, auto) |
861 apply (erule finite_induct, auto) |
862 done |
862 done |
863 |
863 |
864 lemma int_setprod: "int (setprod f A) = setprod (int \<circ> f) A" |
864 lemma int_setprod: "int (setprod f A) = setprod (int \<circ> f) A" |
865 by (subst int_eq_of_nat, rule setprod_of_nat) |
865 by (simp add: int_eq_of_nat setprod_of_nat) |
866 |
866 |
867 lemma setsum_constant [simp]: "finite A ==> (\<Sum>x \<in> A. y) = of_nat(card A) * y" |
867 lemma setsum_constant [simp]: "finite A ==> (\<Sum>x \<in> A. y) = of_nat(card A) * y" |
868 apply (erule finite_induct) |
868 apply (erule finite_induct) |
869 apply (auto simp add: ring_distrib add_ac) |
869 apply (auto simp add: ring_distrib add_ac) |
870 done |
870 done |