Theorem: MeasureTheory.SimpleFunc.integral_eq_lintegral'
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: have hf' : f.FinMeasSupp μ := integrable_iff_finMeasSupp.1 hf
state_before: α : Type u_1
E : Type u_2
F : Type ?u.139356
𝕜 : Type ?u.139359
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type ?u.139461
F' : Type ?u.139464
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
f : α →ₛ E
g : E → ℝ≥0∞
hf : Integrable ↑f
hg0 : g 0 = 0
ht : ∀ (b : E), g b ≠ ⊤
⊢ integral μ (map (ENNReal.toReal ∘ g) f) = ENNReal.toReal (∫⁻ (a : α), g (↑f a) ∂μ)

tactic: simp only [← map_apply g f, lintegral_eq_lintegral]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.139356
𝕜 : Type ?u.139359
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type ?u.139461
F' : Type ?u.139464
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
f : α →ₛ E
g : E → ℝ≥0∞
hf : Integrable ↑f
hg0 : g 0 = 0
ht : ∀ (b : E), g b ≠ ⊤
hf' : SimpleFunc.FinMeasSupp f μ
⊢ integral μ (map (ENNReal.toReal ∘ g) f) = ENNReal.toReal (∫⁻ (a : α), g (↑f a) ∂μ)

tactic: rw [map_integral f _ hf, map_lintegral, ENNReal.toReal_sum]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.139356
𝕜 : Type ?u.139359
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type ?u.139461
F' : Type ?u.139464
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
f : α →ₛ E
g : E → ℝ≥0∞
hf : Integrable ↑f
hg0 : g 0 = 0
ht : ∀ (b : E), g b ≠ ⊤
hf' : SimpleFunc.FinMeasSupp f μ
⊢ integral μ (map (ENNReal.toReal ∘ g) f) = ENNReal.toReal (lintegral (map g f) μ)

tactic: refine' Finset.sum_congr rfl fun b _ => _
state_before: α : Type u_1
E : Type u_2
F : Type ?u.139356
𝕜 : Type ?u.139359
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type ?u.139461
F' : Type ?u.139464
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
f : α →ₛ E
g : E → ℝ≥0∞
hf : Integrable ↑f
hg0 : g 0 = 0
ht : ∀ (b : E), g b ≠ ⊤
hf' : SimpleFunc.FinMeasSupp f μ
⊢ ∑ x in SimpleFunc.range f, ENNReal.toReal (↑↑μ (↑f ⁻¹' {x})) • (ENNReal.toReal ∘ g) x =
    ∑ a in SimpleFunc.range f, ENNReal.toReal (g a * ↑↑μ (↑f ⁻¹' {a}))

tactic: rw [smul_eq_mul, toReal_mul, mul_comm, Function.comp_apply]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.139356
𝕜 : Type ?u.139359
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type ?u.139461
F' : Type ?u.139464
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
f : α →ₛ E
g : E → ℝ≥0∞
hf : Integrable ↑f
hg0 : g 0 = 0
ht : ∀ (b : E), g b ≠ ⊤
hf' : SimpleFunc.FinMeasSupp f μ
b : E
x✝ : b ∈ SimpleFunc.range f
⊢ ENNReal.toReal (↑↑μ (↑f ⁻¹' {b})) • (ENNReal.toReal ∘ g) b = ENNReal.toReal (g b * ↑↑μ (↑f ⁻¹' {b}))

tactic: rintro a -
state_before: α : Type u_1
E : Type u_2
F : Type ?u.139356
𝕜 : Type ?u.139359
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type ?u.139461
F' : Type ?u.139464
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
f : α →ₛ E
g : E → ℝ≥0∞
hf : Integrable ↑f
hg0 : g 0 = 0
ht : ∀ (b : E), g b ≠ ⊤
hf' : SimpleFunc.FinMeasSupp f μ
⊢ ∀ (a : E), a ∈ SimpleFunc.range f → g a * ↑↑μ (↑f ⁻¹' {a}) ≠ ⊤

tactic: by_cases a0 : a = 0
state_before: α : Type u_1
E : Type u_2
F : Type ?u.139356
𝕜 : Type ?u.139359
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type ?u.139461
F' : Type ?u.139464
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
f : α →ₛ E
g : E → ℝ≥0∞
hf : Integrable ↑f
hg0 : g 0 = 0
ht : ∀ (b : E), g b ≠ ⊤
hf' : SimpleFunc.FinMeasSupp f μ
a : E
⊢ g a * ↑↑μ (↑f ⁻¹' {a}) ≠ ⊤

tactic: rw [a0, hg0, MulZeroClass.zero_mul]
state_before: case pos
α : Type u_1
E : Type u_2
F : Type ?u.139356
𝕜 : Type ?u.139359
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type ?u.139461
F' : Type ?u.139464
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
f : α →ₛ E
g : E → ℝ≥0∞
hf : Integrable ↑f
hg0 : g 0 = 0
ht : ∀ (b : E), g b ≠ ⊤
hf' : SimpleFunc.FinMeasSupp f μ
a : E
a0 : a = 0
⊢ g a * ↑↑μ (↑f ⁻¹' {a}) ≠ ⊤

tactic: exact WithTop.zero_ne_top
state_before: case pos
α : Type u_1
E : Type u_2
F : Type ?u.139356
𝕜 : Type ?u.139359
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type ?u.139461
F' : Type ?u.139464
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
f : α →ₛ E
g : E → ℝ≥0∞
hf : Integrable ↑f
hg0 : g 0 = 0
ht : ∀ (b : E), g b ≠ ⊤
hf' : SimpleFunc.FinMeasSupp f μ
a : E
a0 : a = 0
⊢ 0 ≠ ⊤

tactic: apply mul_ne_top (ht a) (hf'.meas_preimage_singleton_ne_zero a0).ne
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.139356
𝕜 : Type ?u.139359
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type ?u.139461
F' : Type ?u.139464
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
f : α →ₛ E
g : E → ℝ≥0∞
hf : Integrable ↑f
hg0 : g 0 = 0
ht : ∀ (b : E), g b ≠ ⊤
hf' : SimpleFunc.FinMeasSupp f μ
a : E
a0 : ¬a = 0
⊢ g a * ↑↑μ (↑f ⁻¹' {a}) ≠ ⊤

tactic: simp [hg0]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.139356
𝕜 : Type ?u.139359
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type ?u.139461
F' : Type ?u.139464
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
f : α →ₛ E
g : E → ℝ≥0∞
hf : Integrable ↑f
hg0 : g 0 = 0
ht : ∀ (b : E), g b ≠ ⊤
hf' : SimpleFunc.FinMeasSupp f μ
⊢ (ENNReal.toReal ∘ g) 0 = 0