# Contents #

In this file we work with contents. A content λ is a function from a certain class of subsets (such as the compact subsets) to ℝ≥0 that is

• additive: If K₁ and K₂ are disjoint sets in the domain of λ, then λ(K₁ ∪ K₂) = λ(K₁) + λ(K₂);
• subadditive: If K₁ and K₂ are in the domain of λ, then λ(K₁ ∪ K₂) ≤ λ(K₁) + λ(K₂);
• monotone: If K₁ ⊆ K₂ are in the domain of λ, then λ(K₁) ≤ λ(K₂).

We show that:

• Given a content λ on compact sets, let us define a function λ* on open sets, by letting λ* U be the supremum of λ K for K included in U. This is a countably subadditive map that vanishes at ∅. In Halmos (1950) this is called the inner content λ* of λ, and formalized as innerContent.
• Given an inner content, we define an outer measure μ*, by letting μ* E be the infimum of λ* U over the open sets U containing E. This is indeed an outer measure. It is formalized as outerMeasure.
• Restricting this outer measure to Borel sets gives a regular measure μ.

We define bundled contents as Content. In this file we only work on contents on compact sets, and inner contents on open sets, and both contents and inner contents map into the extended nonnegative reals. However, in other applications other choices can be made, and it is not a priori clear what the best interface should be.

## Main definitions #

For μ : Content G, we define

• μ.innerContent : the inner content associated to μ.
• μ.outerMeasure : the outer measure associated to μ.
• μ.measure : the Borel measure associated to μ.

These definitions are given for spaces which are R₁. The resulting measure μ.measure is always outer regular by design. When the space is locally compact, μ.measure is also regular.

## References #

structure MeasureTheory.Content (G : Type w) [] :

A content is an additive function on compact sets taking values in ℝ≥0. It is a device from which one can define a measure.

