Documentation

Mathlib.MeasureTheory.Covering.VitaliFamily

Vitali families #

On a metric space X with a measure μ, consider for each x : X a family of measurable sets with nonempty interiors, called setsAt 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 setsAt 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:

Main definitions #

Let v be such a Vitali family.

References #

structure VitaliFamily {α : Type u_1} [MetricSpace α] {m : MeasurableSpace α} (μ : MeasureTheory.Measure α) :
Type u_1

On a metric space X with a measure μ, consider for each x : X a family of measurable sets with nonempty interiors, called setsAt 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 setsAt 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.

  • setsAt : αSet (Set α)

    Sets of the family "centered" at a given point.

  • measurableSet : ∀ (x : α), sself.setsAt x, MeasurableSet s

    All sets of the family are measurable.

  • nonempty_interior : ∀ (x : α), sself.setsAt x, Set.Nonempty (interior s)

    All sets of the family have nonempty interior.

  • nontrivial : ∀ (x : α), ε > 0, ∃ s ∈ self.setsAt x, s Metric.closedBall x ε

    For any closed ball around x, there exists a set of the family contained in this ball.

  • covering : ∀ (s : Set α) (f : αSet (Set α)), (xs, f x self.setsAt x)(xs, ε > 0, ∃ a ∈ f x, a Metric.closedBall x ε)∃ (t : Set (α × Set α)), (pt, p.1 s) (Set.PairwiseDisjoint t fun (p : α × Set α) => p.2) (pt, p.2 f p.1) μ (s \ ⋃ p ∈ t, p.2) = 0

    Consider a (possibly non-measurable) set s, and for any x in s a subfamily f x of setsAt x containing sets of arbitrarily small diameter. Then one can extract a disjoint subfamily covering almost all s.

Instances For

    A Vitali family for a measure μ is also a Vitali family for any measure absolutely continuous with respect to μ.

    Equations
    • VitaliFamily.mono v ν = let __spread.0 := v; { setsAt := __spread.0.setsAt, measurableSet := , nonempty_interior := , nontrivial := , covering := }
    Instances For
      def VitaliFamily.FineSubfamilyOn {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} (v : VitaliFamily μ) (f : αSet (Set α)) (s : Set α) :

      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.setsAt 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.

      Equations
      Instances For
        theorem VitaliFamily.FineSubfamilyOn.exists_disjoint_covering_ae {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} {v : VitaliFamily μ} {f : αSet (Set α)} {s : Set α} (h : VitaliFamily.FineSubfamilyOn v f s) :
        ∃ (t : Set (α × Set α)), (pt, p.1 s) (Set.PairwiseDisjoint t fun (p : α × Set α) => p.2) (pt, p.2 v.setsAt p.1 f p.1) μ (s \ ⋃ p ∈ t, p.2) = 0
        def VitaliFamily.FineSubfamilyOn.index {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} {v : VitaliFamily μ} {f : αSet (Set α)} {s : Set α} (h : VitaliFamily.FineSubfamilyOn v f s) :
        Set (α × Set α)

        Given h : v.FineSubfamilyOn f s, then h.index is a set parametrizing a disjoint covering of almost every s.

        Equations
        Instances For
          def VitaliFamily.FineSubfamilyOn.covering {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} {v : VitaliFamily μ} {f : αSet (Set α)} {s : Set α} (_h : VitaliFamily.FineSubfamilyOn v f s) :
          α × Set αSet α

          Given h : v.FineSubfamilyOn 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.

          Equations
          Instances For
            theorem VitaliFamily.FineSubfamilyOn.index_subset {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} {v : VitaliFamily μ} {f : αSet (Set α)} {s : Set α} (h : VitaliFamily.FineSubfamilyOn v f s) (p : α × Set α) :
            def VitaliFamily.enlarge {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} (v : VitaliFamily μ) (δ : ) (δpos : 0 < δ) :

            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
            • One or more equations did not get rendered due to their size.
            Instances For
              def VitaliFamily.filterAt {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} (v : VitaliFamily μ) (x : α) :
              Filter (Set α)

              Given a vitali family v, then v.filterAt x is the filter on Set α made of those families that contain all sets of v.setsAt x of a sufficiently small diameter. This filter makes it possible to express limiting behavior when sets in v.setsAt x shrink to x.

              Equations
              Instances For
                theorem Filter.HasBasis.vitaliFamily {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} (v : VitaliFamily μ) {ι : Sort u_2} {p : ιProp} {s : ιSet α} {x : α} (h : Filter.HasBasis (nhds x) p s) :
                Filter.HasBasis (VitaliFamily.filterAt v x) p fun (i : ι) => {t : Set α | t v.setsAt x t s i}
                theorem VitaliFamily.filterAt_basis_closedBall {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} (v : VitaliFamily μ) (x : α) :
                Filter.HasBasis (VitaliFamily.filterAt v x) (fun (x : ) => 0 < x) fun (x_1 : ) => {a : Set α | a v.setsAt x a Metric.closedBall x x_1}
                theorem VitaliFamily.mem_filterAt_iff {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} (v : VitaliFamily μ) {x : α} {s : Set (Set α)} :
                s VitaliFamily.filterAt v x ∃ ε > 0, av.setsAt x, a Metric.closedBall x εa s
                Equations
                • =
                theorem VitaliFamily.eventually_filterAt_iff {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} (v : VitaliFamily μ) {x : α} {P : Set αProp} :
                (∀ᶠ (a : Set α) in VitaliFamily.filterAt v x, P a) ∃ ε > 0, av.setsAt x, a Metric.closedBall x εP a
                theorem VitaliFamily.tendsto_filterAt_iff {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} (v : VitaliFamily μ) {ι : Type u_2} {l : Filter ι} {f : ιSet α} {x : α} :
                Filter.Tendsto f l (VitaliFamily.filterAt v x) (∀ᶠ (i : ι) in l, f i v.setsAt x) ε > 0, ∀ᶠ (i : ι) in l, f i Metric.closedBall x ε
                theorem VitaliFamily.eventually_filterAt_mem_setsAt {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} (v : VitaliFamily μ) (x : α) :
                ∀ᶠ (a : Set α) in VitaliFamily.filterAt v x, a v.setsAt x
                theorem VitaliFamily.eventually_filterAt_subset_closedBall {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} (v : VitaliFamily μ) (x : α) {ε : } (hε : 0 < ε) :
                ∀ᶠ (a : Set α) in VitaliFamily.filterAt v x, a Metric.closedBall x ε
                theorem VitaliFamily.frequently_filterAt_iff {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} (v : VitaliFamily μ) {x : α} {P : Set αProp} :
                (∃ᶠ (a : Set α) in VitaliFamily.filterAt v x, P a) ε > 0, ∃ a ∈ v.setsAt x, a Metric.closedBall x ε P a
                theorem VitaliFamily.eventually_filterAt_subset_of_nhds {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} (v : VitaliFamily μ) {x : α} {o : Set α} (hx : o nhds x) :
                ∀ᶠ (a : Set α) in VitaliFamily.filterAt v x, a o
                theorem VitaliFamily.fineSubfamilyOn_of_frequently {α : Type u_1} [MetricSpace α] {m0 : MeasurableSpace α} {μ : MeasureTheory.Measure α} (v : VitaliFamily μ) (f : αSet (Set α)) (s : Set α) (h : xs, ∃ᶠ (a : Set α) in VitaliFamily.filterAt v x, a f x) :