# mathlibdocumentation

measure_theory.measure_space_def

# Measure spaces #

This file defines measure spaces, the almost-everywhere filter and ae_measurable functions. See measure_theory.measure_space for their properties and for extended documentation.

Given a measurable space α, a measure on α is a function that sends measurable sets to the extended nonnegative reals that satisfies the following conditions:

1. μ ∅ = 0;
2. μ is countably additive. This means that the measure of a countable union of pairwise disjoint sets is equal to the measure of the individual sets.

Every measure can be canonically extended to an outer measure, so that it assigns values to all subsets, not just the measurable subsets. On the other hand, a measure that is countably additive on measurable sets can be restricted to measurable sets to obtain a measure. In this file a measure is defined to be an outer measure that is countably additive on measurable sets, with the additional assumption that the outer measure is the canonical extension of the restricted measure.

Measures on α form a complete lattice, and are closed under scalar multiplication with ℝ≥0∞.

## Implementation notes #

Given μ : measure α, μ s is the value of the outer measure applied to s. This conveniently allows us to apply the measure to sets without proving that they are measurable. We get countable subadditivity for all sets, but only countable additivity for measurable sets.

See the documentation of measure_theory.measure_space for ways to construct measures and proving that two measure are equal.

A measure_space is a class that is a measurable space with a canonical measure. The measure is denoted volume.

This file does not import measure_theory.measurable_space, but only measurable_space_def.

## Tags #

measure, almost everywhere, measure space

structure measure_theory.measure (α : Type u_6)  :
Type u_6

A measure is defined to be an outer measure that is countably additive on measurable sets, with the additional assumption that the outer measure is the canonical extension of the restricted measure.

@[instance]
def measure_theory.measure.has_coe_to_fun {α : Type u_1}  :

Measure projections for a measure space.

For measurable sets this returns the measure assigned by the measure_of field in measure. But we can extend this to all sets, but using the outer measure. This gives us monotonicity and subadditivity for all sets.

Equations

### General facts about measures #

