626 fixes M N :: "'a measure" and E :: "'a set set" and A :: "nat \<Rightarrow> 'a set" |
626 fixes M N :: "'a measure" and E :: "'a set set" and A :: "nat \<Rightarrow> 'a set" |
627 assumes "Int_stable E" "E \<subseteq> Pow \<Omega>" |
627 assumes "Int_stable E" "E \<subseteq> Pow \<Omega>" |
628 and eq: "\<And>X. X \<in> E \<Longrightarrow> emeasure M X = emeasure N X" |
628 and eq: "\<And>X. X \<in> E \<Longrightarrow> emeasure M X = emeasure N X" |
629 and M: "sets M = sigma_sets \<Omega> E" |
629 and M: "sets M = sigma_sets \<Omega> E" |
630 and N: "sets N = sigma_sets \<Omega> E" |
630 and N: "sets N = sigma_sets \<Omega> E" |
631 and A: "range A \<subseteq> E" "incseq A" "(\<Union>i. A i) = \<Omega>" "\<And>i. emeasure M (A i) \<noteq> \<infinity>" |
631 and A: "range A \<subseteq> E" "(\<Union>i. A i) = \<Omega>" "\<And>i. emeasure M (A i) \<noteq> \<infinity>" |
632 shows "M = N" |
632 shows "M = N" |
633 proof - |
633 proof - |
634 let ?\<mu> = "emeasure M" and ?\<nu> = "emeasure N" |
634 let ?\<mu> = "emeasure M" and ?\<nu> = "emeasure N" |
635 interpret S: sigma_algebra \<Omega> "sigma_sets \<Omega> E" by (rule sigma_algebra_sigma_sets) fact |
635 interpret S: sigma_algebra \<Omega> "sigma_sets \<Omega> E" by (rule sigma_algebra_sigma_sets) fact |
636 { fix F assume "F \<in> E" and "?\<mu> F \<noteq> \<infinity>" |
636 { fix F assume "F \<in> E" and "?\<mu> F \<noteq> \<infinity>" |
671 by auto |
671 by auto |
672 qed |
672 qed |
673 have *: "sigma_sets \<Omega> E = ?D" |
673 have *: "sigma_sets \<Omega> E = ?D" |
674 using `F \<in> E` `Int_stable E` |
674 using `F \<in> E` `Int_stable E` |
675 by (intro D.dynkin_lemma) (auto simp add: Int_stable_def eq) |
675 by (intro D.dynkin_lemma) (auto simp add: Int_stable_def eq) |
676 have "\<And>D. D \<in> sigma_sets \<Omega> E \<Longrightarrow> ?\<mu> (F \<inter> D) = ?\<nu> (F \<inter> D)" |
676 have "\<And>D. D \<in> sets M \<Longrightarrow> emeasure M (F \<inter> D) = emeasure N (F \<inter> D)" |
677 by (subst (asm) *) auto } |
677 unfolding M by (subst (asm) *) auto } |
678 note * = this |
678 note * = this |
679 show "M = N" |
679 show "M = N" |
680 proof (rule measure_eqI) |
680 proof (rule measure_eqI) |
681 show "sets M = sets N" |
681 show "sets M = sets N" |
682 using M N by simp |
682 using M N by simp |
|
683 have [simp, intro]: "\<And>i. A i \<in> sets M" |
|
684 using A(1) by (auto simp: subset_eq M) |
683 fix F assume "F \<in> sets M" |
685 fix F assume "F \<in> sets M" |
684 then have "F \<in> sigma_sets \<Omega> E" |
686 let ?D = "disjointed (\<lambda>i. F \<inter> A i)" |
685 using M by simp |
687 have "space M = \<Omega>" |
686 let ?A = "\<lambda>i. A i \<inter> F" |
688 using top[of M] space_closed[of M] S.top S.space_closed `sets M = sigma_sets \<Omega> E` by blast |
687 have "range ?A \<subseteq> sigma_sets \<Omega> E" "incseq ?A" |
689 then have F_eq: "F = (\<Union>i. ?D i)" |
688 using A(1,2) `F \<in> sigma_sets \<Omega> E` by (auto simp: incseq_def) |
690 using `F \<in> sets M`[THEN sets_into_space] A(2)[symmetric] by (auto simp: UN_disjointed_eq) |
689 moreover |
691 have [simp, intro]: "\<And>i. ?D i \<in> sets M" |
690 { fix i have "?\<mu> (?A i) = ?\<nu> (?A i)" |
692 using range_disjointed_sets[of "\<lambda>i. F \<inter> A i" M] `F \<in> sets M` |
691 using *[of "A i" F] `F \<in> sigma_sets \<Omega> E` A finite by auto } |
693 by (auto simp: subset_eq) |
692 ultimately show "?\<mu> F = ?\<nu> F" |
694 have "disjoint_family ?D" |
693 using SUP_emeasure_incseq[of ?A M] SUP_emeasure_incseq[of ?A N] A(3) `F \<in> sigma_sets \<Omega> E` |
695 by (auto simp: disjoint_family_disjointed) |
694 by (auto simp: M N SUP_emeasure_incseq) |
696 moreover |
|
697 { fix i |
|
698 have "A i \<inter> ?D i = ?D i" |
|
699 by (auto simp: disjointed_def) |
|
700 then have "emeasure M (?D i) = emeasure N (?D i)" |
|
701 using *[of "A i" "?D i", OF _ A(3)] A(1) by auto } |
|
702 ultimately show "emeasure M F = emeasure N F" |
|
703 using N M |
|
704 apply (subst (1 2) F_eq) |
|
705 apply (subst (1 2) suminf_emeasure[symmetric]) |
|
706 apply auto |
|
707 done |
695 qed |
708 qed |
696 qed |
709 qed |
697 |
710 |
698 lemma measure_of_of_measure: "measure_of (space M) (sets M) (emeasure M) = M" |
711 lemma measure_of_of_measure: "measure_of (space M) (sets M) (emeasure M) = M" |
699 proof (intro measure_eqI emeasure_measure_of_sigma) |
712 proof (intro measure_eqI emeasure_measure_of_sigma) |