src/HOL/Integ/IntDef.thy
changeset 15481 fc075ae929e4
parent 15413 901d1bfedf09
child 15539 333a88244569
equal deleted inserted replaced
15480:cb3612cc41a3 15481:fc075ae929e4
   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