Vitali families #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
On a metric space X
with a measure μ
, consider for each x : X
a family of measurable sets with
nonempty interiors, called sets_at x
. This family is a Vitali family if it satisfies the following
property: consider a (possibly non-measurable) set s
, and for any x
in s
a
subfamily f x
of sets_at x
containing sets of arbitrarily small diameter. Then one can extract
a disjoint subfamily covering almost all s
.
Vitali families are provided by covering theorems such as the Besicovitch covering theorem or the Vitali covering theorem. They make it possible to formulate general versions of theorems on differentiations of measure that apply in both contexts.
This file gives the basic definition of Vitali families. More interesting developments of this notion are deferred to other files:
- constructions of specific Vitali families are provided by the Besicovitch covering theorem, in
besicovitch.vitali_family
, and by the Vitali covering theorem, invitali.vitali_family
. - The main theorem on differentiation of measures along a Vitali family is proved in
vitali_family.ae_tendsto_rn_deriv
.
Main definitions #
vitali_family μ
is a structure made, for eachx : X
, of a family of sets aroundx
, such that one can extract an almost everywhere disjoint covering from any subfamily containing sets of arbitrarily small diameters.
Let v
be such a Vitali family.
v.fine_subfamily_on
describes the subfamilies ofv
from which one can extract almost everywhere disjoint coverings. This property, calledv.fine_subfamily_on.exists_disjoint_covering_ae
, is essentially a restatement of the definition of a Vitali family. We also provide an API to use efficiently such a disjoint covering.v.filter_at x
is a filter on sets ofX
, such that convergence with respect to this filter means convergence when sets in the Vitali family shrink towardsx
.
References #
- Herbert Federer, Geometric Measure Theory, Chapter 2.8 (Vitali families are called Vitali relations there)
- sets_at : α → set (set α)
- measurable_set' : ∀ (x : α) (a : set α), a ∈ self.sets_at x → measurable_set a
- nonempty_interior : ∀ (x : α) (y : set α), y ∈ self.sets_at x → (interior y).nonempty
- nontrivial : ∀ (x : α) (ε : ℝ), ε > 0 → (∃ (y : set α) (H : y ∈ self.sets_at x), y ⊆ metric.closed_ball x ε)
- covering : ∀ (s : set α) (f : α → set (set α)), (∀ (x : α), x ∈ s → f x ⊆ self.sets_at x) → (∀ (x : α), x ∈ s → ∀ (ε : ℝ), ε > 0 → (∃ (a : set α) (H : a ∈ f x), a ⊆ metric.closed_ball x ε)) → (∃ (t : set (α × set α)), (∀ (p : α × set α), p ∈ t → p.fst ∈ s) ∧ t.pairwise_disjoint (λ (p : α × set α), p.snd) ∧ (∀ (p : α × set α), p ∈ t → p.snd ∈ f p.fst) ∧ ⇑μ (s \ ⋃ (p : α × set α) (hp : p ∈ t), p.snd) = 0)
On a metric space X
with a measure μ
, consider for each x : X
a family of measurable sets
with nonempty interiors, called sets_at x
. This family is a Vitali family if it satisfies the
following property: consider a (possibly non-measurable) set s
, and for any x
in s
a
subfamily f x
of sets_at x
containing sets of arbitrarily small diameter. Then one can extract
a disjoint subfamily covering almost all s
.
Vitali families are provided by covering theorems such as the Besicovitch covering theorem or the Vitali covering theorem. They make it possible to formulate general versions of theorems on differentiations of measure that apply in both contexts.
Instances for vitali_family
- vitali_family.has_sizeof_inst
A Vitali family for a measure μ
is also a Vitali family for any measure absolutely continuous
with respect to μ
.
Equations
- v.mono ν hν = {sets_at := v.sets_at, measurable_set' := _, nonempty_interior := _, nontrivial := _, covering := _}
Given a Vitali family v
for a measure μ
, a family f
is a fine subfamily on a set s
if
every point x
in s
belongs to arbitrarily small sets in v.sets_at x ∩ f x
. This is precisely
the subfamilies for which the Vitali family definition ensures that one can extract a disjoint
covering of almost all s
.
Given h : v.fine_subfamily_on f s
, then h.index
is a set parametrizing a disjoint
covering of almost every s
.
Given h : v.fine_subfamily_on f s
, then h.covering p
is a set in the family,
for p ∈ h.index
, such that these sets form a disjoint covering of almost every s
.
One can enlarge a Vitali family by adding to the sets f x
at x
all sets which are not
contained in a δ
-neighborhood on x
. This does not change the local filter at a point, but it
can be convenient to get a nicer global behavior.
Equations
- v.enlarge δ δpos = {sets_at := λ (x : α), v.sets_at x ∪ {a : set α | measurable_set a ∧ (interior a).nonempty ∧ ¬a ⊆ metric.closed_ball x δ}, measurable_set' := _, nonempty_interior := _, nontrivial := _, covering := _}
Given a vitali family v
, then v.filter_at x
is the filter on set α
made of those families
that contain all sets of v.sets_at x
of a sufficiently small diameter. This filter makes it
possible to express limiting behavior when sets in v.sets_at x
shrink to x
.