src/HOL/Probability/Sigma_Algebra.thy
changeset 41095 c335d880ff82
parent 40871 688f6ff859e1
child 41413 64cd30d6b0b8
equal deleted inserted replaced
41086:b4cccce25d9a 41095:c335d880ff82
   803   show "g \<in> measurable M M'"
   803   show "g \<in> measurable M M'"
   804     using f f'[THEN bij_betw_imp_funcset] f[unfolded bij_betw_def]
   804     using f f'[THEN bij_betw_imp_funcset] f[unfolded bij_betw_def]
   805     by (subst (asm) vimage_vimage_inv)
   805     by (subst (asm) vimage_vimage_inv)
   806        (simp_all add: f_the_inv_into_f cong: measurable_cong)
   806        (simp_all add: f_the_inv_into_f cong: measurable_cong)
   807 qed
   807 qed
   808 
       
   809 lemma (in sigma_algebra) measurable_vimage_iff_inv:
       
   810   fixes f :: "'b \<Rightarrow> 'a" assumes f: "bij_betw f S (space M)"
       
   811   shows "g \<in> measurable (vimage_algebra S f) M' \<longleftrightarrow> (g \<circ> the_inv_into S f) \<in> measurable M M'"
       
   812   unfolding measurable_vimage_iff[OF f]
       
   813   using f[unfolded bij_betw_def]
       
   814   by (auto intro!: measurable_cong simp add: the_inv_into_f_f)
       
   815 
   808 
   816 lemma sigma_sets_vimage:
   809 lemma sigma_sets_vimage:
   817   assumes "f \<in> S' \<rightarrow> S" and "A \<subseteq> Pow S"
   810   assumes "f \<in> S' \<rightarrow> S" and "A \<subseteq> Pow S"
   818   shows "sigma_sets S' ((\<lambda>X. f -` X \<inter> S') ` A) = (\<lambda>X. f -` X \<inter> S') ` sigma_sets S A"
   811   shows "sigma_sets S' ((\<lambda>X. f -` X \<inter> S') ` A) = (\<lambda>X. f -` X \<inter> S') ` sigma_sets S A"
   819 proof (intro set_eqI iffI)
   812 proof (intro set_eqI iffI)
   867       by (intro sigma_sets.Union Union.hyps) simp
   860       by (intro sigma_sets.Union Union.hyps) simp
   868     also have "(\<Union>i. f -` F i \<inter> S') = X"
   861     also have "(\<Union>i. f -` F i \<inter> S') = X"
   869       using assms Union by auto
   862       using assms Union by auto
   870     finally show ?case .
   863     finally show ?case .
   871   qed
   864   qed
   872 qed
       
   873 
       
   874 lemma vimage_algebra_sigma:
       
   875   assumes E: "sets E \<subseteq> Pow (space E)"
       
   876     and f: "f \<in> space F \<rightarrow> space E"
       
   877     and "\<And>A. A \<in> sets F \<Longrightarrow> A \<in> (\<lambda>X. f -` X \<inter> space F) ` sets E"
       
   878     and "\<And>A. A \<in> sets E \<Longrightarrow> f -` A \<inter> space F \<in> sets F"
       
   879   shows "sigma_algebra.vimage_algebra (sigma E) (space F) f = sigma F"
       
   880 proof -
       
   881   interpret sigma_algebra "sigma E"
       
   882     using assms by (intro sigma_algebra_sigma) auto
       
   883   have eq: "sets F = (\<lambda>X. f -` X \<inter> space F) ` sets E"
       
   884     using assms by auto
       
   885   show "vimage_algebra (space F) f = sigma F"
       
   886     unfolding vimage_algebra_def using assms
       
   887     by (simp add: sigma_def eq sigma_sets_vimage)
       
   888 qed
   865 qed
   889 
   866 
   890 section {* Conditional space *}
   867 section {* Conditional space *}
   891 
   868 
   892 definition (in algebra)
   869 definition (in algebra)
  1418     using assms dynkin_subset[OF E] by simp
  1395     using assms dynkin_subset[OF E] by simp
  1419   ultimately show ?thesis
  1396   ultimately show ?thesis
  1420     using E by simp
  1397     using E by simp
  1421 qed
  1398 qed
  1422 
  1399 
       
  1400 subsection "Sigma algebras on finite sets"
       
  1401 
  1423 locale finite_sigma_algebra = sigma_algebra +
  1402 locale finite_sigma_algebra = sigma_algebra +
  1424   assumes finite_space: "finite (space M)"
  1403   assumes finite_space: "finite (space M)"
  1425   and sets_eq_Pow[simp]: "sets M = Pow (space M)"
  1404   and sets_eq_Pow[simp]: "sets M = Pow (space M)"
  1426 
  1405 
  1427 lemma (in finite_sigma_algebra) sets_image_space_eq_Pow:
  1406 lemma (in finite_sigma_algebra) sets_image_space_eq_Pow:
  1436     by (auto simp: subset_image_iff sets_eq_Pow image_space_def)
  1415     by (auto simp: subset_image_iff sets_eq_Pow image_space_def)
  1437   then show "S \<in> sets (image_space X)"
  1416   then show "S \<in> sets (image_space X)"
  1438     by (auto simp: image_space_def)
  1417     by (auto simp: image_space_def)
  1439 qed
  1418 qed
  1440 
  1419 
       
  1420 subsection "Bijective functions with inverse"
       
  1421 
       
  1422 definition "bij_inv A B f g \<longleftrightarrow>
       
  1423   f \<in> A \<rightarrow> B \<and> g \<in> B \<rightarrow> A \<and> (\<forall>x\<in>A. g (f x) = x) \<and> (\<forall>x\<in>B. f (g x) = x)"
       
  1424 
       
  1425 lemma bij_inv_symmetric[sym]: "bij_inv A B f g \<Longrightarrow> bij_inv B A g f"
       
  1426   unfolding bij_inv_def by auto
       
  1427 
       
  1428 lemma bij_invI:
       
  1429   assumes "f \<in> A \<rightarrow> B" "g \<in> B \<rightarrow> A"
       
  1430   and "\<And>x. x \<in> A \<Longrightarrow> g (f x) = x"
       
  1431   and "\<And>x. x \<in> B \<Longrightarrow> f (g x) = x"
       
  1432   shows "bij_inv A B f g"
       
  1433   using assms unfolding bij_inv_def by auto
       
  1434 
       
  1435 lemma bij_invE:
       
  1436   assumes "bij_inv A B f g"
       
  1437     "\<lbrakk> f \<in> A \<rightarrow> B ; g \<in> B \<rightarrow> A ;
       
  1438         (\<And>x. x \<in> A \<Longrightarrow> g (f x) = x) ;
       
  1439         (\<And>x. x \<in> B \<Longrightarrow> f (g x) = x) \<rbrakk> \<Longrightarrow> P"
       
  1440   shows P
       
  1441   using assms unfolding bij_inv_def by auto
       
  1442 
       
  1443 lemma bij_inv_bij_betw:
       
  1444   assumes "bij_inv A B f g"
       
  1445   shows "bij_betw f A B" "bij_betw g B A"
       
  1446   using assms by (auto intro: bij_betwI elim!: bij_invE)
       
  1447 
       
  1448 lemma bij_inv_vimage_vimage:
       
  1449   assumes "bij_inv A B f e"
       
  1450   shows "f -` (e -` X \<inter> B) \<inter> A = X \<inter> A"
       
  1451   using assms by (auto elim!: bij_invE)
       
  1452 
       
  1453 lemma (in sigma_algebra) measurable_vimage_iff_inv:
       
  1454   fixes f :: "'b \<Rightarrow> 'a" assumes "bij_inv S (space M) f g"
       
  1455   shows "h \<in> measurable (vimage_algebra S f) M' \<longleftrightarrow> (\<lambda>x. h (g x)) \<in> measurable M M'"
       
  1456   unfolding measurable_vimage_iff[OF bij_inv_bij_betw(1), OF assms]
       
  1457 proof (rule measurable_cong)
       
  1458   fix w assume "w \<in> space (vimage_algebra S f)"
       
  1459   then have "w \<in> S" by auto
       
  1460   then show "h w = ((\<lambda>x. h (g x)) \<circ> f) w"
       
  1461     using assms by (auto elim: bij_invE)
       
  1462 qed
       
  1463 
       
  1464 lemma vimage_algebra_sigma:
       
  1465   assumes bi: "bij_inv (space (sigma F)) (space (sigma E)) f e"
       
  1466     and "sets E \<subseteq> Pow (space E)" and F: "sets F \<subseteq> Pow (space F)"
       
  1467     and "f \<in> measurable F E" "e \<in> measurable E F"
       
  1468   shows "sigma_algebra.vimage_algebra (sigma E) (space (sigma F)) f = sigma F"
       
  1469 proof -
       
  1470   interpret sigma_algebra "sigma E"
       
  1471     using assms by (intro sigma_algebra_sigma) auto
       
  1472   have eq: "sets F = (\<lambda>X. f -` X \<inter> space F) ` sets E"
       
  1473   proof safe
       
  1474     fix X assume "X \<in> sets F"
       
  1475     then have "e -` X \<inter> space E \<in> sets E"
       
  1476       using `e \<in> measurable E F` unfolding measurable_def by auto
       
  1477     then show "X \<in>(\<lambda>Y. f -` Y \<inter> space F) ` sets E"
       
  1478       apply (rule rev_image_eqI)
       
  1479       unfolding bij_inv_vimage_vimage[OF bi[simplified]]
       
  1480       using F `X \<in> sets F` by auto
       
  1481   next
       
  1482     fix X assume "X \<in> sets E" then show "f -` X \<inter> space F \<in> sets F"
       
  1483       using `f \<in> measurable F E` unfolding measurable_def by auto
       
  1484   qed
       
  1485   show "vimage_algebra (space (sigma F)) f = sigma F"
       
  1486     unfolding vimage_algebra_def
       
  1487     using assms by (auto simp: bij_inv_def eq sigma_sets_vimage[symmetric] sigma_def)
       
  1488 qed
       
  1489 
       
  1490 lemma measurable_sigma_sigma:
       
  1491   assumes M: "sets M \<subseteq> Pow (space M)" and N: "sets N \<subseteq> Pow (space N)"
       
  1492   shows "f \<in> measurable M N \<Longrightarrow> f \<in> measurable (sigma M) (sigma N)"
       
  1493   using sigma_algebra.measurable_subset[OF sigma_algebra_sigma[OF M], of N]
       
  1494   using measurable_up_sigma[of M N] N by auto
       
  1495 
       
  1496 lemma bij_inv_the_inv_into:
       
  1497   assumes "bij_betw f A B" shows "bij_inv A B f (the_inv_into A f)"
       
  1498 proof (rule bij_invI)
       
  1499   show "the_inv_into A f \<in> B \<rightarrow> A"
       
  1500     using bij_betw_the_inv_into[OF assms] by (rule bij_betw_imp_funcset)
       
  1501   show "f \<in> A \<rightarrow> B" using assms by (rule bij_betw_imp_funcset)
       
  1502   show "\<And>x. x \<in> A \<Longrightarrow> the_inv_into A f (f x) = x"
       
  1503     "\<And>x. x \<in> B \<Longrightarrow> f (the_inv_into A f x) = x"
       
  1504     using the_inv_into_f_f[of f A] f_the_inv_into_f[of f A]
       
  1505     using assms by (auto simp: bij_betw_def)
       
  1506 qed
       
  1507 
  1441 end
  1508 end