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

tactic: have h_pair : Integrable (f.pair g) μ := integrable_pair hf hg
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.191544
G : Type ?u.191547
𝕜 : Type ?u.191550
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 α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
f g : α →ₛ E
hf : Integrable ↑f
hg : Integrable ↑g
h : ∀ (x y : E), x ≠ y → T (↑f ⁻¹' {x} ∩ ↑g ⁻¹' {y}) = 0
⊢ setToSimpleFunc T (map Prod.fst (pair f g)) = setToSimpleFunc T (map Prod.snd (pair f g))

tactic: rw [map_setToSimpleFunc T h_add h_pair Prod.fst_zero]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.191544
G : Type ?u.191547
𝕜 : Type ?u.191550
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 α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
f g : α →ₛ E
hf : Integrable ↑f
hg : Integrable ↑g
h : ∀ (x y : E), x ≠ y → T (↑f ⁻¹' {x} ∩ ↑g ⁻¹' {y}) = 0
h_pair : Integrable ↑(pair f g)
⊢ setToSimpleFunc T (map Prod.fst (pair f g)) = setToSimpleFunc T (map Prod.snd (pair f g))

tactic: rw [map_setToSimpleFunc T h_add h_pair Prod.snd_zero]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.191544
G : Type ?u.191547
𝕜 : Type ?u.191550
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 α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
f g : α →ₛ E
hf : Integrable ↑f
hg : Integrable ↑g
h : ∀ (x y : E), x ≠ y → T (↑f ⁻¹' {x} ∩ ↑g ⁻¹' {y}) = 0
h_pair : Integrable ↑(pair f g)
⊢ ∑ x in SimpleFunc.range (pair f g), ↑(T (↑(pair f g) ⁻¹' {x})) x.fst = setToSimpleFunc T (map Prod.snd (pair f g))

tactic: refine' Finset.sum_congr rfl fun p hp => _
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.191544
G : Type ?u.191547
𝕜 : Type ?u.191550
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 α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
f g : α →ₛ E
hf : Integrable ↑f
hg : Integrable ↑g
h : ∀ (x y : E), x ≠ y → T (↑f ⁻¹' {x} ∩ ↑g ⁻¹' {y}) = 0
h_pair : Integrable ↑(pair f g)
⊢ ∑ x in SimpleFunc.range (pair f g), ↑(T (↑(pair f g) ⁻¹' {x})) x.fst =
    ∑ x in SimpleFunc.range (pair f g), ↑(T (↑(pair f g) ⁻¹' {x})) x.snd

tactic: rcases mem_range.1 hp with ⟨a, rfl⟩
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.191544
G : Type ?u.191547
𝕜 : Type ?u.191550
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 α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
f g : α →ₛ E
hf : Integrable ↑f
hg : Integrable ↑g
h : ∀ (x y : E), x ≠ y → T (↑f ⁻¹' {x} ∩ ↑g ⁻¹' {y}) = 0
h_pair : Integrable ↑(pair f g)
p : E × E
hp : p ∈ SimpleFunc.range (pair f g)
⊢ ↑(T (↑(pair f g) ⁻¹' {p})) p.fst = ↑(T (↑(pair f g) ⁻¹' {p})) p.snd

tactic: by_cases eq : f a = g a
state_before: case intro
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.191544
G : Type ?u.191547
𝕜 : Type ?u.191550
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 α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
f g : α →ₛ E
hf : Integrable ↑f
hg : Integrable ↑g
h : ∀ (x y : E), x ≠ y → T (↑f ⁻¹' {x} ∩ ↑g ⁻¹' {y}) = 0
h_pair : Integrable ↑(pair f g)
a : α
hp : ↑(pair f g) a ∈ SimpleFunc.range (pair f g)
⊢ ↑(T (↑(pair f g) ⁻¹' {↑(pair f g) a})) (↑(pair f g) a).fst =
    ↑(T (↑(pair f g) ⁻¹' {↑(pair f g) a})) (↑(pair f g) a).snd

tactic: dsimp only [pair_apply]
state_before: case pos
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.191544
G : Type ?u.191547
𝕜 : Type ?u.191550
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 α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
f g : α →ₛ E
hf : Integrable ↑f
hg : Integrable ↑g
h : ∀ (x y : E), x ≠ y → T (↑f ⁻¹' {x} ∩ ↑g ⁻¹' {y}) = 0
h_pair : Integrable ↑(pair f g)
a : α
hp : ↑(pair f g) a ∈ SimpleFunc.range (pair f g)
eq : ↑f a = ↑g a
⊢ ↑(T (↑(pair f g) ⁻¹' {↑(pair f g) a})) (↑(pair f g) a).fst =
    ↑(T (↑(pair f g) ⁻¹' {↑(pair f g) a})) (↑(pair f g) a).snd

tactic: rw [eq]
state_before: case pos
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.191544
G : Type ?u.191547
𝕜 : Type ?u.191550
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 α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
f g : α →ₛ E
hf : Integrable ↑f
hg : Integrable ↑g
h : ∀ (x y : E), x ≠ y → T (↑f ⁻¹' {x} ∩ ↑g ⁻¹' {y}) = 0
h_pair : Integrable ↑(pair f g)
a : α
hp : ↑(pair f g) a ∈ SimpleFunc.range (pair f g)
eq : ↑f a = ↑g a
⊢ ↑(T (↑(pair f g) ⁻¹' {(↑f a, ↑g a)})) (↑f a) = ↑(T (↑(pair f g) ⁻¹' {(↑f a, ↑g a)})) (↑g a)

tactic: have : T (pair f g ⁻¹' {(f a, g a)}) = 0 := by
  have h_eq : T ((⇑(f.pair g)) ⁻¹' {(f a, g a)}) = T (f ⁻¹' {f a} ∩ g ⁻¹' {g a}) := by
    congr; rw [pair_preimage_singleton f g]
  rw [h_eq]
  exact h (f a) (g a) eq
state_before: case neg
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.191544
G : Type ?u.191547
𝕜 : Type ?u.191550
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 α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
f g : α →ₛ E
hf : Integrable ↑f
hg : Integrable ↑g
h : ∀ (x y : E), x ≠ y → T (↑f ⁻¹' {x} ∩ ↑g ⁻¹' {y}) = 0
h_pair : Integrable ↑(pair f g)
a : α
hp : ↑(pair f g) a ∈ SimpleFunc.range (pair f g)
eq : ¬↑f a = ↑g a
⊢ ↑(T (↑(pair f g) ⁻¹' {↑(pair f g) a})) (↑(pair f g) a).fst =
    ↑(T (↑(pair f g) ⁻¹' {↑(pair f g) a})) (↑(pair f g) a).snd

tactic: simp only [this, ContinuousLinearMap.zero_apply, pair_apply]
state_before: case neg
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.191544
G : Type ?u.191547
𝕜 : Type ?u.191550
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 α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
f g : α →ₛ E
hf : Integrable ↑f
hg : Integrable ↑g
h : ∀ (x y : E), x ≠ y → T (↑f ⁻¹' {x} ∩ ↑g ⁻¹' {y}) = 0
h_pair : Integrable ↑(pair f g)
a : α
hp : ↑(pair f g) a ∈ SimpleFunc.range (pair f g)
eq : ¬↑f a = ↑g a
this : T (↑(pair f g) ⁻¹' {(↑f a, ↑g a)}) = 0
⊢ ↑(T (↑(pair f g) ⁻¹' {↑(pair f g) a})) (↑(pair f g) a).fst =
    ↑(T (↑(pair f g) ⁻¹' {↑(pair f g) a})) (↑(pair f g) a).snd

tactic: have h_eq : T ((⇑(f.pair g)) ⁻¹' {(f a, g a)}) = T (f ⁻¹' {f a} ∩ g ⁻¹' {g a}) := by
  congr; rw [pair_preimage_singleton f g]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.191544
G : Type ?u.191547
𝕜 : Type ?u.191550
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 α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
f g : α →ₛ E
hf : Integrable ↑f
hg : Integrable ↑g
h : ∀ (x y : E), x ≠ y → T (↑f ⁻¹' {x} ∩ ↑g ⁻¹' {y}) = 0
h_pair : Integrable ↑(pair f g)
a : α
hp : ↑(pair f g) a ∈ SimpleFunc.range (pair f g)
eq : ¬↑f a = ↑g a
⊢ T (↑(pair f g) ⁻¹' {(↑f a, ↑g a)}) = 0

tactic: rw [h_eq]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.191544
G : Type ?u.191547
𝕜 : Type ?u.191550
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 α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
f g : α →ₛ E
hf : Integrable ↑f
hg : Integrable ↑g
h : ∀ (x y : E), x ≠ y → T (↑f ⁻¹' {x} ∩ ↑g ⁻¹' {y}) = 0
h_pair : Integrable ↑(pair f g)
a : α
hp : ↑(pair f g) a ∈ SimpleFunc.range (pair f g)
eq : ¬↑f a = ↑g a
h_eq : T (↑(pair f g) ⁻¹' {(↑f a, ↑g a)}) = T (↑f ⁻¹' {↑f a} ∩ ↑g ⁻¹' {↑g a})
⊢ T (↑(pair f g) ⁻¹' {(↑f a, ↑g a)}) = 0

tactic: exact h (f a) (g a) eq
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.191544
G : Type ?u.191547
𝕜 : Type ?u.191550
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 α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
f g : α →ₛ E
hf : Integrable ↑f
hg : Integrable ↑g
h : ∀ (x y : E), x ≠ y → T (↑f ⁻¹' {x} ∩ ↑g ⁻¹' {y}) = 0
h_pair : Integrable ↑(pair f g)
a : α
hp : ↑(pair f g) a ∈ SimpleFunc.range (pair f g)
eq : ¬↑f a = ↑g a
h_eq : T (↑(pair f g) ⁻¹' {(↑f a, ↑g a)}) = T (↑f ⁻¹' {↑f a} ∩ ↑g ⁻¹' {↑g a})
⊢ T (↑f ⁻¹' {↑f a} ∩ ↑g ⁻¹' {↑g a}) = 0

tactic: congr
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.191544
G : Type ?u.191547
𝕜 : Type ?u.191550
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 α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
f g : α →ₛ E
hf : Integrable ↑f
hg : Integrable ↑g
h : ∀ (x y : E), x ≠ y → T (↑f ⁻¹' {x} ∩ ↑g ⁻¹' {y}) = 0
h_pair : Integrable ↑(pair f g)
a : α
hp : ↑(pair f g) a ∈ SimpleFunc.range (pair f g)
eq : ¬↑f a = ↑g a
⊢ T (↑(pair f g) ⁻¹' {(↑f a, ↑g a)}) = T (↑f ⁻¹' {↑f a} ∩ ↑g ⁻¹' {↑g a})

tactic: rw [pair_preimage_singleton f g]
state_before: case e_a
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.191544
G : Type ?u.191547
𝕜 : Type ?u.191550
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 α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
f g : α →ₛ E
hf : Integrable ↑f
hg : Integrable ↑g
h : ∀ (x y : E), x ≠ y → T (↑f ⁻¹' {x} ∩ ↑g ⁻¹' {y}) = 0
h_pair : Integrable ↑(pair f g)
a : α
hp : ↑(pair f g) a ∈ SimpleFunc.range (pair f g)
eq : ¬↑f a = ↑g a
⊢ ↑(pair f g) ⁻¹' {(↑f a, ↑g a)} = ↑f ⁻¹' {↑f a} ∩ ↑g ⁻¹' {↑g a}