src/HOL/Probability/Complete_Measure.thy
changeset 42866 b0746bd57a41
parent 42146 5b52c6a9c627
child 43920 cedb5cb948fd
equal deleted inserted replaced
42865:36353d913424 42866:b0746bd57a41
   142   from choice[OF this] guess N .. note N = this
   142   from choice[OF this] guess N .. note N = this
   143   then have UN_N: "(\<Union>i. N i) \<in> null_sets" by (intro null_sets_UN) auto
   143   then have UN_N: "(\<Union>i. N i) \<in> null_sets" by (intro null_sets_UN) auto
   144   have "(\<Union>i. S i) \<in> sets completion" using S by auto
   144   have "(\<Union>i. S i) \<in> sets completion" using S by auto
   145   from null_part[OF this] guess N' .. note N' = this
   145   from null_part[OF this] guess N' .. note N' = this
   146   let ?N = "(\<Union>i. N i) \<union> N'"
   146   let ?N = "(\<Union>i. N i) \<union> N'"
   147   have null_set: "?N \<in> null_sets" using N' UN_N by (intro null_sets_Un) auto
   147   have null_set: "?N \<in> null_sets" using N' UN_N by (intro nullsets.Un) auto
   148   have "main_part (\<Union>i. S i) \<union> ?N = (main_part (\<Union>i. S i) \<union> null_part (\<Union>i. S i)) \<union> ?N"
   148   have "main_part (\<Union>i. S i) \<union> ?N = (main_part (\<Union>i. S i) \<union> null_part (\<Union>i. S i)) \<union> ?N"
   149     using N' by auto
   149     using N' by auto
   150   also have "\<dots> = (\<Union>i. main_part (S i) \<union> null_part (S i)) \<union> ?N"
   150   also have "\<dots> = (\<Union>i. main_part (S i) \<union> null_part (S i)) \<union> ?N"
   151     unfolding main_part_null_part_Un[OF S] main_part_null_part_Un[OF UN] by auto
   151     unfolding main_part_null_part_Un[OF S] main_part_null_part_Un[OF UN] by auto
   152   also have "\<dots> = (\<Union>i. main_part (S i)) \<union> ?N"
   152   also have "\<dots> = (\<Union>i. main_part (S i)) \<union> ?N"
   210   have "\<forall>x. \<exists>N. N \<in> null_sets \<and> null_part (?F x) \<subseteq> N"
   210   have "\<forall>x. \<exists>N. N \<in> null_sets \<and> null_part (?F x) \<subseteq> N"
   211     using F null_part by auto
   211     using F null_part by auto
   212   from choice[OF this] obtain N where
   212   from choice[OF this] obtain N where
   213     N: "\<And>x. null_part (?F x) \<subseteq> N x" "\<And>x. N x \<in> null_sets" by auto
   213     N: "\<And>x. null_part (?F x) \<subseteq> N x" "\<And>x. N x \<in> null_sets" by auto
   214   let ?N = "\<Union>x\<in>f`space M. N x" let "?f' x" = "if x \<in> ?N then undefined else f x"
   214   let ?N = "\<Union>x\<in>f`space M. N x" let "?f' x" = "if x \<in> ?N then undefined else f x"
   215   have sets: "?N \<in> null_sets" using N fin by (intro null_sets_finite_UN) auto
   215   have sets: "?N \<in> null_sets" using N fin by (intro nullsets.finite_UN) auto
   216   show ?thesis unfolding simple_function_def
   216   show ?thesis unfolding simple_function_def
   217   proof (safe intro!: exI[of _ ?f'])
   217   proof (safe intro!: exI[of _ ?f'])
   218     have "?f' ` space M \<subseteq> f`space M \<union> {undefined}" by auto
   218     have "?f' ` space M \<subseteq> f`space M \<union> {undefined}" by auto
   219     from finite_subset[OF this] completion.simple_functionD(1)[OF f]
   219     from finite_subset[OF this] completion.simple_functionD(1)[OF f]
   220     show "finite (?f' ` space M)" by auto
   220     show "finite (?f' ` space M)" by auto