Theorem: MeasureTheory.toFiniteAux_eq_zero_iff
File: Mathlib/MeasureTheory/Measure/WithDensityFinite.lean

tactic: refine ⟨fun h ↦ ?_, fun h ↦ by simp [h, toFiniteAux_zero]⟩
state_before: α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
⊢ μ.toFiniteAux = 0 ↔ μ = 0
state_after: α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
h : μ.toFiniteAux = 0
⊢ μ = 0

tactic: ext s hs
state_before: α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
h : μ.toFiniteAux = 0
⊢ μ = 0
state_after: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
h : μ.toFiniteAux = 0
s : Set α
hs : MeasurableSet s
⊢ μ s = 0 s

tactic: rw [Measure.ext_iff] at h
state_before: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
h : μ.toFiniteAux = 0
s : Set α
hs : MeasurableSet s
⊢ μ s = 0 s
state_after: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
h : ∀ (s : Set α), MeasurableSet s → μ.toFiniteAux s = 0 s
s : Set α
hs : MeasurableSet s
⊢ μ s = 0 s

tactic: specialize h s hs
state_before: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
h : ∀ (s : Set α), MeasurableSet s → μ.toFiniteAux s = 0 s
s : Set α
hs : MeasurableSet s
⊢ μ s = 0 s
state_after: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
s : Set α
hs : MeasurableSet s
h : μ.toFiniteAux s = 0 s
⊢ μ s = 0 s

tactic: simp only [toFiniteAux_apply, Measure.coe_zero, Pi.zero_apply,
  ENNReal.tsum_eq_zero, mul_eq_zero, ENNReal.inv_eq_zero] at h
state_before: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
s : Set α
hs : MeasurableSet s
h : μ.toFiniteAux s = 0 s
⊢ μ s = 0 s
state_after: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
s : Set α
hs : MeasurableSet s
h : ∀ (i : ℕ), 2 ^ (i + 1) * (sFiniteSeq μ i) Set.univ = ⊤ ∨ (sFiniteSeq μ i) s = 0
⊢ μ s = 0 s

tactic: rw [← sum_sFiniteSeq μ, Measure.sum_apply _ hs]
state_before: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
s : Set α
hs : MeasurableSet s
h : ∀ (i : ℕ), 2 ^ (i + 1) * (sFiniteSeq μ i) Set.univ = ⊤ ∨ (sFiniteSeq μ i) s = 0
⊢ μ s = 0 s
state_after: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
s : Set α
hs : MeasurableSet s
h : ∀ (i : ℕ), 2 ^ (i + 1) * (sFiniteSeq μ i) Set.univ = ⊤ ∨ (sFiniteSeq μ i) s = 0
⊢ ∑' (i : ℕ), (sFiniteSeq μ i) s = 0 s

tactic: simp only [Measure.coe_zero, Pi.zero_apply, ENNReal.tsum_eq_zero]
state_before: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
s : Set α
hs : MeasurableSet s
h : ∀ (i : ℕ), 2 ^ (i + 1) * (sFiniteSeq μ i) Set.univ = ⊤ ∨ (sFiniteSeq μ i) s = 0
⊢ ∑' (i : ℕ), (sFiniteSeq μ i) s = 0 s
state_after: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
s : Set α
hs : MeasurableSet s
h : ∀ (i : ℕ), 2 ^ (i + 1) * (sFiniteSeq μ i) Set.univ = ⊤ ∨ (sFiniteSeq μ i) s = 0
⊢ ∀ (i : ℕ), (sFiniteSeq μ i) s = 0

tactic: intro n
state_before: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
s : Set α
hs : MeasurableSet s
h : ∀ (i : ℕ), 2 ^ (i + 1) * (sFiniteSeq μ i) Set.univ = ⊤ ∨ (sFiniteSeq μ i) s = 0
⊢ ∀ (i : ℕ), (sFiniteSeq μ i) s = 0
state_after: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
s : Set α
hs : MeasurableSet s
h : ∀ (i : ℕ), 2 ^ (i + 1) * (sFiniteSeq μ i) Set.univ = ⊤ ∨ (sFiniteSeq μ i) s = 0
n : ℕ
⊢ (sFiniteSeq μ n) s = 0

tactic: specialize h n
state_before: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
s : Set α
hs : MeasurableSet s
h : ∀ (i : ℕ), 2 ^ (i + 1) * (sFiniteSeq μ i) Set.univ = ⊤ ∨ (sFiniteSeq μ i) s = 0
n : ℕ
⊢ (sFiniteSeq μ n) s = 0
state_after: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
s : Set α
hs : MeasurableSet s
n : ℕ
h : 2 ^ (n + 1) * (sFiniteSeq μ n) Set.univ = ⊤ ∨ (sFiniteSeq μ n) s = 0
⊢ (sFiniteSeq μ n) s = 0

tactic: simpa [ENNReal.mul_eq_top, measure_ne_top] using h
state_before: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
s : Set α
hs : MeasurableSet s
n : ℕ
h : 2 ^ (n + 1) * (sFiniteSeq μ n) Set.univ = ⊤ ∨ (sFiniteSeq μ n) s = 0
⊢ (sFiniteSeq μ n) s = 0
state_after: no goals

tactic: simp [h, toFiniteAux_zero]
state_before: α : Type u_1
mα : MeasurableSpace α
μ : Measure α
inst✝ : SFinite μ
h : μ = 0
⊢ μ.toFiniteAux = 0
state_after: no goals