src/HOL/Analysis/Equivalence_Measurable_On_Borel.thy
changeset 70707 125705f5965f
parent 70694 ae37b8fbf023
child 70721 47258727fa42
equal deleted inserted replaced
70706:374caac3d624 70707:125705f5965f
  1358 
  1358 
  1359 lemma borel_measurable_diff_null:
  1359 lemma borel_measurable_diff_null:
  1360   fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space"
  1360   fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space"
  1361   assumes N: "N \<in> null_sets (lebesgue_on S)" and S: "S \<in> sets lebesgue"
  1361   assumes N: "N \<in> null_sets (lebesgue_on S)" and S: "S \<in> sets lebesgue"
  1362   shows "f \<in> borel_measurable (lebesgue_on (S-N)) \<longleftrightarrow> f \<in> borel_measurable (lebesgue_on S)"
  1362   shows "f \<in> borel_measurable (lebesgue_on (S-N)) \<longleftrightarrow> f \<in> borel_measurable (lebesgue_on S)"
  1363   unfolding in_borel_measurable borel_measurable_UNIV_eq [symmetric] space_lebesgue_on sets_restrict_UNIV
  1363   unfolding in_borel_measurable space_lebesgue_on sets_restrict_UNIV
  1364 proof (intro ball_cong iffI)
  1364 proof (intro ball_cong iffI)
  1365   show "f -` T \<inter> S \<in> sets (lebesgue_on S)"
  1365   show "f -` T \<inter> S \<in> sets (lebesgue_on S)"
  1366     if "f -` T \<inter> (S-N) \<in> sets (lebesgue_on (S-N))" for T
  1366     if "f -` T \<inter> (S-N) \<in> sets (lebesgue_on (S-N))" for T
  1367     using that  assms
  1367   proof -
  1368     by (smt Diff_Int_distrib completion.complete2 diff_null_sets_lebesgue inf.idem inf_le2 inf_mono lebesgue_on_UNIV_eq null_setsD2 null_sets_restrict_space sets.Diff sets_restrict_space_iff space_lebesgue_on space_restrict_space)
  1368     have "N \<inter> S = N"
       
  1369       by (metis N S inf.orderE null_sets_restrict_space)
       
  1370     moreover have "N \<inter> S \<in> sets lebesgue"
       
  1371       by (metis N S inf.orderE null_setsD2 null_sets_restrict_space)
       
  1372     moreover have "f -` T \<inter> S \<inter> (f -` T \<inter> N) \<in> sets lebesgue"
       
  1373       by (metis N S completion.complete inf.absorb2 inf_le2 inf_mono null_sets_restrict_space)
       
  1374     ultimately show ?thesis
       
  1375       by (metis Diff_Int_distrib Int_Diff_Un S inf_le2 sets.Diff sets.Un sets_restrict_space_iff space_lebesgue_on space_restrict_space that)
       
  1376   qed
  1369   show "f -` T \<inter> (S-N) \<in> sets (lebesgue_on (S-N))"
  1377   show "f -` T \<inter> (S-N) \<in> sets (lebesgue_on (S-N))"
  1370     if "f -` T \<inter> S \<in> sets (lebesgue_on S)" for T
  1378     if "f -` T \<inter> S \<in> sets (lebesgue_on S)" for T
  1371     using image_eqI inf.commute inf_top_right sets_restrict_space that
  1379   proof -
  1372     by (smt Int_Diff S sets.Int_space_eq2 sets_restrict_space_iff space_lebesgue_on)
  1380     have "(S - N) \<inter> f -` T = (S - N) \<inter> (f -` T \<inter> S)"
       
  1381       by blast
       
  1382     then have "(S - N) \<inter> f -` T \<in> sets.restricted_space lebesgue (S - N)"
       
  1383       by (metis S image_iff sets.Int_space_eq2 sets_restrict_space_iff that)
       
  1384     then show ?thesis
       
  1385       by (simp add: inf.commute sets_restrict_space)
       
  1386   qed
  1373 qed auto
  1387 qed auto
  1374 
  1388 
  1375 lemma lebesgue_measurable_diff_null:
  1389 lemma lebesgue_measurable_diff_null:
  1376   fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space"
  1390   fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space"
  1377   assumes "N \<in> null_sets lebesgue"
  1391   assumes "N \<in> null_sets lebesgue"
  1598     by (simp add: assms borel_measurable_if lebesgue_measurable_imp_measurable_on)
  1612     by (simp add: assms borel_measurable_if lebesgue_measurable_imp_measurable_on)
  1599   then show "f measurable_on S"
  1613   then show "f measurable_on S"
  1600     using measurable_on_UNIV by blast
  1614     using measurable_on_UNIV by blast
  1601 qed
  1615 qed
  1602 
  1616 
       
  1617 subsection \<open>Measurability on generalisations of the binary product\<close>
       
  1618 lemma measurable_on_bilinear:
       
  1619   fixes h :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space \<Rightarrow> 'c::euclidean_space"
       
  1620   assumes h: "bilinear h" and f: "f measurable_on S" and g: "g measurable_on S"
       
  1621   shows "(\<lambda>x. h (f x) (g x)) measurable_on S"
       
  1622 proof (rule measurable_on_combine [where h = h])
       
  1623   show "continuous_on UNIV (\<lambda>x. h (fst x) (snd x))"
       
  1624     by (simp add: bilinear_continuous_on_compose [OF continuous_on_fst continuous_on_snd h])
       
  1625   show "h 0 0 = 0"
       
  1626   by (simp add: bilinear_lzero h)
       
  1627 qed (auto intro: assms)
       
  1628 
       
  1629 lemma borel_measurable_bilinear:
       
  1630   fixes h :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space \<Rightarrow> 'c::euclidean_space"
       
  1631   assumes "bilinear h" "f \<in> borel_measurable (lebesgue_on S)" "g \<in> borel_measurable (lebesgue_on S)"
       
  1632     and S: "S \<in> sets lebesgue"
       
  1633   shows "(\<lambda>x. h (f x) (g x)) \<in> borel_measurable (lebesgue_on S)"
       
  1634   using assms measurable_on_bilinear [of h f S g]
       
  1635   by (simp flip: measurable_on_iff_borel_measurable)
       
  1636 
       
  1637 lemma absolutely_integrable_bounded_measurable_product:
       
  1638   fixes h :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space \<Rightarrow> 'c::euclidean_space"
       
  1639   assumes "bilinear h" and f: "f \<in> borel_measurable (lebesgue_on S)" "S \<in> sets lebesgue"
       
  1640     and bou: "bounded (f ` S)" and g: "g absolutely_integrable_on S"
       
  1641   shows "(\<lambda>x. h (f x) (g x)) absolutely_integrable_on S"
       
  1642 proof -
       
  1643   obtain B where "B > 0" and B: "\<And>x y. norm (h x y) \<le> B * norm x * norm y"
       
  1644     using bilinear_bounded_pos \<open>bilinear h\<close> by blast
       
  1645   obtain C where "C > 0" and C: "\<And>x. x \<in> S \<Longrightarrow> norm (f x) \<le> C"
       
  1646     using bounded_pos by (metis bou imageI)
       
  1647   show ?thesis
       
  1648   proof (rule measurable_bounded_by_integrable_imp_absolutely_integrable [OF _ \<open>S \<in> sets lebesgue\<close>])
       
  1649     show "norm (h (f x) (g x)) \<le> B * C * norm(g x)" if "x \<in> S" for x
       
  1650       by (meson less_le mult_left_mono mult_right_mono norm_ge_zero order_trans that \<open>B > 0\<close> B C)
       
  1651     show "(\<lambda>x. h (f x) (g x)) \<in> borel_measurable (lebesgue_on S)"
       
  1652       using \<open>bilinear h\<close> f g
       
  1653       by (blast intro: borel_measurable_bilinear dest: absolutely_integrable_measurable)
       
  1654     show "(\<lambda>x. B * C * norm(g x)) integrable_on S"
       
  1655       using \<open>0 < B\<close> \<open>0 < C\<close> absolutely_integrable_on_def g by auto
       
  1656   qed
       
  1657 qed
       
  1658 
       
  1659 lemma absolutely_integrable_bounded_measurable_product_real:
       
  1660   fixes f :: "real \<Rightarrow> real"
       
  1661   assumes "f \<in> borel_measurable (lebesgue_on S)" "S \<in> sets lebesgue"
       
  1662       and "bounded (f ` S)" and "g absolutely_integrable_on S"
       
  1663   shows "(\<lambda>x. f x * g x) absolutely_integrable_on S"
       
  1664   using absolutely_integrable_bounded_measurable_product bilinear_times assms by blast
       
  1665 
  1603 end
  1666 end