• toFun :
• mono' : ∀ (K₁ K₂ : ), K₁ K₂self.toFun K₁ self.toFun K₂
• sup_disjoint' : ∀ (K₁ K₂ : ), Disjoint K₁ K₂IsClosed K₁IsClosed K₂self.toFun (K₁ K₂) = self.toFun K₁ + self.toFun K₂
• sup_le' : ∀ (K₁ K₂ : ), self.toFun (K₁ K₂) self.toFun K₁ + self.toFun K₂
Instances For
theorem MeasureTheory.Content.mono' {G : Type w} [] (self : ) (K₁ : ) (K₂ : ) :
K₁ K₂self.toFun K₁ self.toFun K₂
theorem MeasureTheory.Content.sup_disjoint' {G : Type w} [] (self : ) (K₁ : ) (K₂ : ) :
Disjoint K₁ K₂IsClosed K₁IsClosed K₂self.toFun (K₁ K₂) = self.toFun K₁ + self.toFun K₂
theorem MeasureTheory.Content.sup_le' {G : Type w} [] (self : ) (K₁ : ) (K₂ : ) :
self.toFun (K₁ K₂) self.toFun K₁ + self.toFun K₂
Equations
• MeasureTheory.instInhabitedContent = { default := { toFun := fun (x : ) => 0, mono' := , sup_disjoint' := , sup_le' := } }

Although the toFun field of a content takes values in ℝ≥0, we register a coercion to functions taking values in ℝ≥0∞ as most constructions below rely on taking iSups and iInfs, which is more convenient in a complete lattice, and aim at constructing a measure.

Equations
• MeasureTheory.instCoeFunContentForallCompactsENNReal = { coe := fun (μ : ) (s : ) => (μ.toFun s) }
theorem MeasureTheory.Content.apply_eq_coe_toFun {G : Type w} [] (μ : ) (K : ) :
(fun (s : ) => (μ.toFun s)) K = (μ.toFun K)
theorem MeasureTheory.Content.mono {G : Type w} [] (μ : ) (K₁ : ) (K₂ : ) (h : K₁ K₂) :
(fun (s : ) => (μ.toFun s)) K₁ (fun (s : ) => (μ.toFun s)) K₂
theorem MeasureTheory.Content.sup_disjoint {G : Type w} [] (μ : ) (K₁ : ) (K₂ : ) (h : Disjoint K₁ K₂) (h₁ : IsClosed K₁) (h₂ : IsClosed K₂) :
(fun (s : ) => (μ.toFun s)) (K₁ K₂) = (fun (s : ) => (μ.toFun s)) K₁ + (fun (s : ) => (μ.toFun s)) K₂
theorem MeasureTheory.Content.sup_le {G : Type w} [] (μ : ) (K₁ : ) (K₂ : ) :
(fun (s : ) => (μ.toFun s)) (K₁ K₂) (fun (s : ) => (μ.toFun s)) K₁ + (fun (s : ) => (μ.toFun s)) K₂
theorem MeasureTheory.Content.lt_top {G : Type w} [] (μ : ) (K : ) :
(fun (s : ) => (μ.toFun s)) K <
theorem MeasureTheory.Content.empty {G : Type w} [] (μ : ) :
(fun (s : ) => (μ.toFun s)) = 0
def MeasureTheory.Content.innerContent {G : Type w} [] (μ : ) (U : ) :

Constructing the inner content of a content. From a content defined on the compact sets, we obtain a function defined on all open sets, by taking the supremum of the content of all compact subsets.

Equations
• μ.innerContent U = ⨆ (K : ), ⨆ (_ : K U), (fun (s : ) => (μ.toFun s)) K
Instances For
theorem MeasureTheory.Content.le_innerContent {G : Type w} [] (μ : ) (K : ) (U : ) (h2 : K U) :
(fun (s : ) => (μ.toFun s)) K μ.innerContent U
theorem MeasureTheory.Content.innerContent_le {G : Type w} [] (μ : ) (U : ) (K : ) (h2 : U K) :
μ.innerContent U (fun (s : ) => (μ.toFun s)) K
theorem MeasureTheory.Content.innerContent_of_isCompact {G : Type w} [] (μ : ) {K : Set G} (h1K : ) (h2K : ) :
μ.innerContent { carrier := K, is_open' := h2K } = (fun (s : ) => (μ.toFun s)) { carrier := K, isCompact' := h1K }
theorem MeasureTheory.Content.innerContent_bot {G : Type w} [] (μ : ) :
μ.innerContent = 0
theorem MeasureTheory.Content.innerContent_mono {G : Type w} [] (μ : ) ⦃U : Set G ⦃V : Set G (hU : ) (hV : ) (h2 : U V) :
μ.innerContent { carrier := U, is_open' := hU } μ.innerContent { carrier := V, is_open' := hV }

This is "unbundled", because that is required for the API of inducedOuterMeasure.

theorem MeasureTheory.Content.innerContent_exists_compact {G : Type w} [] (μ : ) {U : } (hU : μ.innerContent U ) {ε : NNReal} (hε : ε 0) :
∃ (K : ), K U μ.innerContent U (fun (s : ) => (μ.toFun s)) K + ε
theorem MeasureTheory.Content.innerContent_iSup_nat {G : Type w} [] (μ : ) [] (U : ) :
μ.innerContent (⨆ (i : ), U i) ∑' (i : ), μ.innerContent (U i)

The inner content of a supremum of opens is at most the sum of the individual inner contents.

theorem MeasureTheory.Content.innerContent_iUnion_nat {G : Type w} [] (μ : ) [] ⦃U : Set G (hU : ∀ (i : ), IsOpen (U i)) :
μ.innerContent { carrier := ⋃ (i : ), U i, is_open' := } ∑' (i : ), μ.innerContent { carrier := U i, is_open' := }

The inner content of a union of sets is at most the sum of the individual inner contents. This is the "unbundled" version of innerContent_iSup_nat. It is required for the API of inducedOuterMeasure.

theorem MeasureTheory.Content.innerContent_comap {G : Type w} [] (μ : ) (f : G ≃ₜ G) (h : ∀ ⦃K : ⦄, (fun (s : ) => (μ.toFun s)) = (fun (s : ) => (μ.toFun s)) K) (U : ) :
μ.innerContent ((TopologicalSpace.Opens.comap f.toContinuousMap) U) = μ.innerContent U
theorem MeasureTheory.Content.is_add_left_invariant_innerContent {G : Type w} [] (μ : ) [] (h : ∀ (g : G) {K : }, (fun (s : ) => (μ.toFun s)) (TopologicalSpace.Compacts.map (fun (b : G) => g + b) K) = (fun (s : ) => (μ.toFun s)) K) (g : G) (U : ) :
μ.innerContent ((TopologicalSpace.Opens.comap .toContinuousMap) U) = μ.innerContent U
theorem MeasureTheory.Content.is_mul_left_invariant_innerContent {G : Type w} [] (μ : ) [] [] (h : ∀ (g : G) {K : }, (fun (s : ) => (μ.toFun s)) (TopologicalSpace.Compacts.map (fun (b : G) => g * b) K) = (fun (s : ) => (μ.toFun s)) K) (g : G) (U : ) :
μ.innerContent ((TopologicalSpace.Opens.comap .toContinuousMap) U) = μ.innerContent U
theorem MeasureTheory.Content.innerContent_pos_of_is_add_left_invariant {G : Type w} [] (μ : ) [] (h3 : ∀ (g : G) {K : }, (fun (s : ) => (μ.toFun s)) (TopologicalSpace.Compacts.map (fun (b : G) => g + b) K) = (fun (s : ) => (μ.toFun s)) K) (K : ) (hK : (fun (s : ) => (μ.toFun s)) K 0) (U : ) (hU : (↑U).Nonempty) :
0 < μ.innerContent U
theorem MeasureTheory.Content.innerContent_pos_of_is_mul_left_invariant {G : Type w} [] (μ : ) [] [] (h3 : ∀ (g : G) {K : }, (fun (s : ) => (μ.toFun s)) (TopologicalSpace.Compacts.map (fun (b : G) => g * b) K) = (fun (s : ) => (μ.toFun s)) K) (K : ) (hK : (fun (s : ) => (μ.toFun s)) K 0) (U : ) (hU : (↑U).Nonempty) :
0 < μ.innerContent U
theorem MeasureTheory.Content.innerContent_mono' {G : Type w} [] (μ : ) ⦃U : Set G ⦃V : Set G (hU : ) (hV : ) (h2 : U V) :
μ.innerContent { carrier := U, is_open' := hU } μ.innerContent { carrier := V, is_open' := hV }
def MeasureTheory.Content.outerMeasure {G : Type w} [] (μ : ) :

Extending a content on compact sets to an outer measure on all sets.

Equations
Instances For
theorem MeasureTheory.Content.outerMeasure_opens {G : Type w} [] (μ : ) [] (U : ) :
μ.outerMeasure U = μ.innerContent U
theorem MeasureTheory.Content.outerMeasure_of_isOpen {G : Type w} [] (μ : ) [] (U : Set G) (hU : ) :
μ.outerMeasure U = μ.innerContent { carrier := U, is_open' := hU }
theorem MeasureTheory.Content.outerMeasure_le {G : Type w} [] (μ : ) [] (U : ) (K : ) (hUK : U K) :
μ.outerMeasure U (fun (s : ) => (μ.toFun s)) K
theorem MeasureTheory.Content.le_outerMeasure_compacts {G : Type w} [] (μ : ) [] (K : ) :
(fun (s : ) => (μ.toFun s)) K μ.outerMeasure K
theorem MeasureTheory.Content.outerMeasure_eq_iInf {G : Type w} [] (μ : ) [] (A : Set G) :
μ.outerMeasure A = ⨅ (U : Set G), ⨅ (hU : ), ⨅ (_ : A U), μ.innerContent { carrier := U, is_open' := hU }
theorem MeasureTheory.Content.outerMeasure_interior_compacts {G : Type w} [] (μ : ) [] (K : ) :
μ.outerMeasure (interior K) (fun (s : ) => (μ.toFun s)) K
theorem MeasureTheory.Content.outerMeasure_exists_compact {G : Type w} [] (μ : ) [] {U : } (hU : μ.outerMeasure U ) {ε : NNReal} (hε : ε 0) :
∃ (K : ), K U μ.outerMeasure U μ.outerMeasure K + ε
theorem MeasureTheory.Content.outerMeasure_exists_open {G : Type w} [] (μ : ) [] {A : Set G} (hA : μ.outerMeasure A ) {ε : NNReal} (hε : ε 0) :
∃ (U : ), A U μ.outerMeasure U μ.outerMeasure A + ε
theorem MeasureTheory.Content.outerMeasure_preimage {G : Type w} [] (μ : ) [] (f : G ≃ₜ G) (h : ∀ ⦃K : ⦄, (fun (s : ) => (μ.toFun s)) = (fun (s : ) => (μ.toFun s)) K) (A : Set G) :
μ.outerMeasure (f ⁻¹' A) = μ.outerMeasure A
theorem MeasureTheory.Content.outerMeasure_lt_top_of_isCompact {G : Type w} [] (μ : ) [] {K : Set G} (hK : ) :
μ.outerMeasure K <
theorem MeasureTheory.Content.is_add_left_invariant_outerMeasure {G : Type w} [] (μ : ) [] [] (h : ∀ (g : G) {K : }, (fun (s : ) => (μ.toFun s)) (TopologicalSpace.Compacts.map (fun (b : G) => g + b) K) = (fun (s : ) => (μ.toFun s)) K) (g : G) (A : Set G) :
μ.outerMeasure ((fun (x : G) => g + x) ⁻¹' A) = μ.outerMeasure A
theorem MeasureTheory.Content.is_mul_left_invariant_outerMeasure {G : Type w} [] (μ : ) [] [] [] (h : ∀ (g : G) {K : }, (fun (s : ) => (μ.toFun s)) (TopologicalSpace.Compacts.map (fun (b : G) => g * b) K) = (fun (s : ) => (μ.toFun s)) K) (g : G) (A : Set G) :
μ.outerMeasure ((fun (x : G) => g * x) ⁻¹' A) = μ.outerMeasure A
theorem MeasureTheory.Content.outerMeasure_caratheodory {G : Type w} [] (μ : ) [] (A : Set G) :
∀ (U : ), μ.outerMeasure (U A) + μ.outerMeasure (U \ A) μ.outerMeasure U
theorem MeasureTheory.Content.outerMeasure_pos_of_is_add_left_invariant {G : Type w} [] (μ : ) [] [] (h3 : ∀ (g : G) {K : }, (fun (s : ) => (μ.toFun s)) (TopologicalSpace.Compacts.map (fun (b : G) => g + b) K) = (fun (s : ) => (μ.toFun s)) K) (K : ) (hK : (fun (s : ) => (μ.toFun s)) K 0) {U : Set G} (h1U : ) (h2U : U.Nonempty) :
0 < μ.outerMeasure U
theorem MeasureTheory.Content.outerMeasure_pos_of_is_mul_left_invariant {G : Type w} [] (μ : ) [] [] [] (h3 : ∀ (g : G) {K : }, (fun (s : ) => (μ.toFun s)) (TopologicalSpace.Compacts.map (fun (b : G) => g * b) K) = (fun (s : ) => (μ.toFun s)) K) (K : ) (hK : (fun (s : ) => (μ.toFun s)) K 0) {U : Set G} (h1U : ) (h2U : U.Nonempty) :
0 < μ.outerMeasure U
theorem MeasureTheory.Content.borel_le_caratheodory {G : Type w} [] (μ : ) [] [S : ] [] :
S μ.outerMeasure.caratheodory

For the outer measure coming from a content, all Borel sets are measurable.

def MeasureTheory.Content.measure {G : Type w} [] (μ : ) [] [S : ] [] :

The measure induced by the outer measure coming from a content, on the Borel sigma-algebra.

Equations
• μ.measure = μ.outerMeasure.toMeasure
Instances For
theorem MeasureTheory.Content.measure_apply {G : Type w} [] (μ : ) [] [S : ] [] {s : Set G} (hs : ) :
μ.measure s = μ.outerMeasure s
instance MeasureTheory.Content.outerRegular {G : Type w} [] (μ : ) [] [S : ] [] :
μ.measure.OuterRegular
Equations
• =
instance MeasureTheory.Content.regular {G : Type w} [] (μ : ) [] [S : ] [] :
μ.measure.Regular

In a locally compact space, any measure constructed from a content is regular.

Equations
• =

A content μ is called regular if for every compact set K, μ(K) = inf {μ(K') : K ⊂ int K' ⊂ K'}. See Paul Halmos (1950), Measure Theory, §54

Equations
• One or more equations did not get rendered due to their size.
Instances For
theorem MeasureTheory.Content.contentRegular_exists_compact {G : Type w} [] (μ : ) (H : μ.ContentRegular) (K : ) {ε : NNReal} (hε : ε 0) :
∃ (K' : ), K.carrier interior K'.carrier (fun (s : ) => (μ.toFun s)) K' (fun (s : ) => (μ.toFun s)) K + ε
theorem MeasureTheory.Content.measure_eq_content_of_regular {G : Type w} [] (μ : ) [] [] [] (H : μ.ContentRegular) (K : ) :
μ.measure K = (fun (s : ) => (μ.toFun s)) K

If μ is a regular content, then the measure induced by μ will agree with μ on compact sets.