Outer Measures #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
An outer measure is a function μ : set α → ℝ≥0∞
, from the powerset of a type to the extended
nonnegative real numbers that satisfies the following conditions:
μ ∅ = 0
;μ
is monotone;μ
is countably subadditive. This means that the outer measure of a countable union is at most the sum of the outer measure on the individual sets.
Note that we do not need α
to be measurable to define an outer measure.
The outer measures on a type α
form a complete lattice.
Given an arbitrary function m : set α → ℝ≥0∞
that sends ∅
to 0
we can define an outer
measure on α
that on s
is defined to be the infimum of ∑ᵢ, m (sᵢ)
for all collections of sets
sᵢ
that cover s
. This is the unique maximal outer measure that is at most the given function.
We also define this for functions m
defined on a subset of set α
, by treating the function as
having value ∞
outside its domain.
Given an outer measure m
, the Carathéodory-measurable sets are the sets s
such that
for all sets t
we have m t = m (t ∩ s) + m (t \ s)
. This forms a measurable space.
Main definitions and statements #
outer_measure.bounded_by
is the greatest outer measure that is at most the given function. If you know that the given functions sends∅
to0
, thenouter_measure.of_function
is a special case.caratheodory
is the Carathéodory-measurable space of an outer measure.Inf_eq_of_function_Inf_gen
is a characterization of the infimum of outer measures.induced_outer_measure
is the measure induced by a function on a subset ofset α
References #
- https://en.wikipedia.org/wiki/Outer_measure
- https://en.wikipedia.org/wiki/Carath%C3%A9odory%27s_criterion
Tags #
outer measure, Carathéodory-measurable, Carathéodory's criterion
- measure_of : set α → ennreal
- empty : self.measure_of ∅ = 0
- mono : ∀ {s₁ s₂ : set α}, s₁ ⊆ s₂ → self.measure_of s₁ ≤ self.measure_of s₂
- Union_nat : ∀ (s : ℕ → set α), self.measure_of (⋃ (i : ℕ), s i) ≤ ∑' (i : ℕ), self.measure_of (s i)
An outer measure is a countably subadditive monotone function that sends ∅
to 0
.
Instances for measure_theory.outer_measure
- measure_theory.outer_measure.has_sizeof_inst
- measure_theory.outer_measure.has_coe_to_fun
- measure_theory.outer_measure.has_zero
- measure_theory.outer_measure.inhabited
- measure_theory.outer_measure.has_add
- measure_theory.outer_measure.has_smul
- measure_theory.outer_measure.smul_comm_class
- measure_theory.outer_measure.is_scalar_tower
- measure_theory.outer_measure.is_central_scalar
- measure_theory.outer_measure.mul_action
- measure_theory.outer_measure.add_comm_monoid
- measure_theory.outer_measure.distrib_mul_action
- measure_theory.outer_measure.module
- measure_theory.outer_measure.has_bot
- measure_theory.outer_measure.outer_measure.partial_order
- measure_theory.outer_measure.outer_measure.order_bot
- measure_theory.outer_measure.has_Sup
- measure_theory.outer_measure.complete_lattice
- measure_theory.outer_measure.functor
- measure_theory.outer_measure.is_lawful_functor
Equations
A version of Union_null_iff
for unions indexed by Props.
TODO: in the long run it would be better to combine this with Union_null_iff
by
generalising to Sort
.
If a set has zero measure in a neighborhood of each of its points, then it has zero measure in a second-countable space.
If m s ≠ 0
, then for some point x ∈ s
and any t ∈ 𝓝[s] x
we have 0 < m t
.
If s : ι → set α
is a sequence of sets, S = ⋃ n, s n
, and m (S \ s n)
tends to zero along
some nontrivial filter (usually at_top
on ι = ℕ
), then m S = ⨆ n, m (s n)
.
If s : ℕ → set α
is a monotone sequence of sets such that ∑' k, m (s (k + 1) \ s k) ≠ ∞
,
then m (⋃ n, s n) = ⨆ n, m (s n)
.
A version of measure_theory.outer_measure.ext
that assumes μ₁ s = μ₂ s
on all nonempty
sets s
, and gets μ₁ ∅ = μ₂ ∅
from measure_theory.outer_measure.empty'
.
Equations
- measure_theory.outer_measure.has_zero = {zero := {measure_of := λ (_x : set α), 0, empty := measure_theory.outer_measure.has_zero._proof_1, mono := _, Union_nat := _}}
Equations
- measure_theory.outer_measure.has_add = {add := λ (m₁ m₂ : measure_theory.outer_measure α), {measure_of := λ (s : set α), ⇑m₁ s + ⇑m₂ s, empty := _, mono := _, Union_nat := _}}
Equations
- measure_theory.outer_measure.has_smul = {smul := λ (c : R) (m : measure_theory.outer_measure α), {measure_of := λ (s : set α), c • ⇑m s, empty := _, mono := _, Union_nat := _}}
Equations
- measure_theory.outer_measure.mul_action = function.injective.mul_action (λ (μ : measure_theory.outer_measure α) (s : set α), ⇑μ s) measure_theory.outer_measure.coe_fn_injective measure_theory.outer_measure.mul_action._proof_1
Equations
- measure_theory.outer_measure.add_comm_monoid = function.injective.add_comm_monoid (show measure_theory.outer_measure α → set α → ennreal, from coe_fn) measure_theory.outer_measure.coe_fn_injective measure_theory.outer_measure.add_comm_monoid._proof_2 measure_theory.outer_measure.add_comm_monoid._proof_3 measure_theory.outer_measure.add_comm_monoid._proof_4
coe_fn
as an add_monoid_hom
.
Equations
Equations
- measure_theory.outer_measure.distrib_mul_action = function.injective.distrib_mul_action measure_theory.outer_measure.coe_fn_add_monoid_hom measure_theory.outer_measure.coe_fn_injective measure_theory.outer_measure.distrib_mul_action._proof_1
Equations
- measure_theory.outer_measure.module = function.injective.module R measure_theory.outer_measure.coe_fn_add_monoid_hom measure_theory.outer_measure.coe_fn_injective measure_theory.outer_measure.module._proof_1
Equations
Equations
- measure_theory.outer_measure.outer_measure.partial_order = {le := λ (m₁ m₂ : measure_theory.outer_measure α), ∀ (s : set α), ⇑m₁ s ≤ ⇑m₂ s, lt := preorder.lt._default (λ (m₁ m₂ : measure_theory.outer_measure α), ∀ (s : set α), ⇑m₁ s ≤ ⇑m₂ s), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _}
Equations
- measure_theory.outer_measure.has_Sup = {Sup := λ (ms : set (measure_theory.outer_measure α)), {measure_of := λ (s : set α), ⨆ (m : measure_theory.outer_measure α) (H : m ∈ ms), ⇑m s, empty := _, mono := _, Union_nat := _}}
Equations
- measure_theory.outer_measure.complete_lattice = {sup := complete_lattice.sup (complete_lattice_of_Sup (measure_theory.outer_measure α) measure_theory.outer_measure.complete_lattice._proof_1), le := complete_lattice.le (complete_lattice_of_Sup (measure_theory.outer_measure α) measure_theory.outer_measure.complete_lattice._proof_1), lt := complete_lattice.lt (complete_lattice_of_Sup (measure_theory.outer_measure α) measure_theory.outer_measure.complete_lattice._proof_1), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := complete_lattice.inf (complete_lattice_of_Sup (measure_theory.outer_measure α) measure_theory.outer_measure.complete_lattice._proof_1), inf_le_left := _, inf_le_right := _, le_inf := _, Sup := complete_lattice.Sup (complete_lattice_of_Sup (measure_theory.outer_measure α) measure_theory.outer_measure.complete_lattice._proof_1), le_Sup := _, Sup_le := _, Inf := complete_lattice.Inf (complete_lattice_of_Sup (measure_theory.outer_measure α) measure_theory.outer_measure.complete_lattice._proof_1), Inf_le := _, le_Inf := _, top := complete_lattice.top (complete_lattice_of_Sup (measure_theory.outer_measure α) measure_theory.outer_measure.complete_lattice._proof_1), bot := order_bot.bot measure_theory.outer_measure.outer_measure.order_bot, le_top := _, bot_le := _}
The pushforward of m
along f
. The outer measure on s
is defined to be m (f ⁻¹' s)
.
Equations
- measure_theory.outer_measure.map f = {to_fun := λ (m : measure_theory.outer_measure α), {measure_of := λ (s : set β), ⇑m (f ⁻¹' s), empty := _, mono := _, Union_nat := _}, map_add' := _, map_smul' := _}
Equations
- measure_theory.outer_measure.functor = {map := λ (α β : Type u_1) (f : α → β), ⇑(measure_theory.outer_measure.map f), map_const := λ (α β : Type u_1), (λ (f : β → α), ⇑(measure_theory.outer_measure.map f)) ∘ function.const β}
The dirac outer measure.
Equations
- measure_theory.outer_measure.dirac a = {measure_of := λ (s : set α), s.indicator (λ (_x : α), 1) a, empty := _, mono := _, Union_nat := _}
The sum of an (arbitrary) collection of outer measures.
Pullback of an outer_measure
: comap f μ s = μ (f '' s)
.
Equations
- measure_theory.outer_measure.comap f = {to_fun := λ (m : measure_theory.outer_measure β), {measure_of := λ (s : set α), ⇑m (f '' s), empty := _, mono := _, Union_nat := _}, map_add' := _, map_smul' := _}
Restrict an outer_measure
to a set.
If m u = ∞
for any set u
that has nonempty intersection both with s
and t
, then
μ (s ∪ t) = μ s + μ t
, where μ = measure_theory.outer_measure.of_function m m_empty
.
E.g., if α
is an (e)metric space and m u = ∞
on any set of diameter ≥ r
, then this lemma
implies that μ (s ∪ t) = μ s + μ t
on any two sets such that r ≤ edist x y
for all x ∈ s
and y ∈ t
.
Given any function m
assigning measures to sets, there is a unique maximal outer measure μ
satisfying μ s ≤ m s
for all s : set α
. This is the same as outer_measure.of_function
,
except that it doesn't require m ∅ = 0
.
Equations
- measure_theory.outer_measure.bounded_by m = measure_theory.outer_measure.of_function (λ (s : set α), ⨆ (h : s.nonempty), m s) _
If m u = ∞
for any set u
that has nonempty intersection both with s
and t
, then
μ (s ∪ t) = μ s + μ t
, where μ = measure_theory.outer_measure.bounded_by m
.
E.g., if α
is an (e)metric space and m u = ∞
on any set of diameter ≥ r
, then this lemma
implies that μ (s ∪ t) = μ s + μ t
on any two sets such that r ≤ edist x y
for all x ∈ s
and y ∈ t
.
A set s
is Carathéodory-measurable for an outer measure m
if for all sets t
we have
m t = m (t ∩ s) + m (t \ s)
.
The Carathéodory-measurable sets for an outer measure m
form a Dynkin system.
Equations
- m.caratheodory_dynkin = {has := m.is_caratheodory, has_empty := _, has_compl := _, has_Union_nat := _}
Given an outer measure μ
, the Carathéodory-measurable space is
defined such that s
is measurable if ∀t, μ t = μ (t ∩ s) + μ (t \ s)
.
Equations
Given a set of outer measures, we define a new function that on a set s
is defined to be the
infimum of μ(s)
for the outer measures μ
in the collection. We ensure that this
function is defined to be 0
on ∅
, even if the collection of outer measures is empty.
The outer measure generated by this function is the infimum of the given outer measures.
Equations
- measure_theory.outer_measure.Inf_gen m s = ⨅ (μ : measure_theory.outer_measure α) (h : μ ∈ m), ⇑μ s
The value of the Infimum of a nonempty set of outer measures on a set is not simply the minimum value of a measure on that set: it is the infimum sum of measures of countable set of sets that covers that set, where a different measure can be used for each set in the cover.
The value of the Infimum of a set of outer measures on a nonempty set is not simply the minimum value of a measure on that set: it is the infimum sum of measures of countable set of sets that covers that set, where a different measure can be used for each set in the cover.
The value of the Infimum of a nonempty family of outer measures on a set is not simply the minimum value of a measure on that set: it is the infimum sum of measures of countable set of sets that covers that set, where a different measure can be used for each set in the cover.
The value of the Infimum of a family of outer measures on a nonempty set is not simply the minimum value of a measure on that set: it is the infimum sum of measures of countable set of sets that covers that set, where a different measure can be used for each set in the cover.
The value of the Infimum of a nonempty family of outer measures on a set is not simply the minimum value of a measure on that set: it is the infimum sum of measures of countable set of sets that covers that set, where a different measure can be used for each set in the cover.
The value of the Infimum of a nonempty family of outer measures on a set is not simply the minimum value of a measure on that set: it is the infimum sum of measures of countable set of sets that covers that set, where a different measure can be used for each set in the cover.
This proves that Inf and restrict commute for outer measures, so long as the set of outer measures is nonempty.
Induced Outer Measure #
We can extend a function defined on a subset of set α
to an outer measure.
The underlying function is called extend
, and the measure it induces is called
induced_outer_measure
.
Some lemmas below are proven twice, once in the general case, and one where the function m
is only defined on measurable sets (i.e. when P = measurable_set
). In the latter cases, we can
remove some hypotheses in the statement. The general version has the same name, but with a prime
at the end.
We can trivially extend a function defined on a subclass of objects (with codomain ℝ≥0∞
)
to all objects by defining it to be ∞
on the objects not in the class.
Equations
- measure_theory.extend m s = ⨅ (h : P s), m s h
Given an arbitrary function on a subset of sets, we can define the outer measure corresponding
to it (this is the unique maximal outer measure that is at most m
on the domain of m
).
Equations
If P u
is false
for any set u
that has nonempty intersection both with s
and t
, then
μ (s ∪ t) = μ s + μ t
, where μ = induced_outer_measure m P0 m0
.
E.g., if α
is an (e)metric space and P u = diam u < r
, then this lemma implies that
μ (s ∪ t) = μ s + μ t
on any two sets such that r ≤ edist x y
for all x ∈ s
and y ∈ t
.
To test whether s
is Carathéodory-measurable we only need to check the sets t
for which
P t
holds. See of_function_caratheodory
for another way to show the Carathéodory-measurability
of s
.
If P
is measurable_set
for some measurable space, then we can remove some hypotheses of the
above lemmas.
Given an outer measure m
we can forget its value on non-measurable sets, and then consider
m.trim
, the unique maximal outer measure less than that function.
Equations
- m.trim = measure_theory.induced_outer_measure (λ (s : set α) (_x : measurable_set s), ⇑m s) measurable_set.empty _
If μ i
is a countable family of outer measures, then for every set s
there exists
a measurable set t ⊇ s
such that μ i t = (μ i).trim s
for all i
.
If m₁ s = op (m₂ s) (m₃ s)
for all s
, then the same is true for m₁.trim
, m₂.trim
,
and m₃ s
.
If m₁ s = op (m₂ s)
for all s
, then the same is true for m₁.trim
and m₂.trim
.
trim
is additive.
trim
respects scalar multiplication.
trim
sends the supremum of two outer measures to the supremum of the trimmed measures.
trim
sends the supremum of a countable family of outer measures to the supremum
of the trimmed measures.
The trimmed property of a measure μ states that μ.to_outer_measure.trim = μ.to_outer_measure
.
This theorem shows that a restricted trimmed outer measure is a trimmed outer measure.