Documentation

Analysis.MeasureTheory.Section_1_1_1

Introduction to Measure Theory, Section 1.1.1: Elementary measure #

A companion to Section 1.1.1 of the book "An introduction to Measure Theory".

Instances For

    Coerces a BoundedInterval to its underlying set of real numbers.

    Equations
    Instances For

      Enables coercion from BoundedInterval to Set ℝ.

      Equations

      The empty BoundedInterval is represented as the degenerate open interval (0,0).

      Equations
      @[simp]

      The empty BoundedInterval coerces to the empty set.

      This is to make Finsets of BoundedIntervals work properly

      Equations
      @[simp]
      theorem BoundedInterval.set_Ioo (a b : ) :
      (Ioo a b) = Set.Ioo a b

      Simp lemmas for coercing each BoundedInterval constructor to Set ℝ.

      @[simp]
      theorem BoundedInterval.set_Icc (a b : ) :
      (Icc a b) = Set.Icc a b
      @[simp]
      theorem BoundedInterval.set_Ioc (a b : ) :
      (Ioc a b) = Set.Ioc a b
      @[simp]
      theorem BoundedInterval.set_Ico (a b : ) :
      (Ico a b) = Set.Ico a b

      Some helpful general lemmas about BoundedInterval

      theorem BoundedInterval.Icc_eq_endpoints {a₁ b₁ a₂ b₂ : } (h : Set.Icc a₁ b₁ = Set.Icc a₂ b₂) (ha₁b₁ : a₁ b₁) (ha₂b₂ : a₂ b₂) :
      a₁ = a₂ b₁ = b₂

      Extract endpoints from Icc equality

      theorem BoundedInterval.Ioo_ne_Icc {a₁ b₁ a₂ b₂ : } (ha₁b₁ : a₁ < b₁) (ha₂b₂ : a₂ b₂) :
      Set.Ioo a₁ b₁ Set.Icc a₂ b₂

      Ioo cannot equal Icc

      theorem BoundedInterval.Ioo_ne_Ioc {a₁ b₁ a₂ b₂ : } (ha₁b₁ : a₁ < b₁) (ha₂b₂ : a₂ < b₂) :
      Set.Ioo a₁ b₁ Set.Ioc a₂ b₂

      Ioo cannot equal Ioc

      theorem BoundedInterval.Ioo_ne_Ico {a₁ b₁ a₂ b₂ : } (ha₁b₁ : a₁ < b₁) (ha₂b₂ : a₂ < b₂) :
      Set.Ioo a₁ b₁ Set.Ico a₂ b₂

      Ioo cannot equal Ico

      theorem BoundedInterval.Ioc_ne_Ico {a₁ b₁ a₂ b₂ : } (ha₁b₁ : a₁ < b₁) (ha₂b₂ : a₂ < b₂) :
      Set.Ioc a₁ b₁ Set.Ico a₂ b₂

      Ioc cannot equal Ico

      theorem BoundedInterval.Icc_ne_Ioc {a₁ b₁ a₂ b₂ : } (ha₁b₁ : a₁ b₁) (ha₂b₂ : a₂ < b₂) :
      Set.Icc a₁ b₁ Set.Ioc a₂ b₂

      Icc cannot equal Ioc

      theorem BoundedInterval.Icc_ne_Ico {a₁ b₁ a₂ b₂ : } (ha₁b₁ : a₁ b₁) (ha₂b₂ : a₂ < b₂) :
      Set.Icc a₁ b₁ Set.Ico a₂ b₂

      Icc cannot equal Ico

      theorem BoundedInterval.toSet_injective_of_nonempty {I J : BoundedInterval} (hI : (↑I).Nonempty) (hJ : (↑J).Nonempty) (h_eq : I = J) :
      I = J

      BoundedInterval.toSet is injective for non-empty intervals

      A witness for lowerBound of upperBounds

      Equations
      • =
      Instances For

        A witness for upperBound of lowerBounds

        Equations
        • =
        Instances For
          theorem exists_gt_of_lt_csSup {X : Set } (hBddAbove : BddAbove X) (hNonempty : X.Nonempty) (hLowerBound : yX, y lowerBounds (upperBounds X)) (x : ) (hx : x < sSup X) :
          zX, x < z

          If x < sSup X, then there exists z ∈ X with x < z

          theorem exists_le_of_lt_csInf {X : Set } (hBddBelow : BddBelow X) (hNonempty : X.Nonempty) (hUpperBound : yX, y upperBounds (lowerBounds X)) (x : ) (hx : sInf X < x) :
          wX, w x

          If sInf X < x, then there exists w ∈ X with w ≤ x

          theorem lt_sSup_of_ne_sSup {X : Set } {x b : } (_hBddAbove : BddAbove X) (_hb : b = sSup X) (hb_notin : bX) (hx : x X) (hx_le_b : x b) :
          x < b

          Show x < b when b = sSup X and b ∉ X

          theorem sInf_lt_of_ne_sInf {X : Set } {a x : } (_hBddBelow : BddBelow X) (_ha : a = sInf X) (ha_notin : aX) (hx : x X) (ha_le_x : a x) :
          a < x

          Show a < x when a = sInf X and a ∉ X

          theorem mem_of_mem_Icc_ordConnected {X : Set } (hOrdConn : ∀ ⦃x : ⦄, x X∀ ⦃y : ⦄, y XSet.Icc x y X) {x w z : } (hw : w X) (hz : z X) (hx : x Set.Icc w z) :
          x X

          Use order-connectedness to show x ∈ X when x ∈ [w, z] and w, z ∈ X

          A set of reals is bounded and order-connected if and only if it equals some bounded interval.

          theorem BoundedInterval.inter (I J : BoundedInterval) :
          ∃ (K : BoundedInterval), I J = K

          The intersection of two bounded intervals is again a bounded interval.

          Instance enabling ∩ notation for BoundedIntervals.

          Equations
          @[simp]
          theorem BoundedInterval.inter_eq (I J : BoundedInterval) :
          ↑(I J) = I J

          The intersection of BoundedIntervals equals the set-theoretic intersection.

          Instance enabling ∈ notation for membership in BoundedInterval.

          Equations
          @[simp]
          theorem BoundedInterval.mem_iff (I : BoundedInterval) (x : ) :
          x I x I

          Membership in BoundedInterval is equivalent to membership in its underlying set.

          Instance enabling ⊆ notation for BoundedIntervals.

          Equations
          @[simp]
          theorem BoundedInterval.subset_iff (I J : BoundedInterval) :
          I J I J

          Subset of BoundedIntervals is equivalent to subset of their underlying sets.

          @[reducible, inline]

          Extracts the left endpoint of a bounded interval.

          Equations
          Instances For
            @[reducible, inline]

            Extracts the right endpoint of a bounded interval.

            Equations
            Instances For

              Any nonempty BoundedInterval has a ≤ b

              Any bounded interval is contained in the closed interval with the same endpoints.

              The open interval with the same endpoints is contained in any bounded interval.

              @[reducible, inline]

              Definition 1.1.1 (boxes): The length of an interval is max(b - a, 0).

              Equations
              Instances For

                Length is always non-negative

                Using ||ₗ subscript here to not override ||

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  structure Box (d : ) :

                  A d-dimensional box is a Cartesian product of d bounded intervals.

                  Instances For
                    theorem Box.ext_iff {d : } {x y : Box d} :
                    x = y x.side = y.side
                    theorem Box.ext {d : } {x y : Box d} (side : x.side = y.side) :
                    x = y
                    @[reducible, inline]
                    abbrev Box.toSet {d : } (B : Box d) :

                    Coerces a Box to its underlying set in d-dimensional Euclidean space.

                    Equations
                    Instances For
                      instance Box.inst_coeSet {d : } :

                      Enables coercion from Box d to Set (EuclideanSpace' d).

                      Equations
                      @[reducible, inline]

                      Lifts a 1-dimensional interval to a 1-dimensional box.

                      Equations
                      • I = { side := fun (x : Fin 1) => I }
                      Instances For

                        Enables coercion from BoundedInterval to Box 1.

                        Equations
                        @[simp]
                        theorem BoundedInterval.toBox_inj {I J : BoundedInterval} :
                        I = J I = J

                        Coercing to Box 1 is injective: equal boxes implies equal intervals.

                        @[simp]

                        A 1D box's set equals the image of the interval under the Real ≃ EuclideanSpace' 1 equivalence.

                        @[reducible, inline]
                        abbrev Box.volume {d : } (B : Box d) :

                        Definition 1.1.1 (boxes): The volume of a box is the product of its side lengths.

                        Equations
                        Instances For

                          Using ||ᵥ subscript here to not override ||

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            theorem Box.volume_eq_zero_of_empty {d : } (B : Box d) (h : B = ) :
                            B.volume = 0

                            Helper lemma: If a box is empty, its volume is zero

                            theorem Box.volume_singleton {d : } (hd : 0 < d) (x : EuclideanSpace' d) :
                            { side := fun (i : Fin d) => BoundedInterval.Icc (x i) (x i) }.volume = 0

                            A box with all degenerate sides [x, x] has volume 0 when d > 0

                            theorem Box.side_nonempty_of_nonempty {d : } (B : Box d) (hB : (↑B).Nonempty) (i : Fin d) :
                            (↑(B.side i)).Nonempty

                            A nonempty box has nonempty sides at each dimension

                            @[simp]

                            The volume of a 1D box equals the length of the underlying interval.

                            theorem Box.toSet_injective_of_nonempty {d : } {B₁ B₂ : Box d} (h₁ : (↑B₁).Nonempty) (h₂ : (↑B₂).Nonempty) (h_eq : B₁ = B₂) :
                            B₁ = B₂

                            Box.toSet is injective on non-empty boxes

                            @[reducible, inline]
                            abbrev IsElementary {d : } (E : Set (EuclideanSpace' d)) :

                            A set is elementary if it can be expressed as a finite union of boxes.

                            Equations
                            Instances For
                              theorem IsElementary.box {d : } (B : Box d) :

                              Every box is an elementary set (witnessed by the singleton finset).

                              theorem IsElementary.union {d : } {E F : Set (EuclideanSpace' d)} (hE : IsElementary E) (hF : IsElementary F) :

                              Exercise 1.1.1 (Boolean closure): The union of two elementary sets is elementary.

                              theorem IsElementary.union' {d : } {S : Finset (Set (EuclideanSpace' d))} (hE : ES, IsElementary E) :
                              IsElementary (⋃ ES, E)

                              The union of a finset of elementary sets is elementary.

                              theorem IsElementary.inter {d : } {E F : Set (EuclideanSpace' d)} (hE : IsElementary E) (hF : IsElementary F) :

                              Exercise 1.1.1 (Boolean closure): The intersection of two elementary sets is elementary.

                              The empty set is elementary.

                              theorem IsElementary.sdiff {d : } {E F : Set (EuclideanSpace' d)} (hE : IsElementary E) (hF : IsElementary F) :

                              Exercise 1.1.1 (Boolean closure): The set difference of two elementary sets is elementary.

                              Exercise 1.1.1 (Boolean closure): The symmetric difference of two elementary sets is elementary.

                              Exercise 1.1.1 (Boolean closure): Translation of an elementary set is elementary.

                              theorem BoundedInterval.partition (S : Finset BoundedInterval) :
                              ∃ (T : Finset BoundedInterval), (↑T).PairwiseDisjoint toSet IS, ∃ (U : Set { x : BoundedInterval // x T }), I = JU, J

                              A sublemma for proving Lemma 1.1.2(i): Any finset of intervals admits a common refinement into pairwise disjoint sub-intervals.

                              theorem Box.partition {d : } (S : Finset (Box d)) :
                              ∃ (T : Finset (Box d)), (↑T).PairwiseDisjoint toSet IS, ∃ (U : Set { x : Box d // x T }), I = JU, J

                              Lemma 1.1.2(i): Any finset of boxes admits a common refinement into pairwise disjoint sub-boxes.

                              theorem IsElementary.partition {d : } {E : Set (EuclideanSpace' d)} (hE : IsElementary E) :
                              ∃ (T : Finset (Box d)), (↑T).PairwiseDisjoint Box.toSet E = JT, J

                              Every elementary set can be partitioned into pairwise disjoint boxes.

                              theorem BoundedInterval.sample_finite (I : BoundedInterval) {N : } (hN : N 0) :
                              Finite ↑(I Set.range fun (n : ) => (↑N)⁻¹ * n)

                              Helper lemma for Lemma 1.1.2(ii): The set of lattice points (multiples of 1/N) in an interval is finite.

                              theorem BoundedInterval.length_eq (I : BoundedInterval) :
                              Filter.Tendsto (fun (N : ) => (↑N)⁻¹ * (Nat.card ↑(I Set.range fun (n : ) => (↑N)⁻¹ * n))) Filter.atTop (nhds I.length)

                              Exercise for Lemma 1.1.2(ii): Interval length equals the limit of lattice point counts scaled by 1/N.

                              def Box.sample_congr {d : } (B : Box d) (N : ) :
                              ↑(B Set.range fun (n : Fin d) (i : Fin d) => (↑N)⁻¹ * (n i)) ((i : Fin d) → ↑((B.side i) Set.range fun (n : ) => (↑N)⁻¹ * n))

                              Lattice points in a box decompose as a product of lattice points in each interval side.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                theorem Box.sample_finite {d : } (B : Box d) {N : } (hN : N 0) :
                                Finite ↑(B Set.range fun (n : Fin d) (i : Fin d) => (↑N)⁻¹ * (n i))

                                Helper lemma for Lemma 1.1.2(ii): The set of lattice points in a box is finite.

                                theorem Box.vol_eq {d : } (B : Box d) :
                                Filter.Tendsto (fun (N : ) => N ^ (-d) * (Nat.card ↑(B Set.range fun (n : Fin d) (i : Fin d) => (↑N)⁻¹ * (n i)))) Filter.atTop (nhds B.volume)

                                Helper lemma for Lemma 1.1.2(ii): Box volume equals the limit of lattice point counts scaled by N^(-d).

                                theorem Box.sum_vol_eq {d : } {T : Finset (Box d)} (hT : (↑T).PairwiseDisjoint toSet) :
                                Filter.Tendsto (fun (N : ) => N ^ (-d) * (Nat.card ↑((⋃ BT, B) Set.range fun (n : Fin d) (i : Fin d) => (↑N)⁻¹ * (n i)))) Filter.atTop (nhds (∑ BT, B.volume))

                                Lemma 1.1.2(ii), helper lemma: Sum of volumes equals limit of lattice counts over a disjoint union.

                                theorem Box.measure_uniq {d : } {T₁ T₂ : Finset (Box d)} (hT₁ : (↑T₁).PairwiseDisjoint toSet) (hT₂ : (↑T₂).PairwiseDisjoint toSet) (heq : BT₁, B = BT₂, B) :
                                BT₁, B.volume = BT₂, B.volume

                                Lemma 1.1.2(ii): Two disjoint partitions of the same set have equal sums of volumes.

                                @[reducible, inline]
                                noncomputable abbrev IsElementary.measure {d : } {E : Set (EuclideanSpace' d)} (hE : IsElementary E) :

                                The elementary measure of a set, defined as the sum of volumes over a disjoint partition.

                                Equations
                                Instances For
                                  theorem IsElementary.measure_eq {d : } {E : Set (EuclideanSpace' d)} (hE : IsElementary E) {T : Finset (Box d)} (hT : (↑T).PairwiseDisjoint Box.toSet) (heq : E = BT, B) :
                                  hE.measure = BT, B.volume

                                  The measure equals the sum of volumes for any disjoint box partition of the set.

                                  theorem Box.measure_uniq' {d : } {T₁ T₂ : Finset (Box d)} (hT₁ : (↑T₁).PairwiseDisjoint toSet) (hT₂ : (↑T₂).PairwiseDisjoint toSet) (heq : BT₁, B = BT₂, B) :
                                  BT₁, B.volume = BT₂, B.volume

                                  Exercise 1.1.2: give an alternate proof of this proposition by showing that the two partitions T₁, T₂ admit a mutual refinement into boxes arising from taking Cartesian products of elements from finite collections of disjoint intervals.

                                  Elementary measure is always non-negative.

                                  theorem IsElementary.measure_of_disjUnion {d : } {E F : Set (EuclideanSpace' d)} (hE : IsElementary E) (hF : IsElementary F) (hdisj : Disjoint E F) :

                                  Measure is additive on disjoint elementary sets: μ(E ∪ F) = μ(E) + μ(F).

                                  theorem IsElementary.measure_irrelevant {d : } {E : Set (EuclideanSpace' d)} (h₁ h₂ : IsElementary E) :
                                  h₁.measure = h₂.measure

                                  Two different proofs that a set is elementary yield the same measure.

                                  theorem IsElementary.measure_eq_of_set_eq {d : } {E F : Set (EuclideanSpace' d)} (hE : IsElementary E) (hF : IsElementary F) (h : E = F) :

                                  If two elementary sets are equal, their measures are equal.

                                  theorem IsElementary.union'_empty_eq {d : } :
                                  E, E =

                                  The union over an empty finset of elementary sets is the empty set.

                                  theorem IsElementary.sum_insert_split {d : } {a : Set (EuclideanSpace' d)} {S' : Finset (Set (EuclideanSpace' d))} (ha : aS') (hE : Einsert a S', IsElementary E) :
                                  E : { x : Set (EuclideanSpace' d) // x insert a S' }, .measure = .measure + E : { x : Set (EuclideanSpace' d) // x S' }, .measure

                                  Measure of a sum over insert a S' equals the measure of a plus the measure of the sum over S'.

                                  theorem IsElementary.measure_of_disjUnion' {d : } {S : Finset (Set (EuclideanSpace' d))} (hE : ES, IsElementary E) (hdisj : (↑S).PairwiseDisjoint id) :
                                  .measure = E : { x : Set (EuclideanSpace' d) // x S }, .measure

                                  Measure is additive on pairwise disjoint finsets of elementary sets.

                                  @[simp]

                                  The empty set has measure zero.

                                  @[simp]
                                  theorem IsElementary.measure_of_box {d : } (B : Box d) :

                                  The measure of a single box equals its volume.

                                  theorem IsElementary.measure_mono {d : } {E F : Set (EuclideanSpace' d)} (hE : IsElementary E) (hF : IsElementary F) (hcont : E F) :

                                  Elementary measure is monotone: if E ⊆ F then μ(E) ≤ μ(F).

                                  Subadditivity of measure on unions: μ(E ∪ F) ≤ μ(E) + μ(F).

                                  theorem IsElementary.measure_of_union' {d : } {S : Finset (Set (EuclideanSpace' d))} (hE : ES, IsElementary E) :
                                  .measure E : { x : Set (EuclideanSpace' d) // x S }, .measure

                                  Subadditivity of measure on finset unions: μ(⋃ S) ≤ ∑ μ(E) for E ∈ S.

                                  theorem BoundedInterval.length_of_translate (I : BoundedInterval) (c : ) :
                                  ∃ (I' : BoundedInterval), I' = I + {c} I'.length = I.length

                                  Helper: Translation preserves interval length

                                  theorem Box.volume_of_translate {d : } (B : Box d) (x : EuclideanSpace' d) :
                                  ∃ (B' : Box d), B' = B + {x} B'.volume = B.volume

                                  Helper: Translation preserves box volume

                                  theorem Set.translate_inj {d : } (x : EuclideanSpace' d) (S₁ S₂ : Set (EuclideanSpace' d)) (h_eq : S₁ + {x} = S₂ + {x}) :
                                  S₁ = S₂

                                  Translation is injective on sets: if S₁ + {x} = S₂ + {x}, then S₁ = S₂

                                  Elementary measure is translation-invariant: μ(E + {x}) = μ(E).

                                  theorem IsElementary.measure_uniq {d : } {m' : (E : Set (EuclideanSpace' d)) → IsElementary E} (hnonneg : ∀ (E : Set (EuclideanSpace' d)) (hE : IsElementary E), m' E hE 0) (hadd : ∀ (E F : Set (EuclideanSpace' d)) (hE : IsElementary E) (hF : IsElementary F), Disjoint E Fm' (E F) = m' E hE + m' F hF) (htrans : ∀ (E : Set (EuclideanSpace' d)) (hE : IsElementary E) (x : EuclideanSpace' d), m' (E + {x}) = m' E hE) :
                                  c0, ∀ (E : Set (EuclideanSpace' d)) (hE : IsElementary E), m' E hE = c * hE.measure

                                  Exercise 1.1.3 (uniqueness of elementary measure): Any non-negative, additive, translation-invariant function on elementary sets is a scalar multiple of the standard elementary measure.

                                  @[reducible, inline]
                                  abbrev Box.unit_cube (d : ) :
                                  Box d

                                  The d-dimensional unit cube (0,1]^d.

                                  Equations
                                  Instances For
                                    theorem IsElementary.measure_uniq' {d : } {m' : (E : Set (EuclideanSpace' d)) → IsElementary E} (hnonneg : ∀ (E : Set (EuclideanSpace' d)) (hE : IsElementary E), m' E hE 0) (hadd : ∀ (E F : Set (EuclideanSpace' d)) (hE : IsElementary E) (hF : IsElementary F), Disjoint E Fm' (E F) = m' E hE + m' F hF) (htrans : ∀ (E : Set (EuclideanSpace' d)) (hE : IsElementary E) (x : EuclideanSpace' d), m' (E + {x}) = m' E hE) (hcube : m' (Box.unit_cube d) = 1) (E : Set (EuclideanSpace' d)) (hE : IsElementary E) :
                                    m' E hE = hE.measure

                                    Any measure satisfying normalization m'(unit cube) = 1 must equal the standard elementary measure.

                                    @[reducible, inline]
                                    abbrev Box.prod {d₁ d₂ : } (B₁ : Box d₁) (B₂ : Box d₂) :
                                    Box (d₁ + d₂)

                                    The Cartesian product of two boxes is a box in the sum dimension.

                                    Equations
                                    Instances For
                                      theorem IsElementary.prod {d₁ d₂ : } {E₁ : Set (EuclideanSpace' d₁)} {E₂ : Set (EuclideanSpace' d₂)} (hE₁ : IsElementary E₁) (hE₂ : IsElementary E₂) :

                                      Exercise 1.1.4: The Cartesian product of two elementary sets is elementary.

                                      theorem IsElementary.measure_of_prod {d₁ d₂ : } {E₁ : Set (EuclideanSpace' d₁)} {E₂ : Set (EuclideanSpace' d₂)} (hE₁ : IsElementary E₁) (hE₂ : IsElementary E₂) :
                                      .measure = hE₁.measure * hE₂.measure

                                      Measure is multiplicative on products: μ(E₁ × E₂) = μ(E₁) * μ(E₂).