def measure_theory.measure.of_measurable {α : Type u_1} (m : Π (s : set α), ) (m0 : = 0) (mU : ∀ ⦃f : set α⦄ (h : ∀ (i : ), measurable_set (f i)), pairwise (disjoint on f)m (⋃ (i : ), f i) _ = ∑' (i : ), m (f i) _) :

Obtain a measure by giving a countably additive function that sends ∅ to 0.

Equations
theorem measure_theory.measure.of_measurable_apply {α : Type u_1} {m : Π (s : set α), } {m0 : = 0} {mU : ∀ ⦃f : set α⦄ (h : ∀ (i : ), measurable_set (f i)), pairwise (disjoint on f)m (⋃ (i : ), f i) _ = ∑' (i : ), m (f i) _} (s : set α) (hs : measurable_set s) :
mU) s = m s hs
@[ext]
theorem measure_theory.measure.ext {α : Type u_1} {μ₁ μ₂ : measure_theory.measure α} (h : ∀ (s : set α), μ₁ s = μ₂ s) :
μ₁ = μ₂
theorem measure_theory.measure.ext_iff {α : Type u_1} {μ₁ μ₂ : measure_theory.measure α} :
μ₁ = μ₂ ∀ (s : set α), μ₁ s = μ₂ s
@[simp]
theorem measure_theory.to_outer_measure_apply {α : Type u_1} {μ : measure_theory.measure α} (s : set α) :
theorem measure_theory.measure_eq_trim {α : Type u_1} {μ : measure_theory.measure α} (s : set α) :
theorem measure_theory.measure_eq_infi {α : Type u_1} {μ : measure_theory.measure α} (s : set α) :
μ s = ⨅ (t : set α) (st : s t) (ht : , μ t
theorem measure_theory.measure_eq_infi' {α : Type u_1} (μ : measure_theory.measure α) (s : set α) :
μ s = ⨅ (t : {t // s t , μ t

A variant of measure_eq_infi which has a single infi. This is useful when applying a lemma next that only works for non-empty infima, in which case you can use nonempty_measurable_superset.

theorem measure_theory.measure_eq_extend {α : Type u_1} {μ : measure_theory.measure α} {s : set α} (hs : measurable_set s) :
μ s = measure_theory.extend (λ (t : set α) (ht : , μ t) s
@[simp]
theorem measure_theory.measure_empty {α : Type u_1} {μ : measure_theory.measure α} :
μ = 0
theorem measure_theory.nonempty_of_measure_ne_zero {α : Type u_1} {μ : measure_theory.measure α} {s : set α} (h : μ s 0) :
theorem measure_theory.measure_mono {α : Type u_1} {μ : measure_theory.measure α} {s₁ s₂ : set α} (h : s₁ s₂) :
μ s₁ μ s₂
theorem measure_theory.measure_mono_null {α : Type u_1} {μ : measure_theory.measure α} {s₁ s₂ : set α} (h : s₁ s₂) (h₂ : μ s₂ = 0) :
μ s₁ = 0
theorem measure_theory.measure_mono_top {α : Type u_1} {μ : measure_theory.measure α} {s₁ s₂ : set α} (h : s₁ s₂) (h₁ : μ s₁ = ) :
μ s₂ =
theorem measure_theory.exists_measurable_superset {α : Type u_1} (μ : measure_theory.measure α) (s : set α) :
∃ (t : set α), s t μ t = μ s

For every set there exists a measurable superset of the same measure.

theorem measure_theory.exists_measurable_superset_forall_eq {α : Type u_1} {ι : Type u_2} [encodable ι] (μ : ι → ) (s : set α) :
∃ (t : set α), s t ∀ (i : ι), (μ i) t = (μ i) s

For every set s and a countable collection of measures μ i there exists a measurable superset t ⊇ s such that each measure μ i takes the same value on s and t.

def measure_theory.to_measurable {α : Type u_1} (μ : measure_theory.measure α) (s : set α) :
set α

A measurable set t ⊇ s such that μ t = μ s.

Equations
theorem measure_theory.subset_to_measurable {α : Type u_1} (μ : measure_theory.measure α) (s : set α) :
@[simp]
theorem measure_theory.measurable_set_to_measurable {α : Type u_1} (μ : measure_theory.measure α) (s : set α) :
@[simp]
theorem measure_theory.measure_to_measurable {α : Type u_1} {μ : measure_theory.measure α} (s : set α) :
= μ s
theorem measure_theory.exists_measurable_superset_of_null {α : Type u_1} {μ : measure_theory.measure α} {s : set α} (h : μ s = 0) :
∃ (t : set α), s t μ t = 0
theorem measure_theory.exists_measurable_superset_iff_measure_eq_zero {α : Type u_1} {μ : measure_theory.measure α} {s : set α} :
(∃ (t : set α), s t μ t = 0) μ s = 0
theorem measure_theory.measure_Union_le {α : Type u_1} {β : Type u_2} {μ : measure_theory.measure α} [encodable β] (s : β → set α) :
μ (⋃ (i : β), s i) ∑' (i : β), μ (s i)
theorem measure_theory.measure_bUnion_le {α : Type u_1} {β : Type u_2} {μ : measure_theory.measure α} {s : set β} (hs : s.countable) (f : β → set α) :
μ (⋃ (b : β) (H : b s), f b) ∑' (p : s), μ (f p)
theorem measure_theory.measure_bUnion_finset_le {α : Type u_1} {β : Type u_2} {μ : measure_theory.measure α} (s : finset β) (f : β → set α) :
μ (⋃ (b : β) (H : b s), f b) ∑ (p : β) in s, μ (f p)
theorem measure_theory.measure_bUnion_lt_top {α : Type u_1} {β : Type u_2} {μ : measure_theory.measure α} {s : set β} {f : β → set α} (hs : s.finite) (hfin : ∀ (i : β), i sμ (f i) < ) :
μ (⋃ (i : β) (H : i s), f i) <
theorem measure_theory.measure_Union_null {α : Type u_1} {β : Type u_2} {μ : measure_theory.measure α} [encodable β] {s : β → set α} :
(∀ (i : β), μ (s i) = 0)μ (⋃ (i : β), s i) = 0
theorem measure_theory.measure_Union_null_iff {α : Type u_1} {ι : Type u_5} {μ : measure_theory.measure α} [encodable ι] {s : ι → set α} :
μ (⋃ (i : ι), s i) = 0 ∀ (i : ι), μ (s i) = 0
theorem measure_theory.measure_bUnion_null_iff {α : Type u_1} {ι : Type u_5} {μ : measure_theory.measure α} {s : set ι} (hs : s.countable) {t : ι → set α} :
μ (⋃ (i : ι) (H : i s), t i) = 0 ∀ (i : ι), i sμ (t i) = 0
theorem measure_theory.measure_union_le {α : Type u_1} {μ : measure_theory.measure α} (s₁ s₂ : set α) :
μ (s₁ s₂) μ s₁ + μ s₂
theorem measure_theory.measure_union_null {α : Type u_1} {μ : measure_theory.measure α} {s₁ s₂ : set α} :
μ s₁ = 0μ s₂ = 0μ (s₁ s₂) = 0
theorem measure_theory.measure_union_null_iff {α : Type u_1} {μ : measure_theory.measure α} {s₁ s₂ : set α} :
μ (s₁ s₂) = 0 μ s₁ = 0 μ s₂ = 0

### The almost everywhere filter #

def measure_theory.measure.ae {α : Type u_1} (μ : measure_theory.measure α) :

The “almost everywhere” filter of co-null sets.

Equations
theorem measure_theory.mem_ae_iff {α : Type u_1} {μ : measure_theory.measure α} {s : set α} :
s μ.ae μ s = 0
theorem measure_theory.ae_iff {α : Type u_1} {μ : measure_theory.measure α} {p : α → Prop} :
(∀ᵐ (a : α) ∂μ, p a) μ {a : α | ¬p a} = 0
theorem measure_theory.compl_mem_ae_iff {α : Type u_1} {μ : measure_theory.measure α} {s : set α} :
s μ.ae μ s = 0
theorem measure_theory.frequently_ae_iff {α : Type u_1} {μ : measure_theory.measure α} {p : α → Prop} :
(∃ᵐ (a : α) ∂μ, p a) μ {a : α | p a} 0
theorem measure_theory.frequently_ae_mem_iff {α : Type u_1} {μ : measure_theory.measure α} {s : set α} :
(∃ᵐ (a : α) ∂μ, a s) μ s 0
theorem measure_theory.measure_zero_iff_ae_nmem {α : Type u_1} {μ : measure_theory.measure α} {s : set α} :
μ s = 0 ∀ᵐ (a : α) ∂μ, a s
theorem measure_theory.ae_of_all {α : Type u_1} {p : α → Prop} (μ : measure_theory.measure α) :
(∀ (a : α), p a)(∀ᵐ (a : α) ∂μ, p a)
theorem measure_theory.ae_imp_iff {α : Type u_1} {μ : measure_theory.measure α} {p : α → Prop} {q : Prop} :
(∀ᵐ (x : α) ∂μ, q → p x) q → (∀ᵐ (x : α) ∂μ, p x)
theorem measure_theory.ae_all_iff {α : Type u_1} {ι : Type u_5} {μ : measure_theory.measure α} [encodable ι] {p : α → ι → Prop} :
(∀ᵐ (a : α) ∂μ, ∀ (i : ι), p a i) ∀ (i : ι), ∀ᵐ (a : α) ∂μ, p a i
theorem measure_theory.ae_ball_iff {α : Type u_1} {ι : Type u_5} {μ : measure_theory.measure α} {S : set ι} (hS : S.countable) {p : α → Π (i : ι), i S → Prop} :
(∀ᵐ (x : α) ∂μ, ∀ (i : ι) (H : i S), p x i H) ∀ (i : ι) (H : i S), ∀ᵐ (x : α) ∂μ, p x i H
theorem measure_theory.ae_eq_refl {α : Type u_1} {δ : Type u_4} {μ : measure_theory.measure α} (f : α → δ) :
f =ᵐ[μ] f
theorem measure_theory.ae_eq_symm {α : Type u_1} {δ : Type u_4} {μ : measure_theory.measure α} {f g : α → δ} (h : f =ᵐ[μ] g) :
g =ᵐ[μ] f
theorem measure_theory.ae_eq_trans {α : Type u_1} {δ : Type u_4} {μ : measure_theory.measure α} {f g h : α → δ} (h₁ : f =ᵐ[μ] g) (h₂ : g =ᵐ[μ] h) :
f =ᵐ[μ] h
@[simp]
theorem measure_theory.ae_eq_empty {α : Type u_1} {μ : measure_theory.measure α} {s : set α} :
s =ᵐ[μ] μ s = 0
theorem measure_theory.ae_le_set {α : Type u_1} {μ : measure_theory.measure α} {s t : set α} :
s ≤ᵐ[μ] t μ (s \ t) = 0
@[simp]
theorem measure_theory.union_ae_eq_right {α : Type u_1} {μ : measure_theory.measure α} {s t : set α} :
s t =ᵐ[μ] t μ (s \ t) = 0
theorem measure_theory.diff_ae_eq_self {α : Type u_1} {μ : measure_theory.measure α} {s t : set α} :
s \ t =ᵐ[μ] s μ (s t) = 0
theorem measure_theory.ae_eq_set {α : Type u_1} {μ : measure_theory.measure α} {s t : set α} :
s =ᵐ[μ] t μ (s \ t) = 0 μ (t \ s) = 0
theorem measure_theory.measure_mono_ae {α : Type u_1} {μ : measure_theory.measure α} {s t : set α} (H : s ≤ᵐ[μ] t) :
μ s μ t

If s ⊆ t modulo a set of measure 0, then μ s ≤ μ t.

theorem filter.eventually_le.measure_le {α : Type u_1} {μ : measure_theory.measure α} {s t : set α} (H : s ≤ᵐ[μ] t) :
μ s μ t

Alias of measure_mono_ae.

theorem measure_theory.measure_congr {α : Type u_1} {μ : measure_theory.measure α} {s t : set α} (H : s =ᵐ[μ] t) :
μ s = μ t

If two sets are equal modulo a set of measure zero, then μ s = μ t.

@[class]
structure measure_theory.measure_space (α : Type u_6) :
Type u_6
• to_measurable_space :
• volume :

A measure space is a measurable space equipped with a measure, referred to as volume.

Instances

The tactic exact volume, to be used in optional (auto_param) arguments.

# Almost everywhere measurable functions #

A function is almost everywhere measurable if it coincides almost everywhere with a measurable function. We define this property, called ae_measurable f μ. It's properties are discussed in measure_theory.measure_space.

def ae_measurable {α : Type u_1} {β : Type u_2} (f : α → β) (μ : . "volume_tac") :
Prop

A function is almost everywhere measurable if it coincides almost everywhere with a measurable function.

Equations
theorem measurable.ae_measurable {α : Type u_1} {β : Type u_2} {f : α → β} {μ : measure_theory.measure α} (h : measurable f) :
def ae_measurable.mk {α : Type u_1} {β : Type u_2} {μ : measure_theory.measure α} (f : α → β) (h : μ) :
α → β

Given an almost everywhere measurable function f, associate to it a measurable function that coincides with it almost everywhere. f is explicit in the definition to make sure that it shows in pretty-printing.

Equations
theorem ae_measurable.measurable_mk {α : Type u_1} {β : Type u_2} {f : α → β} {μ : measure_theory.measure α} (h : μ) :
theorem ae_measurable.ae_eq_mk {α : Type u_1} {β : Type u_2} {f : α → β} {μ : measure_theory.measure α} (h : μ) :
f =ᵐ[μ]
theorem ae_measurable.congr {α : Type u_1} {β : Type u_2} {f g : α → β} {μ : measure_theory.measure α} (hf : μ) (h : f =ᵐ[μ] g) :
theorem ae_measurable_congr {α : Type u_1} {β : Type u_2} {f g : α → β} {μ : measure_theory.measure α} (h : f =ᵐ[μ] g) :
@[simp]
theorem ae_measurable_const {α : Type u_1} {β : Type u_2} {μ : measure_theory.measure α} {b : β} :
ae_measurable (λ (a : α), b) μ
theorem ae_measurable_id {α : Type u_1} {μ : measure_theory.measure α} :
theorem ae_measurable_id' {α : Type u_1} {μ : measure_theory.measure α} :
ae_measurable (λ (x : α), x) μ
theorem measurable.comp_ae_measurable {α : Type u_1} {β : Type u_2} {δ : Type u_4} {μ : measure_theory.measure α} {f : α → δ} {g : δ → β} (hg : measurable g) (hf : μ) :