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

tactic: refine' null_of_locally_null _ fun x _ => _
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
⊢ ↑↑μ {x | limRatioMeas v hρ x = ⊤} = 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.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
⊢ ∃ u, u ∈ 𝓝[{x | limRatioMeas v hρ x = ⊤}] x ∧ ↑↑μ u = 0

tactic: let s := {x : α | v.limRatioMeas hρ x = ∞} ∩ o
state_before: case intro.intro.intro
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
⊢ ∃ u, u ∈ 𝓝[{x | limRatioMeas v hρ x = ⊤}] x ∧ ↑↑μ u = 0

tactic: refine' ⟨s, inter_mem_nhdsWithin _ (o_open.mem_nhds xo), le_antisymm _ bot_le⟩
state_before: case intro.intro.intro
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
s : Set α := {x | limRatioMeas v hρ x = ⊤} ∩ o
⊢ ∃ u, u ∈ 𝓝[{x | limRatioMeas v hρ x = ⊤}] x ∧ ↑↑μ u = 0

tactic: have ρs : ρ s ≠ ∞ := ((measure_mono (inter_subset_right _ _)).trans_lt μo).ne
state_before: case intro.intro.intro
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
s : Set α := {x | limRatioMeas v hρ x = ⊤} ∩ o
⊢ ↑↑μ s ≤ 0

tactic: have B : Tendsto (fun q : ℝ≥0 => (q : ℝ≥0∞)⁻¹ * ρ s) atTop (𝓝 (∞⁻¹ * ρ s)) := by
  apply ENNReal.Tendsto.mul_const _ (Or.inr ρs)
  exact ENNReal.tendsto_inv_iff.2 (ENNReal.tendsto_coe_nhds_top.2 tendsto_id)
state_before: case intro.intro.intro
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
s : Set α := {x | limRatioMeas v hρ x = ⊤} ∩ o
ρs : ↑↑ρ s ≠ ⊤
A : ∀ (q : ℝ≥0), 1 ≤ q → ↑↑μ s ≤ (↑q)⁻¹ * ↑↑ρ s
⊢ ↑↑μ s ≤ 0

tactic: simp only [MulZeroClass.zero_mul, ENNReal.inv_top] at B
state_before: case intro.intro.intro
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
s : Set α := {x | limRatioMeas v hρ x = ⊤} ∩ o
ρs : ↑↑ρ s ≠ ⊤
A : ∀ (q : ℝ≥0), 1 ≤ q → ↑↑μ s ≤ (↑q)⁻¹ * ↑↑ρ s
B : Tendsto (fun q => (↑q)⁻¹ * ↑↑ρ s) atTop (𝓝 (⊤⁻¹ * ↑↑ρ s))
⊢ ↑↑μ s ≤ 0

tactic: apply ge_of_tendsto B
state_before: case intro.intro.intro
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
s : Set α := {x | limRatioMeas v hρ x = ⊤} ∩ o
ρs : ↑↑ρ s ≠ ⊤
A : ∀ (q : ℝ≥0), 1 ≤ q → ↑↑μ s ≤ (↑q)⁻¹ * ↑↑ρ s
B : Tendsto (fun q => (↑q)⁻¹ * ↑↑ρ ({x | limRatioMeas v hρ x = ⊤} ∩ o)) atTop (𝓝 0)
⊢ ↑↑μ s ≤ 0

tactic: exact eventually_atTop.2 ⟨1, A⟩
state_before: case intro.intro.intro
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
s : Set α := {x | limRatioMeas v hρ x = ⊤} ∩ o
ρs : ↑↑ρ s ≠ ⊤
A : ∀ (q : ℝ≥0), 1 ≤ q → ↑↑μ s ≤ (↑q)⁻¹ * ↑↑ρ s
B : Tendsto (fun q => (↑q)⁻¹ * ↑↑ρ ({x | limRatioMeas v hρ x = ⊤} ∩ o)) atTop (𝓝 0)
⊢ ∀ᶠ (c : ℝ≥0) in atTop, ↑↑μ s ≤ (↑c)⁻¹ * ↑↑ρ ({x | limRatioMeas v hρ x = ⊤} ∩ o)

