src/HOL/Library/Binomial.thy
changeset 30843 3419ca741dbf
parent 30663 0b6aff7451b2
child 31021 53642251a04f
--- a/src/HOL/Library/Binomial.thy	Wed Apr 01 18:41:15 2009 +0200
+++ b/src/HOL/Library/Binomial.thy	Wed Apr 01 22:29:10 2009 +0200
@@ -267,8 +267,6 @@
   moreover
   {assume n0: "n \<noteq> 0"
     then have ?thesis apply (simp add: h pochhammer_Suc_setprod)
-  apply (rule iffD2[OF setprod_zero_eq])
-  apply auto
   apply (rule_tac x="n" in bexI)
   using h kn by auto}
 ultimately show ?thesis by blast
@@ -281,8 +279,7 @@
   moreover
   {fix h assume h: "k = Suc h"
     then have ?thesis apply (simp add: pochhammer_Suc_setprod)
-      apply (subst setprod_zero_eq_field)
-      using h kn by (auto simp add: ring_simps)}
+      using h kn by (auto simp add: algebra_simps)}
   ultimately show ?thesis by (cases k, auto)
 qed
 
@@ -299,15 +296,14 @@
   where "a gchoose n = (if n = 0 then 1 else (setprod (\<lambda>i. a - of_nat i) {0 .. n - 1}) / of_nat (fact n))"
 
 lemma gbinomial_0[simp]: "a gchoose 0 = 1" "0 gchoose (Suc n) = 0"
-  apply (simp_all add: gbinomial_def)
-  apply (subgoal_tac "(\<Prod>i\<Colon>nat\<in>{0\<Colon>nat..n}. - of_nat i) = (0::'b)")
-  apply simp
-  apply (rule iffD2[OF setprod_zero_eq])
-  by auto
+apply (simp_all add: gbinomial_def)
+apply (subgoal_tac "(\<Prod>i\<Colon>nat\<in>{0\<Colon>nat..n}. - of_nat i) = (0::'b)")
+ apply (simp del:setprod_zero_iff)
+apply simp
+done
 
 lemma gbinomial_pochhammer: "a gchoose n = (- 1) ^ n * pochhammer (- a) n / of_nat (fact n)"
 proof-
-
   {assume "n=0" then have ?thesis by simp}
   moreover
   {assume n0: "n\<noteq>0"
@@ -388,7 +384,6 @@
       unfolding mult_assoc[symmetric] 
       unfolding setprod_timesf[symmetric]
       apply simp
-      apply (rule disjI2)
       apply (rule strong_setprod_reindex_cong[where f= "op - n"])
       apply (auto simp add: inj_on_def image_iff Bex_def)
       apply presburger