src/HOL/Probability/Measure_Space.thy
changeset 50087 635d73673b5e
parent 50002 ce0d316b5b44
child 50104 de19856feb54
--- a/src/HOL/Probability/Measure_Space.thy	Thu Nov 15 14:04:23 2012 +0100
+++ b/src/HOL/Probability/Measure_Space.thy	Thu Nov 15 10:49:58 2012 +0100
@@ -169,6 +169,27 @@
   finally show "f x \<le> f y" by simp
 qed
 
+lemma (in ring_of_sets) subadditive:
+  assumes f: "positive M f" "additive M f" and A: "range A \<subseteq> M" and S: "finite S"
+  shows "f (\<Union>i\<in>S. A i) \<le> (\<Sum>i\<in>S. f (A i))"
+using S
+proof (induct S)
+  case empty thus ?case using f by (auto simp: positive_def)
+next
+  case (insert x F)
+  hence in_M: "A x \<in> M" "(\<Union> i\<in>F. A i) \<in> M" "(\<Union> i\<in>F. A i) - A x \<in> M" using A by force+
+  have subs: "(\<Union> i\<in>F. A i) - A x \<subseteq> (\<Union> i\<in>F. A i)" by auto
+  have "(\<Union> i\<in>(insert x F). A i) = A x \<union> ((\<Union> i\<in>F. A i) - A x)" by auto
+  hence "f (\<Union> i\<in>(insert x F). A i) = f (A x \<union> ((\<Union> i\<in>F. A i) - A x))"
+    by simp
+  also have "\<dots> = f (A x) + f ((\<Union> i\<in>F. A i) - A x)"
+    using f(2) by (rule additiveD) (insert in_M, auto)
+  also have "\<dots> \<le> f (A x) + f (\<Union> i\<in>F. A i)"
+    using additive_increasing[OF f] in_M subs by (auto simp: increasing_def intro: add_left_mono)
+  also have "\<dots> \<le> f (A x) + (\<Sum>i\<in>F. f (A i))" using insert by (auto intro: add_left_mono)
+  finally show "f (\<Union> i\<in>(insert x F). A i) \<le> (\<Sum>i\<in>(insert x F). f (A i))" using insert by simp
+qed
+
 lemma (in ring_of_sets) countably_additive_additive:
   assumes posf: "positive M f" and ca: "countably_additive M f"
   shows "additive M f"