tactic: intro q hq
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
s : Set α := {x | limRatioMeas v hρ x = ⊤} ∩ o
ρs : ↑↑ρ s ≠ ⊤
⊢ ∀ (q : ℝ≥0), 1 ≤ q → ↑↑μ s ≤ (↑q)⁻¹ * ↑↑ρ s

tactic: rw [mul_comm, ← div_eq_mul_inv, ENNReal.le_div_iff_mul_le _ (Or.inr ρs), mul_comm]
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
s : Set α := {x | limRatioMeas v hρ x = ⊤} ∩ o
ρs : ↑↑ρ s ≠ ⊤
q : ℝ≥0
hq : 1 ≤ q
⊢ ↑↑μ s ≤ (↑q)⁻¹ * ↑↑ρ s

tactic: apply v.mul_measure_le_of_subset_lt_limRatioMeas hρ
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
s : Set α := {x | limRatioMeas v hρ x = ⊤} ∩ o
ρs : ↑↑ρ s ≠ ⊤
q : ℝ≥0
hq : 1 ≤ q
⊢ ↑q * ↑↑μ s ≤ ↑↑ρ s

tactic: intro y hy
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
s : Set α := {x | limRatioMeas v hρ x = ⊤} ∩ o
ρs : ↑↑ρ s ≠ ⊤
q : ℝ≥0
hq : 1 ≤ q
⊢ s ⊆ {x | ↑q < limRatioMeas v hρ x}

tactic: have : v.limRatioMeas hρ y = ∞ := hy.1
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
s : Set α := {x | limRatioMeas v hρ x = ⊤} ∩ o
ρs : ↑↑ρ s ≠ ⊤
q : ℝ≥0
hq : 1 ≤ q
y : α
hy : y ∈ s
⊢ y ∈ {x | ↑q < limRatioMeas v hρ x}

tactic: simp only [this, ENNReal.coe_lt_top, mem_setOf_eq]
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
s : Set α := {x | limRatioMeas v hρ x = ⊤} ∩ o
ρs : ↑↑ρ s ≠ ⊤
q : ℝ≥0
hq : 1 ≤ q
y : α
hy : y ∈ s
this : limRatioMeas v hρ y = ⊤
⊢ y ∈ {x | ↑q < limRatioMeas v hρ x}

tactic: simp only [(zero_lt_one.trans_le hq).ne', true_or_iff, ENNReal.coe_eq_zero, Ne.def,
  not_false_iff]
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
s : Set α := {x | limRatioMeas v hρ x = ⊤} ∩ o
ρs : ↑↑ρ s ≠ ⊤
q : ℝ≥0
hq : 1 ≤ q
⊢ ↑q ≠ 0 ∨ ↑↑ρ s ≠ 0

tactic: apply ENNReal.Tendsto.mul_const _ (Or.inr ρs)
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
s : Set α := {x | limRatioMeas v hρ x = ⊤} ∩ o
ρs : ↑↑ρ s ≠ ⊤
A : ∀ (q : ℝ≥0), 1 ≤ q → ↑↑μ s ≤ (↑q)⁻¹ * ↑↑ρ s
⊢ Tendsto (fun q => (↑q)⁻¹ * ↑↑ρ s) atTop (𝓝 (⊤⁻¹ * ↑↑ρ s))

tactic: exact ENNReal.tendsto_inv_iff.2 (ENNReal.tendsto_coe_nhds_top.2 tendsto_id)
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.4203614
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
x✝ : x ∈ {x | limRatioMeas v hρ x = ⊤}
o : Set α
xo : x ∈ o
o_open : IsOpen o
μo : ↑↑ρ o < ⊤
s : Set α := {x | limRatioMeas v hρ x = ⊤} ∩ o
ρs : ↑↑ρ s ≠ ⊤
A : ∀ (q : ℝ≥0), 1 ≤ q → ↑↑μ s ≤ (↑q)⁻¹ * ↑↑ρ s
⊢ Tendsto (fun x => (↑x)⁻¹) atTop (𝓝 ⊤⁻¹)