Theorem: MeasureTheory.SimpleFunc.FinMeasSupp.lintegral_lt_top
File: Mathlib/MeasureTheory/Function/SimpleFunc.lean

tactic: refine sum_lt_top fun a ha => ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f✝ : α →ₛ β
f : α →ₛ ℝ≥0∞
hm : f.FinMeasSupp μ
hf : ∀ᵐ (a : α) ∂μ, ↑f a ≠ ⊤
⊢ f.lintegral μ < ⊤
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f✝ : α →ₛ β
f : α →ₛ ℝ≥0∞
hm : f.FinMeasSupp μ
hf : ∀ᵐ (a : α) ∂μ, ↑f a ≠ ⊤
a : ℝ≥0∞
ha : a ∈ f.range
⊢ a * μ (↑f ⁻¹' {a}) ≠ ⊤

tactic: rcases eq_or_ne a ∞ with (rfl | ha)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f✝ : α →ₛ β
f : α →ₛ ℝ≥0∞
hm : f.FinMeasSupp μ
hf : ∀ᵐ (a : α) ∂μ, ↑f a ≠ ⊤
a : ℝ≥0∞
ha : a ∈ f.range
⊢ a * μ (↑f ⁻¹' {a}) ≠ ⊤
state_after: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f✝ : α →ₛ β
f : α →ₛ ℝ≥0∞
hm : f.FinMeasSupp μ
hf : ∀ᵐ (a : α) ∂μ, ↑f a ≠ ⊤
ha : ⊤ ∈ f.range
⊢ ⊤ * μ (↑f ⁻¹' {⊤}) ≠ ⊤

case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f✝ : α →ₛ β
f : α →ₛ ℝ≥0∞
hm : f.FinMeasSupp μ
hf : ∀ᵐ (a : α) ∂μ, ↑f a ≠ ⊤
a : ℝ≥0∞
ha✝ : a ∈ f.range
ha : a ≠ ⊤
⊢ a * μ (↑f ⁻¹' {a}) ≠ ⊤

tactic: simp only [ae_iff, Ne, Classical.not_not] at hf
state_before: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f✝ : α →ₛ β
f : α →ₛ ℝ≥0∞
hm : f.FinMeasSupp μ
hf : ∀ᵐ (a : α) ∂μ, ↑f a ≠ ⊤
ha : ⊤ ∈ f.range
⊢ ⊤ * μ (↑f ⁻¹' {⊤}) ≠ ⊤
state_after: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f✝ : α →ₛ β
f : α →ₛ ℝ≥0∞
hm : f.FinMeasSupp μ
ha : ⊤ ∈ f.range
hf : μ {a | ↑f a = ⊤} = 0
⊢ ⊤ * μ (↑f ⁻¹' {⊤}) ≠ ⊤

tactic: simp [Set.preimage, hf]
state_before: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f✝ : α →ₛ β
f : α →ₛ ℝ≥0∞
hm : f.FinMeasSupp μ
ha : ⊤ ∈ f.range
hf : μ {a | ↑f a = ⊤} = 0
⊢ ⊤ * μ (↑f ⁻¹' {⊤}) ≠ ⊤
state_after: no goals

tactic: by_cases ha0 : a = 0
state_before: case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f✝ : α →ₛ β
f : α →ₛ ℝ≥0∞
hm : f.FinMeasSupp μ
hf : ∀ᵐ (a : α) ∂μ, ↑f a ≠ ⊤
a : ℝ≥0∞
ha✝ : a ∈ f.range
ha : a ≠ ⊤
⊢ a * μ (↑f ⁻¹' {a}) ≠ ⊤
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f✝ : α →ₛ β
f : α →ₛ ℝ≥0∞
hm : f.FinMeasSupp μ
hf : ∀ᵐ (a : α) ∂μ, ↑f a ≠ ⊤
a : ℝ≥0∞
ha✝ : a ∈ f.range
ha : a ≠ ⊤
ha0 : a = 0
⊢ a * μ (↑f ⁻¹' {a}) ≠ ⊤

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f✝ : α →ₛ β
f : α →ₛ ℝ≥0∞
hm : f.FinMeasSupp μ
hf : ∀ᵐ (a : α) ∂μ, ↑f a ≠ ⊤
a : ℝ≥0∞
ha✝ : a ∈ f.range
ha : a ≠ ⊤
ha0 : ¬a = 0
⊢ a * μ (↑f ⁻¹' {a}) ≠ ⊤

tactic: subst a
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f✝ : α →ₛ β
f : α →ₛ ℝ≥0∞
hm : f.FinMeasSupp μ
hf : ∀ᵐ (a : α) ∂μ, ↑f a ≠ ⊤
a : ℝ≥0∞
ha✝ : a ∈ f.range
ha : a ≠ ⊤
ha0 : a = 0
⊢ a * μ (↑f ⁻¹' {a}) ≠ ⊤
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f✝ : α →ₛ β
f : α →ₛ ℝ≥0∞
hm : f.FinMeasSupp μ
hf : ∀ᵐ (a : α) ∂μ, ↑f a ≠ ⊤
ha✝ : 0 ∈ f.range
ha : 0 ≠ ⊤
⊢ 0 * μ (↑f ⁻¹' {0}) ≠ ⊤

tactic: rwa [zero_mul]
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f✝ : α →ₛ β
f : α →ₛ ℝ≥0∞
hm : f.FinMeasSupp μ
hf : ∀ᵐ (a : α) ∂μ, ↑f a ≠ ⊤
ha✝ : 0 ∈ f.range
ha : 0 ≠ ⊤
⊢ 0 * μ (↑f ⁻¹' {0}) ≠ ⊤
state_after: no goals

tactic: exact mul_ne_top ha (finMeasSupp_iff.1 hm _ ha0).ne
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
inst✝¹ : Zero β
inst✝ : Zero γ
μ : Measure α
f✝ : α →ₛ β
f : α →ₛ ℝ≥0∞
hm : f.FinMeasSupp μ
hf : ∀ᵐ (a : α) ∂μ, ↑f a ≠ ⊤
a : ℝ≥0∞
ha✝ : a ∈ f.range
ha : a ≠ ⊤
ha0 : ¬a = 0
⊢ a * μ (↑f ⁻¹' {a}) ≠ ⊤
state_after: no goals