src/HOL/Groups_Big.thy
changeset 56536 aefb4a8da31f
parent 56166 9a241bc276cd
child 56544 b60d5d119489
equal deleted inserted replaced
56535:34023a586608 56536:aefb4a8da31f
  1238    = setprod f A * setprod f B / setprod f (A Int B)"
  1238    = setprod f A * setprod f B / setprod f (A Int B)"
  1239 by (subst setprod_Un_Int [symmetric], auto)
  1239 by (subst setprod_Un_Int [symmetric], auto)
  1240 
  1240 
  1241 lemma setprod_nonneg [rule_format]:
  1241 lemma setprod_nonneg [rule_format]:
  1242    "(ALL x: A. (0::'a::linordered_semidom) \<le> f x) --> 0 \<le> setprod f A"
  1242    "(ALL x: A. (0::'a::linordered_semidom) \<le> f x) --> 0 \<le> setprod f A"
  1243 by (cases "finite A", induct set: finite, simp_all add: mult_nonneg_nonneg)
  1243 by (cases "finite A", induct set: finite, simp_all)
  1244 
  1244 
  1245 lemma setprod_pos [rule_format]: "(ALL x: A. (0::'a::linordered_semidom) < f x)
  1245 lemma setprod_pos [rule_format]: "(ALL x: A. (0::'a::linordered_semidom) < f x)
  1246   --> 0 < setprod f A"
  1246   --> 0 < setprod f A"
  1247 by (cases "finite A", induct set: finite, simp_all add: mult_pos_pos)
  1247 by (cases "finite A", induct set: finite, simp_all add: mult_pos_pos)
  1248 
  1248 
  1316   proof (induct A rule: finite_subset_induct)
  1316   proof (induct A rule: finite_subset_induct)
  1317     case (insert a F)
  1317     case (insert a F)
  1318     thus "setprod f (insert a F) \<le> setprod g (insert a F)" "0 \<le> setprod f (insert a F)"
  1318     thus "setprod f (insert a F) \<le> setprod g (insert a F)" "0 \<le> setprod f (insert a F)"
  1319       unfolding setprod_insert[OF insert(1,3)]
  1319       unfolding setprod_insert[OF insert(1,3)]
  1320       using assms[rule_format,OF insert(2)] insert
  1320       using assms[rule_format,OF insert(2)] insert
  1321       by (auto intro: mult_mono mult_nonneg_nonneg)
  1321       by (auto intro: mult_mono)
  1322   qed auto
  1322   qed auto
  1323   thus ?thesis by simp
  1323   thus ?thesis by simp
  1324 qed auto
  1324 qed auto
  1325 
  1325 
  1326 lemma abs_setprod:
  1326 lemma abs_setprod: