src/HOL/Probability/Essential_Supremum.thy
author hoelzl
Tue, 18 Oct 2016 23:47:33 +0200
changeset 64293 256298544491
child 64319 a33bbac43359
permissions -rwxr-xr-x
add missing file Essential_Supremum.thy
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
64293
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
     1
(*  Author:  Sébastien Gouëzel   sebastien.gouezel@univ-rennes1.fr
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
     2
    License: BSD
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
     3
*)
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
     4
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
     5
theory Essential_Supremum
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
     6
imports "../Analysis/Analysis"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
     7
begin
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
     8
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
     9
section {*The essential supremum*}
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    10
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    11
text {*In this paragraph, we define the essential supremum and give its basic properties. The
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    12
essential supremum of a function is its maximum value if one is allowed to throw away a set
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    13
of measure $0$. It is convenient to define it to be infinity for non-measurable functions, as
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    14
it allows for neater statements in general. This is a prerequisiste to define the space $L^\infty$.*}
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    15
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    16
definition esssup::"'a measure \<Rightarrow> ('a \<Rightarrow> ereal) \<Rightarrow> ereal"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    17
  where "esssup M f = (if f \<in> borel_measurable M then Inf {z. emeasure M {x \<in> space M. f x > z} = 0} else \<infinity>)"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    18
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    19
lemma esssup_zero_measure:
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    20
  "emeasure M {x \<in> space M. f x > esssup M f} = 0"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    21
proof (cases "esssup M f = \<infinity>")
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    22
  case True
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    23
  then show ?thesis by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    24
next
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    25
  case False
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    26
  then have [measurable]: "f \<in> borel_measurable M" unfolding esssup_def by meson
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    27
  have "esssup M f < \<infinity>" using False by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    28
  have *: "{x \<in> space M. f x > z} \<in> null_sets M" if "z > esssup M f" for z
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    29
  proof -
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    30
    have "\<exists>w. w < z \<and> emeasure M {x \<in> space M. f x > w} = 0"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    31
      using `z > esssup M f` unfolding esssup_def apply auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    32
      by (metis (mono_tags, lifting) Inf_less_iff mem_Collect_eq)
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    33
    then obtain w where "w < z" "emeasure M {x \<in> space M. f x > w} = 0" by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    34
    then have a: "{x \<in> space M. f x > w} \<in> null_sets M" by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    35
    have b: "{x \<in> space M. f x > z} \<subseteq> {x \<in> space M. f x > w}" using `w < z` by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    36
    show ?thesis using null_sets_subset[OF a _ b] by simp
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    37
  qed
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    38
  obtain u::"nat \<Rightarrow> ereal" where u: "\<And>n. u n > esssup M f" "u \<longlonglongrightarrow> esssup M f"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    39
    using approx_from_above_dense_linorder[OF `esssup M f < \<infinity>`] by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    40
  have "{x \<in> space M. f x > esssup M f} = (\<Union>n. {x \<in> space M. f x > u n})"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    41
    using u apply auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    42
    apply (metis (mono_tags, lifting) order_tendsto_iff eventually_mono LIMSEQ_unique)
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    43
    using less_imp_le less_le_trans by blast
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    44
  also have "... \<in> null_sets M"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    45
    using *[OF u(1)] by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    46
  finally show ?thesis by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    47
qed
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    48
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    49
lemma esssup_AE:
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    50
  "AE x in M. f x \<le> esssup M f"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    51
proof (cases "f \<in> borel_measurable M")
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    52
  case True
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    53
  show ?thesis
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    54
    apply (rule AE_I[OF _ esssup_zero_measure[of _ f]]) using True by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    55
next
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    56
  case False
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    57
  then have "esssup M f = \<infinity>" unfolding esssup_def by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    58
  then show ?thesis by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    59
qed
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    60
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    61
lemma esssup_pos_measure:
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    62
  assumes "f \<in> borel_measurable M" "z < esssup M f"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    63
  shows "emeasure M {x \<in> space M. f x > z} > 0"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    64
