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
          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
                                  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) :
                                        RiemannIntegrableOn f I JordanMeasurable {p : EuclideanSpace' 2 | p 0 I 0 p 1 p 1 f (p 0)} JordanMeasurable {p : EuclideanSpace' 2 | p 0 I f (p 0) p 1 p 1 0}

                                        Exercise 1.1.25 (Area interpretation of Riemann integral)

                                        Exercise 1.1.25 (Area interpretation of Riemann integral)