Documentation

Analysis.MeasureTheory.Section_1_1_3

Introduction to Measure Theory, Section 1.1.3: Connections with the Riemann integral #

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

structure TaggedPartition (I : BoundedInterval) (n : ) :

Definition 1.1.5. (Riemann integrability) The interval I should be closed, though we will not enforce this. We also permit the length to be 0. We index the tags and deltas starting from 0 rather than 1 in the text as this is slightly more convenient in Lean.

Instances For
    theorem TaggedPartition.ext {I : BoundedInterval} {n : } {x y : TaggedPartition I n} :
    x.x = y.x∀ (x_tag : x.x_tag = y.x_tag), x = y
    theorem TaggedPartition.ext_iff {I : BoundedInterval} {n : } {x y : TaggedPartition I n} :
    x = y x.x = y.x x.x_tag = y.x_tag
    def TaggedPartition.delta {I : BoundedInterval} {n : } (P : TaggedPartition I n) (i : Fin n) :
    Equations
    Instances For
      noncomputable def TaggedPartition.norm {I : BoundedInterval} {n : } (P : TaggedPartition I n) :
      Equations
      Instances For
        Equations
        Instances For

          Sigma (TaggedPartition I) is the type of all partitions of I with an unspecified number n of components. Here we define what it means to converge to zero in this type.

          Equations
          Instances For
            noncomputable def TaggedPartition.uniform (I : BoundedInterval) (n : ) (hn : n > 0) :
            I = BoundedInterval.Icc I.a I.b(hab : I.a < I.b) → TaggedPartition I n

            Construct a uniform partition of [a,b] into n equal pieces with left endpoint tags.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem TaggedPartition.uniform_norm (I : BoundedInterval) (n : ) (hn : n > 0) (hI : I = BoundedInterval.Icc I.a I.b) (hab : I.a < I.b) :
              (uniform I n hn hI hab).norm = (I.b - I.a) / n

              The norm of a uniform partition is (b-a)/n.

              theorem TaggedPartition.exists_norm_le (I : BoundedInterval) (hI : I = BoundedInterval.Icc I.a I.b) (hab : I.a < I.b) (δ : ) ( : 0 < δ) :
              ∃ (n : ) (P : TaggedPartition I n), P.norm δ

              For any positive interval and δ > 0, there exists a tagged partition with norm ≤ δ.

              The filter TaggedPartition.nhds_zero is non-trivial when the interval has positive length.

              @[reducible, inline]

              We enforce I to be closed and nonempty for the definition of Riemann integrability. The nonempty constraint ensures meaningful integration and excludes degenerate cases.

              Equations
              Instances For
                noncomputable def riemannIntegral (f : ) (I : BoundedInterval) :
                Equations
                Instances For

                  When an interval has zero length, all Riemann sums equal zero.

                  theorem riemann_integral_eq_zero_of_zero_length {f : } {I : BoundedInterval} {R : } (h_eq : I.a = I.b) (h_len : I.length = 0) (hR : riemann_integral_eq f I R) :
                  R = 0

                  When an interval has zero length and Riemann sums converge to R, then R = 0. This requires that the filter is non-trivial (NeBot), which holds when I.a = I.b.

                  theorem eq_of_length_zero_of_Icc {I : BoundedInterval} (hI : I = BoundedInterval.Icc I.a I.b) (h_len : I.length = 0) (h_nonempty : (↑I).Nonempty) :
                  I.a = I.b

                  When a nonempty closed interval [a,b] has zero length, then a = b.

                  Definition 1.1.15 (Riemann integrability)

                  Definition 1.1.15 (Riemann integrability)

                  theorem riemann_integral_eq_iff {f : } {I : BoundedInterval} (R : ) :
                  riemann_integral_eq f I R ε > 0, δ > 0, ∀ (n : ) (P : TaggedPartition I n), P.norm δ|TaggedPartition.RiemannSum f P - R| ε

                  Definition 1.1.15 (Riemann integrability)

                  Definition 1.1.15. (Riemann integrability)

                  def TaggedPartition.changeTag {I : BoundedInterval} {n : } (P : TaggedPartition I n) (k : Fin n) (t : ) (ht : P.x k.castSucc t t P.x k.succ) :

                  Helper: Modify a tagged partition by changing one tag

                  Equations
                  Instances For
                    theorem TaggedPartition.RiemannSum_changeTag_sub {I : BoundedInterval} {n : } (P : TaggedPartition I n) (f : ) (k : Fin n) (t : ) (ht : P.x k.castSucc t t P.x k.succ) :
                    RiemannSum f (P.changeTag k t ht) - RiemannSum f P = (f t - f (P.x_tag k)) * P.delta k

                    The Riemann sum difference when changing one tag

                    theorem TaggedPartition.uniform_delta {I : BoundedInterval} {n : } (hn : n > 0) (hI : I = BoundedInterval.Icc I.a I.b) (hab : I.a < I.b) (i : Fin n) :
                    (uniform I n hn hI hab).delta i = (I.b - I.a) / n

                    For a uniform partition, delta is constant

                    noncomputable def findSubintervalIndex (lo hi : ) (n : ) (hn : n > 0) (x : ) (_hx : lo x x hi) :
                    Fin n

                    For any x in [a,b], find the subinterval index containing x

                    Equations
                    Instances For
                      theorem findSubintervalIndex_spec (lo hi : ) (n : ) (hn : n > 0) (hlohi : lo < hi) (x : ) (hx : lo x x hi) :
                      have k := findSubintervalIndex lo hi n hn x hx; have Δ := (hi - lo) / n; lo + k * Δ x x lo + (k + 1) * Δ

                      The found index correctly brackets x

                      theorem RiemannIntegrable.bounded {f : } {I : BoundedInterval} (h : RiemannIntegrableOn f I) :
                      ∃ (M : ), xI, |f x| M

                      Definition 1.1.15

                      Instances For
                        theorem PiecewiseConstantFunction.ext {I : BoundedInterval} {x y : PiecewiseConstantFunction I} (f : x.f = y.f) (T : x.T = y.T) (c : x.c y.c) :
                        x = y
                        @[reducible, inline]
                        Equations
                        Instances For
                          Equations
                          Instances For
                            Equations
                            Instances For

                              Exercise 1.1.20 (Piecewise constant functions)

                              Exercise 1.1.20 (Piecewise constant functions)

                              Exercise 1.1.21 (a) (Linearity of the piecewise constant integral)

                              Exercise 1.1.21 (a) (Linearity of the piecewise constant integral)

                              Exercise 1.1.21 (a) (Linearity of the piecewise constant integral)

                              Exercise 1.1.21 (a) (Linearity of the piecewise constant integral)

                              Exercise 1.1.21 (b) (Monotonicity of the piecewise constant integral)

                              Exercise 1.1.21 (c) (Piecewise constant integral of indicator functions)

                              Exercise 1.1.21 (c) (Piecewise constant integral of indicator functions)

                              noncomputable def LowerDarbouxIntegral (f : ) (I : BoundedInterval) :

                              Definition 1.1.6 (Darboux integral)

                              Equations
                              Instances For
                                noncomputable def UpperDarbouxIntegral (f : ) (I : BoundedInterval) :

                                Definition 1.1.6 (Darboux integral)

                                Equations
                                Instances For

                                  Helper: Construct a constant piecewise constant function with a given value

                                  Equations
                                  Instances For

                                    Helper: The integral of a constant piecewise constant function

                                    Helper: Construct the negation of a piecewise constant function

                                    Equations
                                    • g.neg = { f := fun (x : ) => -g.f x, T := g.T, c := fun (J : g.T) => -g.c J, disjoint := , cover := , const := }
                                    Instances For

                                      Helper: The integral of a negated piecewise constant function

                                      Helper: Convert a PiecewiseConstantFunction to PiecewiseConstantOn and relate integrals

                                      theorem PiecewiseConstantFunction.integral_mono' {I : BoundedInterval} (g h : PiecewiseConstantFunction I) (h_pointwise : xI, g.f x h.f x) :

                                      Helper: Apply integral_mono between two PiecewiseConstantFunctions via PiecewiseConstantOn

                                      theorem LowerDarbouxIntegral.bddAbove {f : } {I : BoundedInterval} (M : ) (hM : xI, |f x| M) :
                                      BddAbove {R : | ∃ (g : PiecewiseConstantFunction I), g.integral = R xI, g.f x f x}

                                      Helper: The lower Darboux set is bounded above

                                      theorem UpperDarbouxIntegral.bddBelow {f : } {I : BoundedInterval} (M : ) (hM : xI, |f x| M) :
                                      BddBelow {R : | ∃ (h : PiecewiseConstantFunction I), h.integral = R xI, f x h.f x}

                                      Helper: The upper Darboux set is bounded below

                                      theorem lower_darboux_le_upper_darboux {f : } {I : BoundedInterval} (hbound : ∃ (M : ), xI, |f x| M) :

                                      Definition 1.1.6 (Darboux integral)

                                      noncomputable def DarbouxIntegrableOn (f : ) (I : BoundedInterval) :

                                      Definition 1.1.6 (Darboux integral)

                                      Equations
                                      Instances For
                                        noncomputable def darbouxIntegral (f : ) (I : BoundedInterval) :

                                        We give the Darboux integral the "junk" value of the lower Darboux integral when the function is not integrable.

                                        Equations
                                        Instances For
                                          theorem UpperDarbouxIntegral.bddBelow_neg {f : } {I : BoundedInterval} (M : ) (hM : xI, |f x| M) :
                                          BddBelow {R : | ∃ (h : PiecewiseConstantFunction I), h.integral = R xI, (-f) x h.f x}

                                          Helper: The upper Darboux set for -f is bounded below

                                          theorem UpperDarbouxIntegral.neg {f : } {I : BoundedInterval} (hbound : ∃ (M : ), xI, |f x| M) :

                                          Definition 1.1.6 (Darboux integral)

                                          theorem RiemannIntegrableOn.iff_darbouxIntegrable {f : } {I : BoundedInterval} (hbound : ∃ (M : ), xI, |f x| M) :

                                          Exercise 1.1.22

                                          Exercise 1.1.23

                                          theorem RiemannIntegrableOn.piecewise_continuous {f : } {I : BoundedInterval} (hI : I = BoundedInterval.Icc I.a I.b) (T : Finset BoundedInterval) (hdisjoint : (↑T).PairwiseDisjoint BoundedInterval.toSet) (hcover : I = JT, J) (hcont : JT, ContinuousOn f J) :

                                          Exercise 1.1.24 (a) (Linearity of the piecewise constant integral)

                                          Exercise 1.1.24 (a) (Linearity of the piecewise constant integral)

                                          Exercise 1.1.24 (a) (Linearity of the piecewise constant integral)

                                          Exercise 1.1.24 (a) (Linearity of the piecewise constant integral)

                                          theorem riemann_integral_mono {I : BoundedInterval} {f g : } (hf : RiemannIntegrableOn f I) (hg : RiemannIntegrableOn g I) (hmono : xI, f x g x) :

                                          Exercise 1.1.24 (b) (Monotonicity of the piecewise constant integral)

                                          Exercise 1.1.24 (c) (Piecewise constant integral of indicator functions)

                                          theorem riemann_integral_unique {I : BoundedInterval} (integ : ()) (hsmul : ∀ (c : ) (f : ), RiemannIntegrableOn f Iinteg (c f) = c integ f) (hadd : ∀ (f g : ), RiemannIntegrableOn f IRiemannIntegrableOn g Iinteg (f + g) = integ f + integ g) (hmono : ∀ (f g : ), RiemannIntegrableOn f IRiemannIntegrableOn g I(∀ xI, f x g x)integ f integ g) (hindicator : ∀ (E : Set ) (hE : JordanMeasurable (Real.equiv_EuclideanSpace' '' E)), E Iinteg E.indicator' = hE.measure) (f : ) :

                                          Exercise 1.1.24 (Uniqueness)

                                          Exercise 1.1.25 (Area interpretation of Riemann integral)

                                          Exercise 1.1.25 (Area interpretation of Riemann integral)

                                          theorem JordanMeasurable.iff_integrable {I : BoundedInterval} (hI : I = BoundedInterval.Icc I.a I.b) {f : } (hf : ∃ (M : ), xI, |f x| M) :

                                          Exercise 1.1.25 (Area interpretation of Riemann integral)

                                          Exercise 1.1.25 (Area interpretation of Riemann integral)