using assms Inf_less_iff mem_Collect_eq not_gr_zero unfolding esssup_def by force
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    65
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    66
lemma esssup_non_measurable:
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    67
  assumes "f \<notin> borel_measurable M"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    68
  shows "esssup M f = \<infinity>"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    69
using assms unfolding esssup_def by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    70
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    71
lemma esssup_I [intro]:
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    72
  assumes "f \<in> borel_measurable M" "AE x in M. f x \<le> c"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    73
  shows "esssup M f \<le> c"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    74
proof -
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    75
  have "emeasure M {x \<in> space M. \<not> f x \<le> c} = 0"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    76
    apply (rule AE_E2[OF assms(2)]) using assms(1) by simp
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    77
  then have *: "emeasure M {x \<in> space M. f x > c} = 0"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    78
    by (metis (mono_tags, lifting) Collect_cong not_less)
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    79
  show ?thesis unfolding esssup_def using assms apply simp by (rule Inf_lower, simp add: *)
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    80
qed
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    81
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    82
lemma esssup_AE_mono:
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    83
  assumes "f \<in> borel_measurable M" "AE x in M. f x \<le> g x"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    84
  shows "esssup M f \<le> esssup M g"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    85
proof (cases "g \<in> borel_measurable M")
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    86
  case False
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    87
  then show ?thesis unfolding esssup_def by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    88
next
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    89
  case True
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    90
  have "AE x in M. f x \<le> esssup M g"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    91
    using assms(2) esssup_AE[of g M] by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    92
  then show ?thesis using esssup_I assms(1) by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    93
qed
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    94
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    95
lemma esssup_mono:
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    96
  assumes "f \<in> borel_measurable M" "\<And>x. f x \<le> g x"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    97
  shows "esssup M f \<le> esssup M g"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    98
apply (rule esssup_AE_mono) using assms by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
    99
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   100
lemma esssup_AE_cong:
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   101
  assumes [measurable]: "f \<in> borel_measurable M" "g \<in> borel_measurable M"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   102
      and "AE x in M. f x = g x"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   103
  shows "esssup M f = esssup M g"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   104
proof -
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   105
  have "esssup M f \<le> esssup M g"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   106
    using esssup_AE_mono[OF assms(1), of g] assms(3) by (simp add: eq_iff)
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   107
  moreover have "esssup M g \<le> esssup M f"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   108
    using esssup_AE_mono[OF assms(2), of f] assms(3) by (simp add: eq_iff)
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   109
  ultimately show ?thesis by simp
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   110
qed
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   111
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   112
lemma esssup_const:
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   113
  assumes "emeasure M (space M) \<noteq> 0"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   114
  shows "esssup M (\<lambda>x. c) = c"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   115
proof -
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   116
  have "emeasure M {x \<in> space M. (\<lambda>x. c) x > z} = (if c > z then emeasure M (space M) else 0)" for z
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   117
    by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   118
  then have "{z. emeasure M {x \<in> space M. (\<lambda>x. c) x > z} = 0} = {c..}" using assms by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   119
  then have "esssup M (\<lambda>x. c) = Inf {c..}" unfolding esssup_def by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   120
  then show ?thesis by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   121
qed
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   122
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   123
lemma esssup_cmult:
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   124
  assumes "c > (0::real)"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   125
  shows "esssup M (\<lambda>x. c * f x) = c * esssup M f"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   126
