Theorem: MeasureTheory.SimpleFunc.setToSimpleFunc_add_left'
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: simp_rw [setToSimpleFunc_eq_sum_filter]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.231450
G : Type ?u.231453
𝕜 : Type ?u.231456
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T T' T'' : Set α → E →L[ℝ] F
h_add : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T'' s = T s + T' s
f : α →ₛ E
hf : Integrable ↑f
⊢ setToSimpleFunc T'' f = setToSimpleFunc T f + setToSimpleFunc T' f

tactic: suffices
  ∀ x ∈ filter (fun x : E => x ≠ 0) f.range, T'' (f ⁻¹' {x}) = T (f ⁻¹' {x}) + T' (f ⁻¹' {x}) by
  rw [← sum_add_distrib]
  refine' Finset.sum_congr rfl fun x hx => _
  rw [this x hx]
  push_cast
  rw [Pi.add_apply]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.231450
G : Type ?u.231453
𝕜 : Type ?u.231456
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T T' T'' : Set α → E →L[ℝ] F
h_add : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T'' s = T s + T' s
f : α →ₛ E
hf : Integrable ↑f
⊢ ∑ x in filter (fun x => x ≠ 0) (SimpleFunc.range f), ↑(T'' (↑f ⁻¹' {x})) x =
    ∑ x in filter (fun x => x ≠ 0) (SimpleFunc.range f), ↑(T (↑f ⁻¹' {x})) x +
      ∑ x in filter (fun x => x ≠ 0) (SimpleFunc.range f), ↑(T' (↑f ⁻¹' {x})) x

tactic: intro x hx
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.231450
G : Type ?u.231453
𝕜 : Type ?u.231456
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T T' T'' : Set α → E →L[ℝ] F
h_add : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T'' s = T s + T' s
f : α →ₛ E
hf : Integrable ↑f
⊢ ∀ (x : E), x ∈ filter (fun x => x ≠ 0) (SimpleFunc.range f) → T'' (↑f ⁻¹' {x}) = T (↑f ⁻¹' {x}) + T' (↑f ⁻¹' {x})

tactic: refine'
  h_add (f ⁻¹' {x}) (measurableSet_preimage _ _) (measure_preimage_lt_top_of_integrable _ hf _)
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.231450
G : Type ?u.231453
𝕜 : Type ?u.231456
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T T' T'' : Set α → E →L[ℝ] F
h_add : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T'' s = T s + T' s
f : α →ₛ E
hf : Integrable ↑f
x : E
hx : x ∈ filter (fun x => x ≠ 0) (SimpleFunc.range f)
⊢ T'' (↑f ⁻¹' {x}) = T (↑f ⁻¹' {x}) + T' (↑f ⁻¹' {x})

tactic: rw [mem_filter] at hx
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.231450
G : Type ?u.231453
𝕜 : Type ?u.231456
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T T' T'' : Set α → E →L[ℝ] F
h_add : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T'' s = T s + T' s
f : α →ₛ E
hf : Integrable ↑f
x : E
hx : x ∈ filter (fun x => x ≠ 0) (SimpleFunc.range f)
⊢ x ≠ 0

tactic: exact hx.2
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.231450
G : Type ?u.231453
𝕜 : Type ?u.231456
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T T' T'' : Set α → E →L[ℝ] F
h_add : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T'' s = T s + T' s
f : α →ₛ E
hf : Integrable ↑f
x : E
hx : x ∈ SimpleFunc.range f ∧ x ≠ 0
⊢ x ≠ 0

tactic: rw [← sum_add_distrib]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.231450
G : Type ?u.231453
𝕜 : Type ?u.231456
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T T' T'' : Set α → E →L[ℝ] F
h_add : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T'' s = T s + T' s
f : α →ₛ E
hf : Integrable ↑f
this : ∀ (x : E), x ∈ filter (fun x => x ≠ 0) (SimpleFunc.range f) → T'' (↑f ⁻¹' {x}) = T (↑f ⁻¹' {x}) + T' (↑f ⁻¹' {x})
⊢ ∑ x in filter (fun x => x ≠ 0) (SimpleFunc.range f), ↑(T'' (↑f ⁻¹' {x})) x =
    ∑ x in filter (fun x => x ≠ 0) (SimpleFunc.range f), ↑(T (↑f ⁻¹' {x})) x +
      ∑ x in filter (fun x => x ≠ 0) (SimpleFunc.range f), ↑(T' (↑f ⁻¹' {x})) x

tactic: refine' Finset.sum_congr rfl fun x hx => _
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.231450
G : Type ?u.231453
𝕜 : Type ?u.231456
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T T' T'' : Set α → E →L[ℝ] F
h_add : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T'' s = T s + T' s
f : α →ₛ E
hf : Integrable ↑f
this : ∀ (x : E), x ∈ filter (fun x => x ≠ 0) (SimpleFunc.range f) → T'' (↑f ⁻¹' {x}) = T (↑f ⁻¹' {x}) + T' (↑f ⁻¹' {x})
⊢ ∑ x in filter (fun x => x ≠ 0) (SimpleFunc.range f), ↑(T'' (↑f ⁻¹' {x})) x =
    ∑ x in filter (fun x => x ≠ 0) (SimpleFunc.range f), (↑(T (↑f ⁻¹' {x})) x + ↑(T' (↑f ⁻¹' {x})) x)

tactic: rw [this x hx]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.231450
G : Type ?u.231453
𝕜 : Type ?u.231456
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T T' T'' : Set α → E →L[ℝ] F
h_add : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T'' s = T s + T' s
f : α →ₛ E
hf : Integrable ↑f
this : ∀ (x : E), x ∈ filter (fun x => x ≠ 0) (SimpleFunc.range f) → T'' (↑f ⁻¹' {x}) = T (↑f ⁻¹' {x}) + T' (↑f ⁻¹' {x})
x : E
hx : x ∈ filter (fun x => x ≠ 0) (SimpleFunc.range f)
⊢ ↑(T'' (↑f ⁻¹' {x})) x = ↑(T (↑f ⁻¹' {x})) x + ↑(T' (↑f ⁻¹' {x})) x

tactic: push_cast
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.231450
G : Type ?u.231453
𝕜 : Type ?u.231456
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T T' T'' : Set α → E →L[ℝ] F
h_add : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T'' s = T s + T' s
f : α →ₛ E
hf : Integrable ↑f
this : ∀ (x : E), x ∈ filter (fun x => x ≠ 0) (SimpleFunc.range f) → T'' (↑f ⁻¹' {x}) = T (↑f ⁻¹' {x}) + T' (↑f ⁻¹' {x})
x : E
hx : x ∈ filter (fun x => x ≠ 0) (SimpleFunc.range f)
⊢ ↑(T (↑f ⁻¹' {x}) + T' (↑f ⁻¹' {x})) x = ↑(T (↑f ⁻¹' {x})) x + ↑(T' (↑f ⁻¹' {x})) x

tactic: rw [Pi.add_apply]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.231450
G : Type ?u.231453
𝕜 : Type ?u.231456
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T T' T'' : Set α → E →L[ℝ] F
h_add : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T'' s = T s + T' s
f : α →ₛ E
hf : Integrable ↑f
this : ∀ (x : E), x ∈ filter (fun x => x ≠ 0) (SimpleFunc.range f) → T'' (↑f ⁻¹' {x}) = T (↑f ⁻¹' {x}) + T' (↑f ⁻¹' {x})
x : E
hx : x ∈ filter (fun x => x ≠ 0) (SimpleFunc.range f)
⊢ (↑(T (↑f ⁻¹' {x})) + ↑(T' (↑f ⁻¹' {x}))) x = ↑(T (↑f ⁻¹' {x})) x + ↑(T' (↑f ⁻¹' {x})) x