Theorem: MeasureTheory.integral_prod_mul
File: Mathlib/MeasureTheory/Constructions/Prod/Integral.lean

tactic: by_cases h : Integrable (fun z : α × β => f z.1 * g z.2) (μ.prod ν)
state_before: α : Type u_2
α' : Type ?u.2464098
β : Type u_3
β' : Type ?u.2464104
γ : Type ?u.2464107
E : Type ?u.2464110
inst✝¹³ : MeasurableSpace α
inst✝¹² : MeasurableSpace α'
inst✝¹¹ : MeasurableSpace β
inst✝¹⁰ : MeasurableSpace β'
inst✝⁹ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : SigmaFinite ν
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
inst✝⁴ : SigmaFinite μ
E' : Type ?u.2464372
inst✝³ : NormedAddCommGroup E'
inst✝² : CompleteSpace E'
inst✝¹ : NormedSpace ℝ E'
L : Type u_1
inst✝ : IsROrC L
f : α → L
g : β → L
⊢ (∫ (z : α × β), f z.fst * g z.snd ∂Measure.prod μ ν) = (∫ (x : α), f x ∂μ) * ∫ (y : β), g y ∂ν

tactic: have H : ¬Integrable f μ ∨ ¬Integrable g ν := by
  contrapose! h
  exact integrable_prod_mul h.1 h.2
state_before: case neg
α : Type u_2
α' : Type ?u.2464098
β : Type u_3
β' : Type ?u.2464104
γ : Type ?u.2464107
E : Type ?u.2464110
inst✝¹³ : MeasurableSpace α
inst✝¹² : MeasurableSpace α'
inst✝¹¹ : MeasurableSpace β
inst✝¹⁰ : MeasurableSpace β'
inst✝⁹ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : SigmaFinite ν
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
inst✝⁴ : SigmaFinite μ
E' : Type ?u.2464372
inst✝³ : NormedAddCommGroup E'
inst✝² : CompleteSpace E'
inst✝¹ : NormedSpace ℝ E'
L : Type u_1
inst✝ : IsROrC L
f : α → L
g : β → L
h : ¬Integrable fun z => f z.fst * g z.snd
⊢ (∫ (z : α × β), f z.fst * g z.snd ∂Measure.prod μ ν) = (∫ (x : α), f x ∂μ) * ∫ (y : β), g y ∂ν

tactic: cases' H with H H <;> simp [integral_undef h, integral_undef H]
state_before: case neg
α : Type u_2
α' : Type ?u.2464098
β : Type u_3
β' : Type ?u.2464104
γ : Type ?u.2464107
E : Type ?u.2464110
inst✝¹³ : MeasurableSpace α
inst✝¹² : MeasurableSpace α'
inst✝¹¹ : MeasurableSpace β
inst✝¹⁰ : MeasurableSpace β'
inst✝⁹ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : SigmaFinite ν
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
inst✝⁴ : SigmaFinite μ
E' : Type ?u.2464372
inst✝³ : NormedAddCommGroup E'
inst✝² : CompleteSpace E'
inst✝¹ : NormedSpace ℝ E'
L : Type u_1
inst✝ : IsROrC L
f : α → L
g : β → L
h : ¬Integrable fun z => f z.fst * g z.snd
H : ¬Integrable f ∨ ¬Integrable g
⊢ (∫ (z : α × β), f z.fst * g z.snd ∂Measure.prod μ ν) = (∫ (x : α), f x ∂μ) * ∫ (y : β), g y ∂ν

tactic: rw [integral_prod _ h]
state_before: case pos
α : Type u_2
α' : Type ?u.2464098
β : Type u_3
β' : Type ?u.2464104
γ : Type ?u.2464107
E : Type ?u.2464110
inst✝¹³ : MeasurableSpace α
inst✝¹² : MeasurableSpace α'
inst✝¹¹ : MeasurableSpace β
inst✝¹⁰ : MeasurableSpace β'
inst✝⁹ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : SigmaFinite ν
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
inst✝⁴ : SigmaFinite μ
E' : Type ?u.2464372
inst✝³ : NormedAddCommGroup E'
inst✝² : CompleteSpace E'
inst✝¹ : NormedSpace ℝ E'
L : Type u_1
inst✝ : IsROrC L
f : α → L
g : β → L
h : Integrable fun z => f z.fst * g z.snd
⊢ (∫ (z : α × β), f z.fst * g z.snd ∂Measure.prod μ ν) = (∫ (x : α), f x ∂μ) * ∫ (y : β), g y ∂ν

tactic: simp_rw [integral_mul_left, integral_mul_right]
state_before: case pos
α : Type u_2
α' : Type ?u.2464098
β : Type u_3
β' : Type ?u.2464104
γ : Type ?u.2464107
E : Type ?u.2464110
inst✝¹³ : MeasurableSpace α
inst✝¹² : MeasurableSpace α'
inst✝¹¹ : MeasurableSpace β
inst✝¹⁰ : MeasurableSpace β'
inst✝⁹ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : SigmaFinite ν
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
inst✝⁴ : SigmaFinite μ
E' : Type ?u.2464372
inst✝³ : NormedAddCommGroup E'
inst✝² : CompleteSpace E'
inst✝¹ : NormedSpace ℝ E'
L : Type u_1
inst✝ : IsROrC L
f : α → L
g : β → L
h : Integrable fun z => f z.fst * g z.snd
⊢ (∫ (x : α), ∫ (y : β), f (x, y).fst * g (x, y).snd ∂ν ∂μ) = (∫ (x : α), f x ∂μ) * ∫ (y : β), g y ∂ν

tactic: contrapose! h
state_before: α : Type u_2
α' : Type ?u.2464098
β : Type u_3
β' : Type ?u.2464104
γ : Type ?u.2464107
E : Type ?u.2464110
inst✝¹³ : MeasurableSpace α
inst✝¹² : MeasurableSpace α'
inst✝¹¹ : MeasurableSpace β
inst✝¹⁰ : MeasurableSpace β'
inst✝⁹ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : SigmaFinite ν
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
inst✝⁴ : SigmaFinite μ
E' : Type ?u.2464372
inst✝³ : NormedAddCommGroup E'
inst✝² : CompleteSpace E'
inst✝¹ : NormedSpace ℝ E'
L : Type u_1
inst✝ : IsROrC L
f : α → L
g : β → L
h : ¬Integrable fun z => f z.fst * g z.snd
⊢ ¬Integrable f ∨ ¬Integrable g

tactic: exact integrable_prod_mul h.1 h.2
state_before: α : Type u_2
α' : Type ?u.2464098
β : Type u_3
β' : Type ?u.2464104
γ : Type ?u.2464107
E : Type ?u.2464110
inst✝¹³ : MeasurableSpace α
inst✝¹² : MeasurableSpace α'
inst✝¹¹ : MeasurableSpace β
inst✝¹⁰ : MeasurableSpace β'
inst✝⁹ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : SigmaFinite ν
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
inst✝⁴ : SigmaFinite μ
E' : Type ?u.2464372
inst✝³ : NormedAddCommGroup E'
inst✝² : CompleteSpace E'
inst✝¹ : NormedSpace ℝ E'
L : Type u_1
inst✝ : IsROrC L
f : α → L
g : β → L
h : Integrable f ∧ Integrable g
⊢ Integrable fun z => f z.fst * g z.snd