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_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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) = (∫⁻ (a : α), g (↑f a) ∂μ).toReal
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
⊢ integral μ (map (ENNReal.toReal ∘ g) f) = (∫⁻ (a : α), g (↑f a) ∂μ).toReal

tactic: simp only [← map_apply g f, lintegral_eq_lintegral]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
⊢ integral μ (map (ENNReal.toReal ∘ g) f) = (∫⁻ (a : α), g (↑f a) ∂μ).toReal
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
⊢ integral μ (map (ENNReal.toReal ∘ g) f) = ((map g f).lintegral μ).toReal

tactic: rw [map_integral f _ hf, map_lintegral, ENNReal.toReal_sum]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
⊢ integral μ (map (ENNReal.toReal ∘ g) f) = ((map g f).lintegral μ).toReal
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
⊢ ∑ x ∈ f.range, (μ (↑f ⁻¹' {x})).toReal • (ENNReal.toReal ∘ g) x = ∑ a ∈ f.range, (g a * μ (↑f ⁻¹' {a})).toReal

α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
⊢ ∀ a ∈ f.range, g a * μ (↑f ⁻¹' {a}) ≠ ⊤

α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
⊢ (ENNReal.toReal ∘ g) 0 = 0

tactic: refine Finset.sum_congr rfl fun b _ => ?_
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
⊢ ∑ x ∈ f.range, (μ (↑f ⁻¹' {x})).toReal • (ENNReal.toReal ∘ g) x = ∑ a ∈ f.range, (g a * μ (↑f ⁻¹' {a})).toReal
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
b : E
x✝ : b ∈ f.range
⊢ (μ (↑f ⁻¹' {b})).toReal • (ENNReal.toReal ∘ g) b = (g b * μ (↑f ⁻¹' {b})).toReal

tactic: rw [smul_eq_mul, toReal_mul, mul_comm, Function.comp_apply]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
b : E
x✝ : b ∈ f.range
⊢ (μ (↑f ⁻¹' {b})).toReal • (ENNReal.toReal ∘ g) b = (g b * μ (↑f ⁻¹' {b})).toReal
state_after: no goals

tactic: rintro a -
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
⊢ ∀ a ∈ f.range, g a * μ (↑f ⁻¹' {a}) ≠ ⊤
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
a : E
⊢ g a * μ (↑f ⁻¹' {a}) ≠ ⊤

tactic: by_cases a0 : a = 0
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
a : E
⊢ g a * μ (↑f ⁻¹' {a}) ≠ ⊤
state_after: case pos
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
a : E
a0 : a = 0
⊢ g a * μ (↑f ⁻¹' {a}) ≠ ⊤

case neg
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
a : E
a0 : ¬a = 0
⊢ g a * μ (↑f ⁻¹' {a}) ≠ ⊤

tactic: rw [a0, hg0, zero_mul]
state_before: case pos
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
a : E
a0 : a = 0
⊢ g a * μ (↑f ⁻¹' {a}) ≠ ⊤
state_after: case pos
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
a : E
a0 : a = 0
⊢ 0 ≠ ⊤

tactic: exact WithTop.zero_ne_top
state_before: case pos
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
a : E
a0 : a = 0
⊢ 0 ≠ ⊤
state_after: no goals

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_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
a : E
a0 : ¬a = 0
⊢ g a * μ (↑f ⁻¹' {a}) ≠ ⊤
state_after: no goals

tactic: simp [hg0]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
p : ℝ≥0∞
G : Type u_5
F' : Type u_6
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' : f.FinMeasSupp μ
⊢ (ENNReal.toReal ∘ g) 0 = 0
state_after: no goals