Theorem 6.17, sharpened — upper and lower integrals against a density
ProvedRudin.ch06_upper_lower_integral_densityA sharpening of Rudin's Theorem 6.17, in which the conclusion is separated from any integrability assumption on the integrand.
Let be monotonically increasing on and differentiable at every point of , with derivative bounded on and Riemann integrable there, and let be bounded on . Then the upper integrals of against and of against coincide, and so do the two lower integrals:
Theorem 6.17 follows in one step: means that the two integrals on the left agree, means that the two on the right agree, and the displayed identities make these conditions equivalent and identify the common values. Stating the identity at the level of upper and lower integrals is the more usable form, since it applies to an integrand that is not assumed integrable, exactly as the analogous sharpening of Theorem 6.12(c) does for additivity over adjacent intervals.
Formalization note. The boundedness of is stated explicitly because in this development the upper and lower integrals are ordinary suprema and infima of sets of reals, which return a default value on unbounded sets; Rudin's class consists of bounded functions by convention (Definitions 6.1 and 6.2).
import Mathlib import Definitions.Def_Rudin_ch06_stieltjes open Filter Topology
namespace Rudin
/-- Rudin, Theorem 6.17, sharpened: for a monotonically increasing, differentiable `α` whose
derivative is bounded and Riemann-integrable on `[a, b]`, and a bounded `f`, the upper integral of
`f dα` equals the upper integral of `f α' dx`, and the lower integrals likewise agree; no
integrability of `f` is assumed. -/
theorem ch06_upper_lower_integral_density (a b : ℝ) (hab : a ≤ b) (f α : ℝ → ℝ)
(hα : MonotoneOn α (Set.Icc a b))
(hαd : ∀ x ∈ Set.Icc a b, HasDerivAt α (deriv α x) x)
(hα' : RiemannIntegrable a b (deriv α))
(hα'b : ∃ K, ∀ x ∈ Set.Icc a b, |deriv α x| ≤ K)
(hf : ∃ M, ∀ x ∈ Set.Icc a b, |f x| ≤ M) :
upperIntegral a b f α = upperIntegral a b (fun x => f x * deriv α x) id ∧
lowerIntegral a b f α = lowerIntegral a b (fun x => f x * deriv α x) id := by sorry
end Rudin