proof (cases "f \<in> borel_measurable M")
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   127
  case True
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   128
  then have a [measurable]: "f \<in> borel_measurable M" by simp
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   129
  then have b [measurable]: "(\<lambda>x. c * f x) \<in> borel_measurable M" by simp
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   130
  have a: "{x \<in> space M. c * z < c * f x} = {x \<in> space M. z < f x}" for z::ereal
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   131
    by (meson assms ereal_less(2) ereal_mult_left_mono ereal_mult_strict_left_mono less_ereal.simps(4) less_imp_le not_less)
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   132
  have *: "{z::ereal. emeasure M {x \<in> space M. ereal c * f x > z} = 0} = {c * z| z::ereal. emeasure M {x \<in> space M. f x > z} = 0}"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   133
  proof (auto)
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   134
    fix y assume *: "emeasure M {x \<in> space M. y < c * f x} = 0"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   135
    define z where "z = y / c"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   136
    have **: "y = c * z" unfolding z_def using assms by (simp add: ereal_mult_divide)
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   137
    then have "y = c * z \<and> emeasure M {x \<in> space M. z < f x} = 0"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   138
      using * unfolding ** unfolding a by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   139
    then show "\<exists>z. y = ereal c * z \<and> emeasure M {x \<in> space M. z < f x} = 0"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   140
      by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   141
  next
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   142
    fix z assume *: "emeasure M {x \<in> space M. z < f x} = 0"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   143
    then show "emeasure M {x \<in> space M. c * z < c * f x} = 0"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   144
        using a by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   145
  qed
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   146
  have "esssup M (\<lambda>x. c * f x) = Inf {z::ereal. emeasure M {x \<in> space M. c * f x > z} = 0}"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   147
    unfolding esssup_def using b by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   148
  also have "... = Inf {c * z| z::ereal. emeasure M {x \<in> space M. f x > z} = 0}"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   149
    using * by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   150
  also have "... = ereal c * Inf {z. emeasure M {x \<in> space M. f x > z} = 0}"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   151
    apply (rule ereal_Inf_cmult) using assms by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   152
  also have "... = c * esssup M f"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   153
    unfolding esssup_def by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   154
  finally show ?thesis by simp
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   155
next
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   156
  case False
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   157
  have "esssup M f = \<infinity>" using False unfolding esssup_def by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   158
  then have *: "c * esssup M f = \<infinity>" using assms by (simp add: ennreal_mult_eq_top_iff)
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   159
  have "(\<lambda>x. c * f x) \<notin> borel_measurable M"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   160
  proof (rule ccontr)
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   161
    assume "\<not> (\<lambda>x. c * f x) \<notin> borel_measurable M"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   162
    then have [measurable]: "(\<lambda>x. c * f x) \<in> borel_measurable M" by simp
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   163
    then have "(\<lambda>x. (1/c) * (c * f x)) \<in> borel_measurable M" by measurable
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   164
    moreover have "(1/c) * (c * f x) = f x" for x
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   165
      by (metis "*" PInfty_neq_ereal(1) divide_inverse divide_self_if ereal_zero_mult mult.assoc mult.commute mult.left_neutral one_ereal_def times_ereal.simps(1) zero_ereal_def)
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   166
    ultimately show False using False by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   167
  qed
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   168
  then have "esssup M (\<lambda>x. c * f x) = \<infinity>" unfolding esssup_def by simp
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   169
  then show ?thesis using * by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   170
qed
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   171
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   172
lemma esssup_add:
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   173
  "esssup M (\<lambda>x. f x + g x) \<le> esssup M f + esssup M g"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   174
proof (cases "f \<in> borel_measurable M \<and> g \<in> borel_measurable M")
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   175
  case True
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   176
  then have [measurable]: "(\<lambda>x. f x + g x) \<in> borel_measurable M" by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   177
  have "f x + g x \<le> esssup M f + esssup M g" if "f x \<le> esssup M f" "g x \<le> esssup M g" for x
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   178
    using that ereal_add_mono by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   179
  then have "AE x in M. f x + g x \<le> esssup M f + esssup M g"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   180
    using esssup_AE[of f M] esssup_AE[of g M] by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   181
  then show ?thesis using esssup_I by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   182
next
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   183
  case False
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   184
  then have "esssup M f + esssup M g = \<infinity>" unfolding esssup_def by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   185
  then show ?thesis by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   186
qed
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   187
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   188
lemma esssup_zero_space:
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   189
  assumes "emeasure M (space M) = 0"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   190
          "f \<in> borel_measurable M"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   191
  shows "esssup M f = - \<infinity>"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   192
proof -
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   193
  have "emeasure M {x \<in> space M. f x > - \<infinity>} = 0"
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   194
    using assms(1) emeasure_mono emeasure_eq_0 by fastforce
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   195
  then show ?thesis unfolding esssup_def using assms(2) Inf_eq_MInfty by auto
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   196
qed
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   197
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   198
end
256298544491 add missing file Essential_Supremum.thy
hoelzl
parents:
diff changeset
   199