Documentation

Analysis.MeasureTheory.Section_1_3_2

Introduction to Measure Theory, Section 1.3.2: Measurable functions #

A companion to (the introduction to) Section 1.3.2 of the book "An introduction to Measure Theory".

def Unsigned {X : Type u_1} {Y : Type u_2} [LE Y] [Zero Y] (f : XY) :
Equations
Instances For
    def PointwiseConvergesTo {X : Type u_1} {Y : Type u_2} [TopologicalSpace Y] (f : XY) (g : XY) :
    Equations
    Instances For

      Definiiton 1.3.8 (Unsigned measurable function)

      Equations
      Instances For
        def EReal.BoundedFunction {X : Type u_1} (f : XEReal) :
        Equations
        Instances For
          def FiniteMeasureSupport {d : } {Y : Type u_1} [Zero Y] (f : EuclideanSpace' dY) :
          Equations
          Instances For
            def PointwiseAeConvergesTo {d : } {Y : Type u_1} [TopologicalSpace Y] (f : EuclideanSpace' dY) (g : EuclideanSpace' dY) :
            Equations
            Instances For

              Helper lemmas for Lemma 1.3.9 #

              The proof follows the book's implication chain. We establish explicit edges and let tfae_finish compute the transitive closure.

              Explicit edges declared:

              Derived transitively (by tfae_finish):

              (i) ⟺ (ii): By definition of UnsignedMeasurable #

              (ii) ⟹ (iii): Pointwise everywhere implies pointwise a.e. #

              (iv) ⟹ (ii): Monotone sequences in [0,∞] converge to their supremum #

              (iii) ⟹ (v): Via limsup representation #

              (v) ⟹ (vi): {f ≥ λ} = ⋂_{n≥1} {f > λ - 1/n} #

              (vi) ⟹ (v): {f > λ} = ⋃_{q ∈ ℚ, q > λ} {f ≥ q} #

              (v) ⟹ (viii): {f ≤ t} = {f > t}ᶜ #

              (vi) ⟹ (vii): {f < t} = {f ≥ t}ᶜ #

              (vii) ⟹ (vi): {f ≥ t} = {f < t}ᶜ #

              (viii) ⟹ (v): {f > t} = {f ≤ t}ᶜ #

              (v)-(viii) ⟹ (ix): Intervals are intersections of half-intervals #

              (ix) ⟹ (x): Open sets are countable unions of intervals #

              (x) ⟺ (xi): Complementation #

              (x) ⟹ (vii): {f < λ} = f⁻¹'(Iio λ) and Iio λ is open #

              (v)-(xi) ⟹ (iv): Construction of approximating sequence #

              theorem UnsignedMeasurable.TFAE {d : } {f : EuclideanSpace' dEReal} (hf : Unsigned f) :
              [UnsignedMeasurable f, ∃ (g : EuclideanSpace' dEReal), (∀ (n : ), UnsignedSimpleFunction (g n)) ∀ (x : EuclideanSpace' d), Filter.Tendsto (fun (n : ) => g n x) Filter.atTop (nhds (f x)), ∃ (g : EuclideanSpace' dEReal), (∀ (n : ), UnsignedSimpleFunction (g n)) PointwiseAeConvergesTo g f, ∃ (g : EuclideanSpace' dEReal), (∀ (n : ), UnsignedSimpleFunction (g n) EReal.BoundedFunction (g n) FiniteMeasureSupport (g n)) (∀ (x : EuclideanSpace' d), Monotone fun (n : ) => g n x) ∀ (x : EuclideanSpace' d), f x = ⨆ (n : ), g n x, ∀ (t : EReal), LebesgueMeasurable {x : EuclideanSpace' d | f x > t}, ∀ (t : EReal), LebesgueMeasurable {x : EuclideanSpace' d | f x t}, ∀ (t : EReal), LebesgueMeasurable {x : EuclideanSpace' d | f x < t}, ∀ (t : EReal), LebesgueMeasurable {x : EuclideanSpace' d | f x t}, ∀ (I : BoundedInterval), LebesgueMeasurable (f ⁻¹' (Real.toEReal '' I)), ∀ (U : Set EReal), IsOpen ULebesgueMeasurable (f ⁻¹' U), ∀ (K : Set EReal), IsClosed KLebesgueMeasurable (f ⁻¹' K)].TFAE

              Lemma 1.3.9 (Equivalent notions of measurability). Some slight changes to the statement have been made to make the claims cleaner to state

              Exercise 1.3.3(i)

              theorem UnsignedMeasurable.sup {d : } {f : EuclideanSpace' dEReal} (hf : ∀ (n : ), UnsignedMeasurable (f n)) :
              UnsignedMeasurable fun (x : EuclideanSpace' d) => ⨆ (n : ), f n x

              Exercise 1.3.3(iii)

              theorem UnsignedMeasurable.inf {d : } {f : EuclideanSpace' dEReal} (hf : ∀ (n : ), UnsignedMeasurable (f n)) :
              UnsignedMeasurable fun (x : EuclideanSpace' d) => ⨅ (n : ), f n x

              Exercise 1.3.3(iii)

              theorem UnsignedMeasurable.limsup {d : } {f : EuclideanSpace' dEReal} (hf : ∀ (n : ), UnsignedMeasurable (f n)) :

              Exercise 1.3.3(iii)

              theorem UnsignedMeasurable.liminf {d : } {f : EuclideanSpace' dEReal} (hf : ∀ (n : ), UnsignedMeasurable (f n)) :

              Exercise 1.3.3(iii)

              Exercise 1.3.3(iv)

              theorem UnsignedMeasurable.aeLimit {d : } {f : EuclideanSpace' dEReal} (g : EuclideanSpace' dEReal) (hf : ∀ (n : ), UnsignedMeasurable (g n)) (heq : PointwiseAeConvergesTo g f) :

              Exercise 1.3.3(v)

              theorem UnsignedMeasurable.comp_cts {d : } {f : EuclideanSpace' dEReal} (hf : UnsignedMeasurable f) {φ : ERealEReal} ( : Continuous φ) :

              Exercise 1.3.3(vi)

              Exercise 1.3.3(vii)

              def UniformConvergesTo {X : Type u_1} (f : XEReal) (g : XEReal) :
              Equations
              Instances For

                Remark 1.3.10: Measurable functions can have non-measurable preimages #

                We construct an example showing that even for a measurable function f: ℝ^d → [0, +∞], the inverse image f⁻¹(E) of a Lebesgue measurable set E need not be Lebesgue measurable.

                Strategy (from the textbook):

                1. The Cantor set C := {∑ aⱼ 3^{-j} : aⱼ ∈ {0,2}} has measure zero
                2. Define f: [0,1] → C by mapping binary digits to ternary: f(∑ bⱼ 2^{-j}) = ∑ 2bⱼ 3^{-j}
                3. f is bijective from A (non-terminating binary decimals) onto C, and f is measurable
                4. Take non-measurable F ⊆ A (from Vitali construction)
                5. E := f(F) ⊆ C is measurable (subset of null set), but f⁻¹(E) = F is non-measurable

                Implementation note: Our formalization differs slightly from the textbook:

                The textbook's f is NOT monotone on [0,1] (e.g., f(0.4) > 0 but f(0.5) = 0). Our f IS monotone on all of [0,1], which simplifies the measurability proof: sublevel sets are intervals, hence measurable by Lemma 1.3.9(viii).

                Both versions work for the theorem because:

                Dyadic rationals: numbers of the form k/2^n where k ≤ 2^n. These are exactly the real numbers with terminating binary expansions.

                Equations
                Instances For

                  Dyadic rationals are countable.

                  noncomputable def binaryDigit (x : ) (j : ) :

                  Binary digit extraction: bⱼ(x) = ⌊2^j · x⌋ mod 2. For x ∈ [0,1), this extracts the j-th binary digit. Special case: x = 1 has all digits = 1 (1 = 0.111...₂). For x ∉ [0,1], all digits are 0.

                  Equations
                  Instances For
                    theorem binaryDigit_le_one (x : ) (j : ) :

                    Binary digits are in {0, 1}.

                    theorem binaryDigit_zero (j : ) :

                    Binary digits of 0 are all 0.

                    theorem binaryDigit_one (j : ) :

                    Binary digits of 1 are all 1.

                    theorem tsum_two_thirds_geometric :
                    ∑' (j : ), 2 * (1 / 3) ^ (j + 1) = 1

                    The full sum ∑_{j≥0} 2·(1/3)^{j+1} = 1.

                    theorem tsum_tail_bound (k : ) :
                    ∑' (j : ), 2 * (1 / 3) ^ (k + j + 1) = (1 / 3) ^ k

                    The tail sum bound: ∑_{j≥k} 2·(1/3)^{j+1} = (1/3)^k.

                    theorem floor_two_mul_odd_ge {z : } (hz : 0 z) (hodd : 2 * z⌋₊ % 2 = 1) :

                    Helper: if ⌊2z⌋₊ % 2 = 1 then ⌊2z⌋₊ ≥ 2⌊z⌋₊ + 1

                    theorem floor_two_mul_even_le {z : } (hz : 0 z) (heven : 2 * z⌋₊ % 2 = 0) :

                    Helper: if ⌊2z⌋₊ % 2 = 0 then ⌊2z⌋₊ ≤ 2⌊z⌋₊

                    theorem floor_two_mul_eq_of_mod_eq {x y : } (hx : 0 x) (hy : 0 y) (h_floor : x⌋₊ = y⌋₊) (h_mod : 2 * x⌋₊ % 2 = 2 * y⌋₊ % 2) :

                    Helper: equal mod 2 and equal ⌊z⌋ implies equal ⌊2z⌋

                    The properties required of the binary-to-ternary function for this construction. The function maps [0,1] into the Cantor set C by converting binary digits to ternary.

                    Note: Unlike the textbook (which sets g(x) = 0 for dyadic rationals), our g is defined uniformly for all x ∈ [0,1]. This makes g monotone on ALL of [0,1], not just on A.

                    Instances For
                      noncomputable def Remark_1_3_10.binaryToTernaryFn (x : ) :

                      The binary-to-ternary function: g(x) = ∑_{j≥1} 2·bⱼ(x)·3^{-j} for x ∈ [0,1], else 0.

                      Equations
                      Instances For
                        theorem Remark_1_3_10.binaryToTernary_summable (x : ) :
                        Summable fun (j : ) => 2 * (binaryDigit x (j + 1)) * (1 / 3) ^ (j + 1)

                        The series ∑ 2·bⱼ(x)·3^{-j} is summable for any x.

                        Helper lemmas for monotonicity proof #

                        theorem Remark_1_3_10.binaryDigit_exists_one_of_pos {x : } (hx_pos : 0 < x) (hx_lt : x < 1) :
                        ∃ (j : ), binaryDigit x (j + 1) = 1

                        For x ∈ (0, 1), there exists a position where the binary digit is 1.

                        theorem Remark_1_3_10.binaryDigit_partial_sum_le {x : } (hx : x Set.Ico 0 1) (n : ) :
                        2 ^ n * x⌋₊ / 2 ^ n x

                        The partial sum bounds x from below: Sₙ(x) ≤ x

                        theorem Remark_1_3_10.binaryDigit_partial_sum_lt (x : ) (n : ) :
                        x < 2 ^ n * x⌋₊ / 2 ^ n + 1 / 2 ^ n

                        The partial sum bounds x from above: x < Sₙ(x) + 2^{-n}

                        theorem Remark_1_3_10.binaryDigit_one_implies_lower_bound {x : } (hx : x Set.Ico 0 1) (k : ) (hbk : binaryDigit x (k + 1) = 1) :
                        2 ^ k * x⌋₊ / 2 ^ k + 1 / 2 ^ (k + 1) x

                        Key lemma: if bₖ(x) = 1, then x ≥ ⌊2^k * x⌋₊ / 2^k + 2^{-(k+1)}

                        theorem Remark_1_3_10.binaryDigit_zero_implies_upper_bound {y : } (hy : y Set.Ico 0 1) (k : ) (hbk : binaryDigit y (k + 1) = 0) :
                        y < 2 ^ k * y⌋₊ / 2 ^ k + 1 / 2 ^ (k + 1)

                        Key lemma: if bₖ(y) = 0, then y < ⌊2^k * y⌋₊ / 2^k + 2^{-(k+1)}

                        theorem Remark_1_3_10.floor_eq_of_binaryDigit_eq {n : } {x y : } (hx : x Set.Ico 0 1) (hy : y Set.Ico 0 1) (heq : j < n, binaryDigit x (j + 1) = binaryDigit y (j + 1)) :
                        2 ^ n * x⌋₊ = 2 ^ n * y⌋₊

                        Helper: floors of x, y in [0,1) are equal up to level n if their binary digits agree up to level n-1.

                        theorem Remark_1_3_10.binaryDigit_first_diff {x y : } (hx : x Set.Ico 0 1) (hy : y Set.Ico 0 1) (hxy : x < y) :
                        ∃ (k : ), binaryDigit x (k + 1) < binaryDigit y (k + 1) j < k, binaryDigit x (j + 1) = binaryDigit y (j + 1)

                        For x, y ∈ [0,1) with x < y, there exists a first position k where bₖ(x) < bₖ(y).

                        theorem Remark_1_3_10.binaryToTernary_lt_of_digit_lt {x y : } (hx : x Set.Icc 0 1) (hy : y Set.Icc 0 1) (k : ) (hk_lt : binaryDigit x (k + 1) < binaryDigit y (k + 1)) (hk_eq : j < k, binaryDigit x (j + 1) = binaryDigit y (j + 1)) :

                        Monotonicity: if digits agree up to k and bₖ(x) < bₖ(y), then g(x) < g(y).

                        Helper lemmas for injectivity proof #

                        theorem Remark_1_3_10.ternary_02_expansion_unique {d e : } (hd : ∀ (j : ), d j {0, 2}) (he : ∀ (j : ), e j {0, 2}) (hsum_d : Summable fun (j : ) => (d j) * (1 / 3) ^ (j + 1)) (hsum_e : Summable fun (j : ) => (e j) * (1 / 3) ^ (j + 1)) (heq : ∑' (j : ), (d j) * (1 / 3) ^ (j + 1) = ∑' (j : ), (e j) * (1 / 3) ^ (j + 1)) (j : ) :
                        d j = e j

                        Ternary {0,2} expansions are unique.

                        Helper lemmas for binary expansion sums #

                        theorem Remark_1_3_10.non_dyadic_eq_binary_sum {x : } (hx : x Set.Ico 0 1) (_hnd : xDyadicRationals) :
                        x = ∑' (j : ), (binaryDigit x (j + 1)) * (1 / 2) ^ (j + 1)

                        For non-dyadic x ∈ [0,1), x equals its binary expansion sum.

                        theorem Remark_1_3_10.eq_of_binaryDigit_eq_of_non_dyadic {x₁ x₂ : } (hx₁ : x₁ Set.Ico 0 1) (hx₂ : x₂ Set.Ico 0 1) (hnd₁ : x₁DyadicRationals) (hnd₂ : x₂DyadicRationals) (heq : ∀ (j : ), binaryDigit x₁ j = binaryDigit x₂ j) :
                        x₁ = x₂

                        Non-dyadic x ∈ [0,1) with equal binary digits are equal.

                        Helper lemmas for image_in_cantor #

                        theorem Remark_1_3_10.mem_CantorSet_of_ternary_02 {y : } (d : ) (hd : ∀ (j : ), d j {0, 2}) (hsum : Summable fun (j : ) => (d j) * (1 / 3) ^ (j + 1)) (hy : y = ∑' (j : ), (d j) * (1 / 3) ^ (j + 1)) :

                        Points with {0,2} ternary digits are in the Cantor set.

                        Existence of a binary-to-ternary function: g(x) = ∑ 2bⱼ 3^{-j}.

                        noncomputable def Remark_1_3_10.binaryToTernary :

                        Binary-to-ternary function: g(x) = ∑ 2·bⱼ(x)·3^{-j}, monotone on [0,1], g([0,1]) ⊆ C ∪ {0}.

                        Equations
                        Instances For

                          binaryToTernary x = 0 iff x = 0 for x ∈ [0,1].

                          binaryToTernary lifted to EuclideanSpace' 1 → EReal (called f in informal proof).

                          Equations
                          Instances For
                            theorem Remark_1_3_10.sublevel_set_measurable (t : EReal) (ht_pos : 0 < t) (ht_lt_one : t < 1) :

                            Sublevel sets of f_lifted are measurable (key lemma for f_lifted_measurable).

                            Non-measurable F ⊆ [0,1] with binaryToTernary(F) ⊆ Cantor set (Vitali construction).

                            Definition 1.3.11 (Complex measurability)

                            Equations
                            Instances For
                              def RealMeasurable {d : } (f : EuclideanSpace' d) :
                              Equations
                              Instances For

                                Exercise 1.3.8(i)

                                Exercise 1.3.8(iii)

                                theorem RealMeasurable.aeLimit {d : } {f : EuclideanSpace' d} (g : EuclideanSpace' d) (hf : ∀ (n : ), RealMeasurable (g n)) (heq : PointwiseAeConvergesTo g f) :

                                Exercise 1.3.8(iv)

                                theorem ComplexMeasurable.aeLimit {d : } {f : EuclideanSpace' d} (g : EuclideanSpace' d) (hf : ∀ (n : ), ComplexMeasurable (g n)) (heq : PointwiseAeConvergesTo g f) :
                                theorem RealMeasurable.comp_cts {d : } {f : EuclideanSpace' d} (hf : RealMeasurable f) {φ : } ( : Continuous φ) :

                                Exercise 1.3.8(v)

                                theorem ComplexMeasurable.comp_cts {d : } {f : EuclideanSpace' d} (hf : ComplexMeasurable f) {φ : } ( : Continuous φ) :
                                theorem RealMeasurable.add {d : } {f g : EuclideanSpace' d} (hf : RealMeasurable f) (hg : RealMeasurable g) :

                                Exercise 1.3.8(vi)

                                theorem RealMeasurable.sub {d : } {f g : EuclideanSpace' d} (hf : RealMeasurable f) (hg : RealMeasurable g) :

                                Exercise 1.3.8(vi)

                                theorem RealMeasurable.mul {d : } {f g : EuclideanSpace' d} (hf : RealMeasurable f) (hg : RealMeasurable g) :

                                Exercise 1.3.8(vi)

                                Exercise 1.3.9