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
      @[implicit_reducible]

      Enables coercion from BoundedInterval to Set ℝ.

      Equations
      @[implicit_reducible]

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

      Equations
      @[simp]

      The empty BoundedInterval coerces to the empty set.

      @[implicit_reducible]

      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.

          @[implicit_reducible]

          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.

          @[implicit_reducible]

          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.

          @[implicit_reducible]

          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 {d : } {x y : Box d} (side : x.side = y.side) :
                    x = y
                    theorem Box.ext_iff {d : } {x y : Box d} :
                    x = y x.side = y.side
                    def Box.toSet {d : } (B : Box d) :

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

                    Equations
                    Instances For
                      @[simp]
                      theorem Box.mem_toSet {d : } {B : Box d} {x : EuclideanSpace' d} :
                      x B ∀ (i : Fin d), x.ofLp i (B.side i)
                      @[implicit_reducible]
                      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
                        @[implicit_reducible]

                        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.ofLp i) (x.ofLp 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 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 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) => WithLp.toLp 2 fun (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) => WithLp.toLp 2 fun (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) => WithLp.toLp 2 fun (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) => WithLp.toLp 2 fun (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 : (insert a S'), .measure = .measure + E : 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 : 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 : 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₂).