Theorem: MeasureTheory.SimpleFunc.map_setToSimpleFunc
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
⊢ setToSimpleFunc T (map g f) = ∑ x ∈ f.range, (T (↑f ⁻¹' {x})) (g x)
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
⊢ setToSimpleFunc T (map g f) = ∑ x ∈ f.range, (T (↑f ⁻¹' {x})) (g x)
tactic: have T_empty : T ∅ = 0 := h_add.map_empty_eq_zero
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
⊢ setToSimpleFunc T (map g f) = ∑ x ∈ f.range, (T (↑f ⁻¹' {x})) (g x)
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
⊢ setToSimpleFunc T (map g f) = ∑ x ∈ f.range, (T (↑f ⁻¹' {x})) (g x)
tactic: have hfp : ∀ x ∈ f.range, x ≠ 0 → μ (f ⁻¹' {x}) ≠ ∞ := fun x _ hx0 =>
    (measure_preimage_lt_top_of_integrable f hf hx0).ne
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
⊢ setToSimpleFunc T (map g f) = ∑ x ∈ f.range, (T (↑f ⁻¹' {x})) (g x)
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
⊢ ∑ x ∈ Finset.image g f.range, (T (↑(map g f) ⁻¹' {x})) x = ∑ x ∈ f.range, (T (↑f ⁻¹' {x})) (g x)
tactic: simp only [setToSimpleFunc, range_map]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
⊢ ∑ x ∈ Finset.image g f.range, (T (↑(map g f) ⁻¹' {x})) x = ∑ x ∈ f.range, (T (↑f ⁻¹' {x})) (g x)
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
b : G
hb : b ∈ f.range
⊢ (T (↑(map g f) ⁻¹' {g b})) (g b) = ∑ x ∈ filter (fun c' => g c' = g b) f.range, (T (↑f ⁻¹' {x})) (g x)
tactic: refine Finset.sum_image' _ fun b hb => ?_
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
b : G
hb : b ∈ f.range
⊢ (T (↑(map g f) ⁻¹' {g b})) (g b) = ∑ x ∈ filter (fun c' => g c' = g b) f.range, (T (↑f ⁻¹' {x})) (g x)
state_after: case intro
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
⊢ (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = ∑ x ∈ filter (fun c' => g c' = g (↑f a)) f.range, (T (↑f ⁻¹' {x})) (g x)
tactic: rcases mem_range.1 hb with ⟨a, rfl⟩
state_before: case intro
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
⊢ (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = ∑ x ∈ filter (fun c' => g c' = g (↑f a)) f.range, (T (↑f ⁻¹' {x})) (g x)
state_after: case pos
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
h0 : g (↑f a) = 0
⊢ (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = ∑ x ∈ filter (fun c' => g c' = g (↑f a)) f.range, (T (↑f ⁻¹' {x})) (g x)

case neg
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
h0 : ¬g (↑f a) = 0
⊢ (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = ∑ x ∈ filter (fun c' => g c' = g (↑f a)) f.range, (T (↑f ⁻¹' {x})) (g x)
tactic: by_cases h0 : g (f a) = 0
state_before: case neg
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
h0 : ¬g (↑f a) = 0
⊢ (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = ∑ x ∈ filter (fun c' => g c' = g (↑f a)) f.range, (T (↑f ⁻¹' {x})) (g x)
state_after: case neg
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
h0 : ¬g (↑f a) = 0
h_left_eq :
  (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a))
⊢ (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = ∑ x ∈ filter (fun c' => g c' = g (↑f a)) f.range, (T (↑f ⁻¹' {x})) (g x)
tactic: have h_left_eq :
    T (map g f ⁻¹' {g (f a)}) (g (f a)) =
      T (f ⁻¹' (f.range.filter fun b => g b = g (f a))) (g (f a)) := by
    congr; rw [map_preimage_singleton]
state_before: case neg
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
h0 : ¬g (↑f a) = 0
h_left_eq :
  (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a))
⊢ (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = ∑ x ∈ filter (fun c' => g c' = g (↑f a)) f.range, (T (↑f ⁻¹' {x})) (g x)
state_after: case neg
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
h0 : ¬g (↑f a) = 0
h_left_eq :
  (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a))
⊢ (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a)) =
    ∑ x ∈ filter (fun c' => g c' = g (↑f a)) f.range, (T (↑f ⁻¹' {x})) (g x)
tactic: rw [h_left_eq]
state_before: case neg
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
h0 : ¬g (↑f a) = 0
h_left_eq :
  (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a))
⊢ (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a)) =
    ∑ x ∈ filter (fun c' => g c' = g (↑f a)) f.range, (T (↑f ⁻¹' {x})) (g x)
state_after: case neg
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
h0 : ¬g (↑f a) = 0
h_left_eq :
  (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a))
h_left_eq' :
  (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a)) =
    (T (⋃ y ∈ filter (fun b => g b = g (↑f a)) f.range, ↑f ⁻¹' {y})) (g (↑f a))
⊢ (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a)) =
    ∑ x ∈ filter (fun c' => g c' = g (↑f a)) f.range, (T (↑f ⁻¹' {x})) (g x)
tactic: have h_left_eq' :
    T (f ⁻¹' (filter (fun b : G => g b = g (f a)) f.range)) (g (f a)) =
      T (⋃ y ∈ filter (fun b : G => g b = g (f a)) f.range, f ⁻¹' {y}) (g (f a)) := by
    congr; rw [← Finset.set_biUnion_preimage_singleton]
state_before: case neg
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
h0 : ¬g (↑f a) = 0
h_left_eq :
  (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a))
h_left_eq' :
  (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a)) =
    (T (⋃ y ∈ filter (fun b => g b = g (↑f a)) f.range, ↑f ⁻¹' {y})) (g (↑f a))
⊢ (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a)) =
    ∑ x ∈ filter (fun c' => g c' = g (↑f a)) f.range, (T (↑f ⁻¹' {x})) (g x)
state_after: case neg
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
h0 : ¬g (↑f a) = 0
h_left_eq :
  (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a))
h_left_eq' :
  (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a)) =
    (T (⋃ y ∈ filter (fun b => g b = g (↑f a)) f.range, ↑f ⁻¹' {y})) (g (↑f a))
⊢ (T (⋃ y ∈ filter (fun b => g b = g (↑f a)) f.range, ↑f ⁻¹' {y})) (g (↑f a)) =
    ∑ x ∈ filter (fun c' => g c' = g (↑f a)) f.range, (T (↑f ⁻¹' {x})) (g x)
tactic: rw [h_left_eq']
state_before: case neg
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
h0 : ¬g (↑f a) = 0
h_left_eq :
  (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a))
h_left_eq' :
  (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a)) =
    (T (⋃ y ∈ filter (fun b => g b = g (↑f a)) f.range, ↑f ⁻¹' {y})) (g (↑f a))
⊢ (T (⋃ y ∈ filter (fun b => g b = g (↑f a)) f.range, ↑f ⁻¹' {y})) (g (↑f a)) =
    ∑ x ∈ filter (fun c' => g c' = g (↑f a)) f.range, (T (↑f ⁻¹' {x})) (g x)
state_after: case neg
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
h0 : ¬g (↑f a) = 0
h_left_eq :
  (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a))
h_left_eq' :
  (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a)) =
    (T (⋃ y ∈ filter (fun b => g b = g (↑f a)) f.range, ↑f ⁻¹' {y})) (g (↑f a))
⊢ (∑ i ∈ filter (fun b => g b = g (↑f a)) f.range, T (↑f ⁻¹' {i})) (g (↑f a)) =
    ∑ x ∈ filter (fun c' => g c' = g (↑f a)) f.range, (T (↑f ⁻¹' {x})) (g x)

case neg.hS_meas
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
h0 : ¬g (↑f a) = 0
h_left_eq :
  (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a))
h_left_eq' :
  (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a)) =
    (T (⋃ y ∈ filter (fun b => g b = g (↑f a)) f.range, ↑f ⁻¹' {y})) (g (↑f a))
⊢ ∀ (i : G), MeasurableSet (↑f ⁻¹' {i})

case neg.hSp
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
h0 : ¬g (↑f a) = 0
h_left_eq :
  (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a))
h_left_eq' :
  (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a)) =
    (T (⋃ y ∈ filter (fun b => g b = g (↑f a)) f.range, ↑f ⁻¹' {y})) (g (↑f a))
⊢ ∀ i ∈ filter (fun b => g b = g (↑f a)) f.range, μ (↑f ⁻¹' {i}) ≠ ⊤

case neg.h_disj
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 : Set α → F →L[ℝ] F'
h_add : FinMeasAdditive μ T
f : α →ₛ G
hf : Integrable (↑f) μ
g : G → F
hg : g 0 = 0
T_empty : T ∅ = 0
hfp : ∀ x ∈ f.range, x ≠ 0 → μ (↑f ⁻¹' {x}) ≠ ⊤
a : α
hb : ↑f a ∈ f.range
h0 : ¬g (↑f a) = 0
h_left_eq :
  (T (↑(map g f) ⁻¹' {g (↑f a)})) (g (↑f a)) = (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a))
h_left_eq' :
  (T (↑f ⁻¹' ↑(filter (fun b => g b = g (↑f a)) f.range))) (g (↑f a)) =
    (T (⋃ y ∈ filter (fun b => g b = g (↑f a)) f.range, ↑f ⁻¹' {y})) (g (↑f a))
⊢ ∀ i ∈ filter (fun b => g b = g (↑f a)) f.range,
    ∀ j ∈ filter (fun b => g b = g (↑f a)) f.range, i ≠ j → Disjoint (↑f ⁻¹' {i}) (↑f ⁻¹' {j})
tactic: rw [h_add.map_iUnion_fin_meas_set_eq_sum T T_empty]