682 by (intro exI[of _ ?infm]) auto |
676 by (intro exI[of _ ?infm]) auto |
683 qed |
677 qed |
684 |
678 |
685 subsubsection {*Alternative instances of caratheodory*} |
679 subsubsection {*Alternative instances of caratheodory*} |
686 |
680 |
687 lemma (in ring_of_sets) countably_additive_iff_continuous_from_below: |
|
688 assumes f: "positive M f" "additive M f" |
|
689 shows "countably_additive M f \<longleftrightarrow> |
|
690 (\<forall>A. range A \<subseteq> M \<longrightarrow> incseq A \<longrightarrow> (\<Union>i. A i) \<in> M \<longrightarrow> (\<lambda>i. f (A i)) ----> f (\<Union>i. A i))" |
|
691 unfolding countably_additive_def |
|
692 proof safe |
|
693 assume count_sum: "\<forall>A. range A \<subseteq> M \<longrightarrow> disjoint_family A \<longrightarrow> UNION UNIV A \<in> M \<longrightarrow> (\<Sum>i. f (A i)) = f (UNION UNIV A)" |
|
694 fix A :: "nat \<Rightarrow> 'a set" assume A: "range A \<subseteq> M" "incseq A" "(\<Union>i. A i) \<in> M" |
|
695 then have dA: "range (disjointed A) \<subseteq> M" by (auto simp: range_disjointed_sets) |
|
696 with count_sum[THEN spec, of "disjointed A"] A(3) |
|
697 have f_UN: "(\<Sum>i. f (disjointed A i)) = f (\<Union>i. A i)" |
|
698 by (auto simp: UN_disjointed_eq disjoint_family_disjointed) |
|
699 moreover have "(\<lambda>n. (\<Sum>i=0..<n. f (disjointed A i))) ----> (\<Sum>i. f (disjointed A i))" |
|
700 using f(1)[unfolded positive_def] dA |
|
701 by (auto intro!: summable_sumr_LIMSEQ_suminf summable_ereal_pos) |
|
702 from LIMSEQ_Suc[OF this] |
|
703 have "(\<lambda>n. (\<Sum>i\<le>n. f (disjointed A i))) ----> (\<Sum>i. f (disjointed A i))" |
|
704 unfolding atLeastLessThanSuc_atLeastAtMost atLeast0AtMost . |
|
705 moreover have "\<And>n. (\<Sum>i\<le>n. f (disjointed A i)) = f (A n)" |
|
706 using disjointed_additive[OF f A(1,2)] . |
|
707 ultimately show "(\<lambda>i. f (A i)) ----> f (\<Union>i. A i)" by simp |
|
708 next |
|
709 assume cont: "\<forall>A. range A \<subseteq> M \<longrightarrow> incseq A \<longrightarrow> (\<Union>i. A i) \<in> M \<longrightarrow> (\<lambda>i. f (A i)) ----> f (\<Union>i. A i)" |
|
710 fix A :: "nat \<Rightarrow> 'a set" assume A: "range A \<subseteq> M" "disjoint_family A" "(\<Union>i. A i) \<in> M" |
|
711 have *: "(\<Union>n. (\<Union>i\<le>n. A i)) = (\<Union>i. A i)" by auto |
|
712 have "(\<lambda>n. f (\<Union>i\<le>n. A i)) ----> f (\<Union>i. A i)" |
|
713 proof (unfold *[symmetric], intro cont[rule_format]) |
|
714 show "range (\<lambda>i. \<Union> i\<le>i. A i) \<subseteq> M" "(\<Union>i. \<Union> i\<le>i. A i) \<in> M" |
|
715 using A * by auto |
|
716 qed (force intro!: incseq_SucI) |
|
717 moreover have "\<And>n. f (\<Union>i\<le>n. A i) = (\<Sum>i\<le>n. f (A i))" |
|
718 using A |
|
719 by (intro additive_sum[OF f, of _ A, symmetric]) |
|
720 (auto intro: disjoint_family_on_mono[where B=UNIV]) |
|
721 ultimately |
|
722 have "(\<lambda>i. f (A i)) sums f (\<Union>i. A i)" |
|
723 unfolding sums_def2 by simp |
|
724 from sums_unique[OF this] |
|
725 show "(\<Sum>i. f (A i)) = f (\<Union>i. A i)" by simp |
|
726 qed |
|
727 |
|
728 lemma (in ring_of_sets) continuous_from_above_iff_empty_continuous: |
|
729 assumes f: "positive M f" "additive M f" |
|
730 shows "(\<forall>A. range A \<subseteq> M \<longrightarrow> decseq A \<longrightarrow> (\<Inter>i. A i) \<in> M \<longrightarrow> (\<forall>i. f (A i) \<noteq> \<infinity>) \<longrightarrow> (\<lambda>i. f (A i)) ----> f (\<Inter>i. A i)) |
|
731 \<longleftrightarrow> (\<forall>A. range A \<subseteq> M \<longrightarrow> decseq A \<longrightarrow> (\<Inter>i. A i) = {} \<longrightarrow> (\<forall>i. f (A i) \<noteq> \<infinity>) \<longrightarrow> (\<lambda>i. f (A i)) ----> 0)" |
|
732 proof safe |
|
733 assume cont: "(\<forall>A. range A \<subseteq> M \<longrightarrow> decseq A \<longrightarrow> (\<Inter>i. A i) \<in> M \<longrightarrow> (\<forall>i. f (A i) \<noteq> \<infinity>) \<longrightarrow> (\<lambda>i. f (A i)) ----> f (\<Inter>i. A i))" |
|
734 fix A :: "nat \<Rightarrow> 'a set" assume A: "range A \<subseteq> M" "decseq A" "(\<Inter>i. A i) = {}" "\<forall>i. f (A i) \<noteq> \<infinity>" |
|
735 with cont[THEN spec, of A] show "(\<lambda>i. f (A i)) ----> 0" |
|
736 using `positive M f`[unfolded positive_def] by auto |
|
737 next |
|
738 assume cont: "\<forall>A. range A \<subseteq> M \<longrightarrow> decseq A \<longrightarrow> (\<Inter>i. A i) = {} \<longrightarrow> (\<forall>i. f (A i) \<noteq> \<infinity>) \<longrightarrow> (\<lambda>i. f (A i)) ----> 0" |
|
739 fix A :: "nat \<Rightarrow> 'a set" assume A: "range A \<subseteq> M" "decseq A" "(\<Inter>i. A i) \<in> M" "\<forall>i. f (A i) \<noteq> \<infinity>" |
|
740 |
|
741 have f_mono: "\<And>a b. a \<in> M \<Longrightarrow> b \<in> M \<Longrightarrow> a \<subseteq> b \<Longrightarrow> f a \<le> f b" |
|
742 using additive_increasing[OF f] unfolding increasing_def by simp |
|
743 |
|
744 have decseq_fA: "decseq (\<lambda>i. f (A i))" |
|
745 using A by (auto simp: decseq_def intro!: f_mono) |
|
746 have decseq: "decseq (\<lambda>i. A i - (\<Inter>i. A i))" |
|
747 using A by (auto simp: decseq_def) |
|
748 then have decseq_f: "decseq (\<lambda>i. f (A i - (\<Inter>i. A i)))" |
|
749 using A unfolding decseq_def by (auto intro!: f_mono Diff) |
|
750 have "f (\<Inter>x. A x) \<le> f (A 0)" |
|
751 using A by (auto intro!: f_mono) |
|
752 then have f_Int_fin: "f (\<Inter>x. A x) \<noteq> \<infinity>" |
|
753 using A by auto |
|
754 { fix i |
|
755 have "f (A i - (\<Inter>i. A i)) \<le> f (A i)" using A by (auto intro!: f_mono) |
|
756 then have "f (A i - (\<Inter>i. A i)) \<noteq> \<infinity>" |
|
757 using A by auto } |
|
758 note f_fin = this |
|
759 have "(\<lambda>i. f (A i - (\<Inter>i. A i))) ----> 0" |
|
760 proof (intro cont[rule_format, OF _ decseq _ f_fin]) |
|
761 show "range (\<lambda>i. A i - (\<Inter>i. A i)) \<subseteq> M" "(\<Inter>i. A i - (\<Inter>i. A i)) = {}" |
|
762 using A by auto |
|
763 qed |
|
764 from INF_Lim_ereal[OF decseq_f this] |
|
765 have "(INF n. f (A n - (\<Inter>i. A i))) = 0" . |
|
766 moreover have "(INF n. f (\<Inter>i. A i)) = f (\<Inter>i. A i)" |
|
767 by auto |
|
768 ultimately have "(INF n. f (A n - (\<Inter>i. A i)) + f (\<Inter>i. A i)) = 0 + f (\<Inter>i. A i)" |
|
769 using A(4) f_fin f_Int_fin |
|
770 by (subst INFI_ereal_add) (auto simp: decseq_f) |
|
771 moreover { |
|
772 fix n |
|
773 have "f (A n - (\<Inter>i. A i)) + f (\<Inter>i. A i) = f ((A n - (\<Inter>i. A i)) \<union> (\<Inter>i. A i))" |
|
774 using A by (subst f(2)[THEN additiveD]) auto |
|
775 also have "(A n - (\<Inter>i. A i)) \<union> (\<Inter>i. A i) = A n" |
|
776 by auto |
|
777 finally have "f (A n - (\<Inter>i. A i)) + f (\<Inter>i. A i) = f (A n)" . } |
|
778 ultimately have "(INF n. f (A n)) = f (\<Inter>i. A i)" |
|
779 by simp |
|
780 with LIMSEQ_ereal_INFI[OF decseq_fA] |
|
781 show "(\<lambda>i. f (A i)) ----> f (\<Inter>i. A i)" by simp |
|
782 qed |
|
783 |
|
784 lemma positiveD1: "positive M f \<Longrightarrow> f {} = 0" by (auto simp: positive_def) |
|
785 lemma positiveD2: "positive M f \<Longrightarrow> A \<in> M \<Longrightarrow> 0 \<le> f A" by (auto simp: positive_def) |
|
786 |
|
787 lemma (in ring_of_sets) empty_continuous_imp_continuous_from_below: |
|
788 assumes f: "positive M f" "additive M f" "\<forall>A\<in>M. f A \<noteq> \<infinity>" |
|
789 assumes cont: "\<forall>A. range A \<subseteq> M \<longrightarrow> decseq A \<longrightarrow> (\<Inter>i. A i) = {} \<longrightarrow> (\<lambda>i. f (A i)) ----> 0" |
|
790 assumes A: "range A \<subseteq> M" "incseq A" "(\<Union>i. A i) \<in> M" |
|
791 shows "(\<lambda>i. f (A i)) ----> f (\<Union>i. A i)" |
|
792 proof - |
|
793 have "\<forall>A\<in>M. \<exists>x. f A = ereal x" |
|
794 proof |
|
795 fix A assume "A \<in> M" with f show "\<exists>x. f A = ereal x" |
|
796 unfolding positive_def by (cases "f A") auto |
|
797 qed |
|
798 from bchoice[OF this] guess f' .. note f' = this[rule_format] |
|
799 from A have "(\<lambda>i. f ((\<Union>i. A i) - A i)) ----> 0" |
|
800 by (intro cont[rule_format]) (auto simp: decseq_def incseq_def) |
|
801 moreover |
|
802 { fix i |
|
803 have "f ((\<Union>i. A i) - A i) + f (A i) = f ((\<Union>i. A i) - A i \<union> A i)" |
|
804 using A by (intro f(2)[THEN additiveD, symmetric]) auto |
|
805 also have "(\<Union>i. A i) - A i \<union> A i = (\<Union>i. A i)" |
|
806 by auto |
|
807 finally have "f' (\<Union>i. A i) - f' (A i) = f' ((\<Union>i. A i) - A i)" |
|
808 using A by (subst (asm) (1 2 3) f') auto |
|
809 then have "f ((\<Union>i. A i) - A i) = ereal (f' (\<Union>i. A i) - f' (A i))" |
|
810 using A f' by auto } |
|
811 ultimately have "(\<lambda>i. f' (\<Union>i. A i) - f' (A i)) ----> 0" |
|
812 by (simp add: zero_ereal_def) |
|
813 then have "(\<lambda>i. f' (A i)) ----> f' (\<Union>i. A i)" |
|
814 by (rule LIMSEQ_diff_approach_zero2[OF tendsto_const]) |
|
815 then show "(\<lambda>i. f (A i)) ----> f (\<Union>i. A i)" |
|
816 using A by (subst (1 2) f') auto |
|
817 qed |
|
818 |
|
819 lemma (in ring_of_sets) empty_continuous_imp_countably_additive: |
|
820 assumes f: "positive M f" "additive M f" and fin: "\<forall>A\<in>M. f A \<noteq> \<infinity>" |
|
821 assumes cont: "\<And>A. range A \<subseteq> M \<Longrightarrow> decseq A \<Longrightarrow> (\<Inter>i. A i) = {} \<Longrightarrow> (\<lambda>i. f (A i)) ----> 0" |
|
822 shows "countably_additive M f" |
|
823 using countably_additive_iff_continuous_from_below[OF f] |
|
824 using empty_continuous_imp_continuous_from_below[OF f fin] cont |
|
825 by blast |
|
826 |
|
827 lemma (in ring_of_sets) caratheodory_empty_continuous: |
681 lemma (in ring_of_sets) caratheodory_empty_continuous: |
828 assumes f: "positive M f" "additive M f" and fin: "\<And>A. A \<in> M \<Longrightarrow> f A \<noteq> \<infinity>" |
682 assumes f: "positive M f" "additive M f" and fin: "\<And>A. A \<in> M \<Longrightarrow> f A \<noteq> \<infinity>" |
829 assumes cont: "\<And>A. range A \<subseteq> M \<Longrightarrow> decseq A \<Longrightarrow> (\<Inter>i. A i) = {} \<Longrightarrow> (\<lambda>i. f (A i)) ----> 0" |
683 assumes cont: "\<And>A. range A \<subseteq> M \<Longrightarrow> decseq A \<Longrightarrow> (\<Inter>i. A i) = {} \<Longrightarrow> (\<lambda>i. f (A i)) ----> 0" |
830 shows "\<exists>\<mu> :: 'a set \<Rightarrow> ereal. (\<forall>s \<in> M. \<mu> s = f s) \<and> measure_space \<Omega> (sigma_sets \<Omega> M) \<mu>" |
684 shows "\<exists>\<mu> :: 'a set \<Rightarrow> ereal. (\<forall>s \<in> M. \<mu> s = f s) \<and> measure_space \<Omega> (sigma_sets \<Omega> M) \<mu>" |
831 proof (intro caratheodory' empty_continuous_imp_countably_additive f) |
685 proof (intro caratheodory' empty_continuous_imp_countably_additive f) |