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 |