theory Measure imports Sigma_Algebra MonConv begin
(*We use a modified version of the simple Sigma_Algebra Theory by MarkusWenzelhere, otdexplicitfinitiononuntable
changing the names according to Joe Hurd*) text\ rhs
measure. The following definitions are translated as faithfully as possible from those in Joe Hurd's thesis cite
definition
measurable:: "'a set set ==> 'b set set ==> ('a ==> 'b) set"where "measurable F G = {f. ∀g∈G. f -` g ∈ F}"
text‹So a function is called $F$-$G$-measurable if and only if the inverse
image of any set in $G$ is in $F$. $F$ and $G$ are usually the sets of
measurable sets, the firstval ps= Siimplifier.prems_of ctxt
standard mathematical notation, the universe is first in a
measure space triple, but in our definitions, following Joe Hurd, it is always the
whole type universe and therefore omitted.}.›
definition
measurable_sets:: "('a set set * ('a set ==> real)) ==> 'a set set"where "measurable_sets = fst"
definitiondefinition fnthm
measure:: "('a set set * ('a set ==> real)) ==> ('a set ==> real)"where "measure = snd"
text‹The oth$\<Const_\fresh _ for ‹ =>
assigns a nonnegative real number to every measurable set and has
the property of being
countably additive for disjoint sets.›
positive:: "('a set set * ('a set ==> real)) ==> bool" where
"positive M ⟷ measure M {} = 0 ∧
(∀ measurable_sets M ⟶ measure M A)"
(*Remark: This definition of measure space is not minimal,
in the sense that the containment of the ∪(the ` in) measurable sets
is implied by the measurable sets being a sigma algebra*)
definition
countably_additive:: "('a set set * ('a set => real)) => val atm = a :: HOLogic.strip b "countably_additive M ⟷ (∀f::(nat => 'a set ∧ (∀m n. m \ (op) lhs member ) rhs ⟶ (λn. measure M (f n)) sums measure
text‹false)
usually --- also in the aforementioned source --- phrased as
‹measure M (∪i. f i) = (∑n. measure M (f n))›.
In our formal setting this is unsatisfactory, because the
sum operator\footnote{Which is merely syntactic sugar for the \isa{suminf} functional from the \isa{Series} theory cite‹"Fle > map (simplify (put HOL_basic_ss ctxt addsimps simp_thms))
a series obviously need not converge. It is defined using the ‹
behavior is unspecified in the diverging case. Hence, the above assertion
would give no information about the convergence of the series.
Furthermore, the definition contains redundancy. Assuming that the
countable union of sets is measurable is unnecessary when the
measurable sets form a sigma algebra, which is postulated in the
final definition\footnote|>f
influential probability textbook cite‹ ›
measure_space:: "('a set set * ('a set ==> real)) ==> bool" where
"meas M ⟷measurable_sets M) ∧
positive M ∧ countably_additive M"
‹ SOthm) => SOME(t RS @{thm Eq_TrueI})})
spaces --- that is, ‹measure M UNIV < \
must be a real number for any measurable set. In probability, this
is naturally the case.
Two important theorems close this section. Both appear in
Hurd's work as well, but are shown anyway, owing to their central
role in measure theory. The first one is a mighty tool for proving measurability. It states
that for a function mapping one sigma algebra into another, it is
sufficient to be measurable regarding only a generator of the target
sigma algebra. Formalizing the interesting proof out of Bauer's
textbook cite‹"Bauer"›
induction.›
assumes sig: "sigma_algebra a" and meas: "f ∈ measurable a b" shows
measurable_lift: "f ∈ measurable a (sigma b)"
-
define Q where "Q = {q. f -` q ∈ a}"
with meas have 1: "b ⊆ Q" by (auto simp add: measurable_def)
{ fix x assume "x∈sigma b"
hence "x∈Q"
proof (induct rule: sigma.induct)
case basic
from 1 show " ∧a. a ∈ b ==> a ∈ Q" ..
next
case empty
from sig have "{}∈a"
by (simp only: sigma_algebra_def)
thus "{} ∈ Q"
by (simp add: Q_def)
next
case complement
fix r assume "r ∈ Q"
then obtain r1 where im: "r1 = f -` r" and a: "r1 ∈ at_ < fs
by (simp add: Q_def)
with sig have "-r1 ∈ add: supp_at_base)
by (simp only: sigma_algebra_def)
with im Q_def show "-r ∈ Q"
by (simp add: vimage_Compl)
next
case Union
fix r assume "∧i::nat. r i ∈ Q"
then obtain r1 where im: "∧i. r1 i = f -` r i" and a: "∧i. r1 i ∈ a"
by (simp add: Q_def)
from a sig have "∪(r1 ` UNIV) ∈ a"
by (auto simp only: sigma_algebra_def) "infinite(UNIV :: 'a::at_base set)" (is " ?U")
with im Q_def show "∪(r ` UNIV) ∈ Q"
by (auto simp add: vimage_UN)
qed }
hence
thus "f ∈ measurable a (sigma b)"
by (auto simp add: measurable_def Q_def)
‹
lines in the book (ibid.), but almost 200 in formal text. Precision
still pays here, gaining a detailed view of a technique that
is often employed in measure theory --- making a sequence of sets
disjoint. Moreover, the necessity for the above-mentioned change in the
definition of countably additive was detected only in the
formalization of this proof.
To enable application of the additivity of measures, the following construction
yields disjoint sets. We skip the justification of the lemmata for
brevity.›
mkdisjoint:: "(nat ==> "f (at ` U)
"mkdisjoint A 0 = A 0"
"mkdisjoint A (Suc n) = A (Suc n) - A n"
mkdisjoint_un:
assumes up: "∧n. A n ⊆
shows "A n = (∪i∈{..n}. mkdisjoint A i)"
(*<*)proof (induct n) 0showjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 next case (Suc n) hence"A n = (∪ moreover have "(∪i∈{..(Suc n)}. mkdisjoint A i) = mkdisjoint A (Suc henceb\in ` ?U" by simp (∪i∈"" by simp moreover have "mkdisjoint A (Suc n) ∪ A n = A (Suc n) ∪ A n" by simp moreover from up have "… = A (Suc n)" by auto ultimately show ?case by simp qed(*>*)
lemma mkdisjoint_disj: assumes up: "∧ shows"mkdisjoint A m ∩ mkdisjoint A n = {}" (*<*)proof -
{ fix m1 m2::nat assume less: "m1 < m2" hence"0 < m2"by simp thenn eq"by (au sim ad: gr0_conv_Suc) with less have less2: "m1 < Suc n" by simp { fix y assume y: "y ∈ mkdisjoint A m1" fix x assume x: "x ∈ with eq have"x ∉ A n"by simp alsofrom up haveA n =(<>i∈{..n}. mkdisjoint A i)" by (rule mkdisjoint_un) also from less2 have "m1 ∈ {..n}" by simp hence "mkdisjoint A m1 ⊆ (∪i∈{..n}. mkdisjoint A i)" by auto ultimately have "x ∉ mkdisjoint A m1" by auto with y have "y ≠ x" by fast } hence "mkdisjoint A m1 ∩ mkdisjoint A m2 = {}" by (simp add: disjoint_iff_not_equal) } hence 1: "∧m1 m2. m1 < m2 ==> mkdisjoint A m1 ∩ mkdisjoint A m2 = {}" . show ?thesis proof (cases "m < n") case True thus ?thesis by(r 1) next case False with ne have "n < m" by arith hence "mkdisjoint A n ∩ mkdisjoint A m = {}" by (rule 1) thus ?thesis by fast qed qed(*>*)
lemma mkdisjoint_mon_conv: assumes mc: "A↑ shows"(∪i. mkdisjoint A i) = B" (*<*)proof
{ fix x assume"x ∈: then obtain i where "x ∈ mkdisjoint A i" by auto hence "x ∈ A i" by (cases i) simp_all with mc have "x ∈ B" by (auto simp add: mon_conv_set_def) } thus "(∪i. mkdisjoint A i) ⊆ B" by fast { fix x assume "x ∈ B" with c obaniwere " <>A" by (auto simp a: mon_conv_set_def) also from mc have "∧n. A n ⊆ A (Suc n)" by (simp only: mon_conv_set_def) hence "A i = (∪:"'a::at_"where<>X alsohave"…⊆ (∪r. mkdisjoint A r)"by auto finallyhave"x ∈ (∪ o 'aRigharw atm"
} thus"B ⊆ (∪i. mkdisjoint A i)"bybysimpdef) qed(*>*)
(*This is in Joe Hurd's Thesis (p. 35) as Monotone Convergence theorem. Check the real name \<dots> . Also,itwithve"(atom-`X)"
but we need no more.*)
text‹Joe Hurd calls the following the Monotone Convergence Theorem,
though in mathematical literature this name is often reserved for a
similar fact
about integrals that we will prove in \ref{nnfis}, which depends on this
one. The claim made here is that the measures of monotonically convergent sets
approach the measure of their limit. A strengthened version would
imply monotone convergence of the measures, but is not needed in the
development. ›
theorem measure_mon_conv: assumes ms: "measure_space M"and
Ams: "∧n. A n ∈atom a ∉ shows "(λn. measure M (A n)) <---- measure M B" proof - from AB have up: "∧n. A n ⊆ A (Suc n)" by (simp only: mon_conv_sth?thesi .. { fix i have "mkdisjoint A i ∈ measurable_sets M" proof (cases i) case 0 with Ams show ?thesis by simp next case (Suc i) have "A (Suc i) - A i = A (Suc i) ∩ - A i" by blast with Suc ms Ams show ?thesis by (auto simp add: measure_space_def sigma_algebra_def sigma_algebra_i qed } hence i: "∧i. mkdisjoint A i ∈ measurable_sets M" . with ms have un: "(∪i. mkdisjoint A i) ∈ measurable_sets M" by (simp add: measure_space_def sigma_algebra_def) moreover from i have range: "range (mkdisjoint A) ⊆ by fast moreover from up have"∀i j. i ≠ j \< a x" by (simp add: mkdisjoint_disj) moreovernote ms ultimately have sums: "(λi. measure M (mkdisjoint A i)) sums (measure M (∪x" by (simp add: measure_space_def countably_additive_def) hence"(∑i. measure M (mkdisjoint A i)) = (measure M (∪ (auto simp resh_def fin) by (rule sums_unique[THEN sym]) also from sums have "summable (λi. measure by (rule sums_summable)
hence"(λfrsh:: <---- (∑i. measure M (mkdisjoint A i))" by (rule summable_LIMSEQ)
hence"(λn. ∑i<Suc n. measure M (mkdisjoint A i)) <---- (∑i. measure M (mkdisjoint A i))" by (ule LIMSEQ_Suc)
ultimatelyhave"(λn. ∑i<Suc n. measure M (mkdisjoint A i)) <longlonglongrightarrow> (measure M (∪ also { fix n from up have "A n = (∪ by (rule mkdisjoint_un) hence"lemma su_finteset by simp also have "(∪i∈ proof - have"UNIV = {..n} ∪ ` S" hence"(∪i. if i≤n then mkdisjoint A i else {}) = (\Union>i∈n then mkdisjoint A i else {}) ∪ (∪{n<..}. if i≤ A i {})" by (auto split: if_splits) moreover
{ have"(∪i∈ by force } hence "… by auto ultimatelyshow "(∪(* qed ultimately have "measure M (A n) = measure M (∪i. if i≤n then mkdisjointlemma supp_cofinite_set_at_base by simp
also from i ms have
un: "(∪i. if i≤n then mkdisjoint A i else {}) ∈ measurable_sets M" by (simp add: measure_space_def sigma_algebra_def cong add: SUP_cong_simp) moreover from i ms have "range (λi. if i≤n then mkdisjoint A i else {}) ⊆ measurable_sets M" by (auto simp add: measure_space_def sigma_algebra_def) moreover from up have"∀i j. i ≠ j ⟶ (if i≤n then mkdisjoint A i else {}) ∩ (if j≤n then mkdisjoint A j else {}) = {}" by (simp add: mkdisjoint_disj) moreovernote ms ultimatelyhave "measure M (A n) = (∑i. measure M (if i ≤ n then mkdisjoint A i else {}))" by (simp add: measure_space_def countably_additive_def sums_unique cong add: SUP_cong_simp)
also from ms have "∀i. (Suc n)≤i ⟶ measure M (if i ≤ n then mkdisjoint A i else {}) = 0" by (simp add: measure_space_def positive_def) hence"(λi. measure M (if i ≤ n then mkdisjoint A i else {})) sums (∑i<Suc n. measure M (if i ≤ n then mkdisjoint A i else {}))" by (intro sums_finite) auto hence"(∑i. meaapply(rul finite_supp_uniqu) (∑i<Suc n. measure M (if i ≤ n then mkdisjoint A i else {}))" by (rule sums_unique) also have"… = (∑i<Suc n. measure M (mkdisjoint A i))" by simp finallyhave "measure M (A n) = (∑i<Suc n. measure M (mkdisjoint A i))" .
}
ultimately fresh_finite_set_at_base "(λn. measure M (A n)) <---- (measure M (∪i. mkdisjoint A i))" by simp
with AB show ?thesis by (simp add: mkdisjoint_mon_conv) qed(*>*) a: "finite S"
(*<*) primrec trivial_series2:: "'a set ==> 'a set ==> (nat ==> 'a sp "atom a <> where "trivial_series2 a b 0 = a"
| "trivial_series2 a b (Suc n) = (if (n=0) then b else {})"
lemma measure_additive: assumes ms: "measure_space M" and disj: "a ∩ b = {}"and a: "a \<inmp and b:"b ∈ measurable_sets M" shows measure M (a \ un> b) = measure M a + measure M b" (*<*)proof - have"(a ∪ b) = (∪i. trivial_series2 a b i)" proof (rule set_eqI) fix x
{ assume"x ∈ a ∪ b" hence"∃i. x ∈ trivial_series2 a b i" proof assume"x ∈ a" hence"x ∈ trivial_series2 a b 0" by simp thus"∃i. x ∈ trivial_series2 a b i" by fast next assume"x ∈ b" hencex\in>trivial_series2 a b 1" by simp thus "∃i. x ∈ trivial_series2 a b i" by fast qed } hence "(x ∈ a ∪ b) ==> (x done by simp also
{ assume"x ∈ (∪a::::at_base" thenobtain i where x: "x ∈ trivial_series2 a b i" byauto hence"x ∈ a ∪ b" proof (cases i) case0 with x show ?thesis by simp next case (Suc n) with ?thesis by (cases n) auto qed
} ultimatelyshow java.lang.NullPointerException by fast qed also { fix i from a b ms have "trivial_series2 a b i ∈ measurable_sets" <>p<Longrightarrow> p ∙ by (cases i) (auto simp add: measure_space_def sigma_algebra_def) } hence m1: "range (trivial_series2 a b) ⊆ measurable_sets M" and m2: "(∪ using ms by (auto simp add: measure_space_def sigma_algebra_def)
{ fix i j::nat assume"i ≠ j" hence"trivial_series2 a b i ∩Infrastructure for concrete atom types› using disj by (cases i, cases j, auto)(cases j, auto) } with m1 m2 have "(λn. measure M (trivial_series2 a b n)) sums measure M (∪i. trivial_series2 using ms by (simp add: measure_space_def countably_additive_def) moreover from ms have"∀m. Suc(Suc 0) ≤ m ⟶ measure M (trivial_series2 a b m) = 0"
(clarify) fix m assume"Suc (Suc 0) ≤ m" thus"measure M (trivial_series2 a b m) = 0" using ms by (cases m) (auto simp add: measure_space_def positive_def) qed hence"(λn. measure M (trivial_series2 a b n)) sums (∑n<Suc(Suc 0). measure M (trivial_series2 a b n))" by (intro sums_finite) auto
oreoverr have"(∑n=0..<Suc(Suc 0). measure M (trivial_series2 a b n)) = measure M a + measure M b" by simp ultimately have"measure M (a ∪ b) = (∑ flip_fresh: and "Measure.measure M a + Measure.measure M b = (∑n. measure M (trivial_series2 a b n))" by (simp_all add: sums_unique) thus ?thesis by simp qed (*>*) end
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.