Theorem: VitaliFamily.null_of_frequently_le_of_frequently_ge
File: Mathlib/MeasureTheory/Covering/Differentiation.lean

tactic: apply null_of_locally_null s fun x _ => ?_
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.1791566
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
c d : ℝ≥0
hcd : c < d
s : Set α
hc : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑↑ρ a ≤ ↑c * ↑↑μ a
hd : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑d * ↑↑μ a ≤ ↑↑ρ a
⊢ ↑↑μ s = 0

tactic: obtain ⟨o, xo, o_open, μo⟩ : ∃ o : Set α, x ∈ o ∧ IsOpen o ∧ μ o < ∞ :=
  Measure.exists_isOpen_measure_lt_top μ x
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.1791566
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
c d : ℝ≥0
hcd : c < d
s : Set α
hc : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑↑ρ a ≤ ↑c * ↑↑μ a
hd : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑d * ↑↑μ a ≤ ↑↑ρ a
x : α
x✝ : x ∈ s
⊢ ∃ u, u ∈ 𝓝[s] x ∧ ↑↑μ u = 0

tactic: refine' ⟨s ∩ o, inter_mem_nhdsWithin _ (o_open.mem_nhds xo), _⟩
state_before: case intro.intro.intro
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.1791566
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
c d : ℝ≥0
hcd : c < d
s : Set α
hc : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑↑ρ a ≤ ↑c * ↑↑μ a
hd : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑d * ↑↑μ a ≤ ↑↑ρ a
x : α
x✝ : x ∈ s
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑μ o < ⊤
⊢ ∃ u, u ∈ 𝓝[s] x ∧ ↑↑μ u = 0

tactic: let s' := s ∩ o
state_before: case intro.intro.intro
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.1791566
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
c d : ℝ≥0
hcd : c < d
s : Set α
hc : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑↑ρ a ≤ ↑c * ↑↑μ a
hd : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑d * ↑↑μ a ≤ ↑↑ρ a
x : α
x✝ : x ∈ s
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑μ o < ⊤
⊢ ↑↑μ (s ∩ o) = 0

tactic: by_contra h
state_before: case intro.intro.intro
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.1791566
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
c d : ℝ≥0
hcd : c < d
s : Set α
hc : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑↑ρ a ≤ ↑c * ↑↑μ a
hd : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑d * ↑↑μ a ≤ ↑↑ρ a
x : α
x✝ : x ∈ s
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑μ o < ⊤
s' : Set α := s ∩ o
⊢ ↑↑μ (s ∩ o) = 0

tactic: apply lt_irrefl (ρ s')
state_before: case intro.intro.intro
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.1791566
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
c d : ℝ≥0
hcd : c < d
s : Set α
hc : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑↑ρ a ≤ ↑c * ↑↑μ a
hd : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑d * ↑↑μ a ≤ ↑↑ρ a
x : α
x✝ : x ∈ s
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑μ o < ⊤
s' : Set α := s ∩ o
h : ¬↑↑μ (s ∩ o) = 0
⊢ False

tactic: calc
  ρ s' ≤ c * μ s' := v.measure_le_of_frequently_le (c • μ) hρ s' fun x hx => hc x hx.1
  _ < d * μ s' := by
    apply (ENNReal.mul_lt_mul_right h _).2 (ENNReal.coe_lt_coe.2 hcd)
    exact (lt_of_le_of_lt (measure_mono (inter_subset_right _ _)) μo).ne
  _ ≤ ρ s' :=
    v.measure_le_of_frequently_le ρ ((Measure.AbsolutelyContinuous.refl μ).smul d) s' fun x hx =>
      hd x hx.1
state_before: case intro.intro.intro
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.1791566
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
c d : ℝ≥0
hcd : c < d
s : Set α
hc : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑↑ρ a ≤ ↑c * ↑↑μ a
hd : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑d * ↑↑μ a ≤ ↑↑ρ a
x : α
x✝ : x ∈ s
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑μ o < ⊤
s' : Set α := s ∩ o
h : ¬↑↑μ (s ∩ o) = 0
⊢ ↑↑ρ s' < ↑↑ρ s'

tactic: apply (ENNReal.mul_lt_mul_right h _).2 (ENNReal.coe_lt_coe.2 hcd)
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.1791566
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
c d : ℝ≥0
hcd : c < d
s : Set α
hc : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑↑ρ a ≤ ↑c * ↑↑μ a
hd : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑d * ↑↑μ a ≤ ↑↑ρ a
x : α
x✝ : x ∈ s
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑μ o < ⊤
s' : Set α := s ∩ o
h : ¬↑↑μ (s ∩ o) = 0
⊢ ↑c * ↑↑μ s' < ↑d * ↑↑μ s'

tactic: exact (lt_of_le_of_lt (measure_mono (inter_subset_right _ _)) μo).ne
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.1791566
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
c d : ℝ≥0
hcd : c < d
s : Set α
hc : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑↑ρ a ≤ ↑c * ↑↑μ a
hd : ∀ (x : α), x ∈ s → ∃ᶠ (a : Set α) in filterAt v x, ↑d * ↑↑μ a ≤ ↑↑ρ a
x : α
x✝ : x ∈ s
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑μ o < ⊤
s' : Set α := s ∩ o
h : ¬↑↑μ (s ∩ o) = 0
⊢ ↑↑μ (s ∩ o) ≠ ⊤