Theorem: ProbabilityTheory.IndepFun.integrable_mul
File: Mathlib/Probability/Integration.lean

tactic: let nX : Ω → ENNReal := fun a => ‖X a‖₊
state_before: Ω : Type u_2
mΩ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_1
inst✝² : MeasurableSpace β
X Y : Ω → β
inst✝¹ : NormedDivisionRing β
inst✝ : BorelSpace β
hXY : IndepFun X Y
hX : Integrable X
hY : Integrable Y
⊢ Integrable (X * Y)

tactic: let nY : Ω → ENNReal := fun a => ‖Y a‖₊
state_before: Ω : Type u_2
mΩ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_1
inst✝² : MeasurableSpace β
X Y : Ω → β
inst✝¹ : NormedDivisionRing β
inst✝ : BorelSpace β
hXY : IndepFun X Y
hX : Integrable X
hY : Integrable Y
nX : Ω → ℝ≥0∞ := fun a => ↑‖X a‖₊
⊢ Integrable (X * Y)

tactic: have hXY' : IndepFun (fun a => ‖X a‖₊) (fun a => ‖Y a‖₊) μ :=
  hXY.comp measurable_nnnorm measurable_nnnorm
state_before: Ω : Type u_2
mΩ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_1
inst✝² : MeasurableSpace β
X Y : Ω → β
inst✝¹ : NormedDivisionRing β
inst✝ : BorelSpace β
hXY : IndepFun X Y
hX : Integrable X
hY : Integrable Y
nX : Ω → ℝ≥0∞ := fun a => ↑‖X a‖₊
nY : Ω → ℝ≥0∞ := fun a => ↑‖Y a‖₊
⊢ Integrable (X * Y)

tactic: have hXY'' : IndepFun nX nY μ :=
  hXY'.comp measurable_coe_nnreal_ennreal measurable_coe_nnreal_ennreal
state_before: Ω : Type u_2
mΩ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_1
inst✝² : MeasurableSpace β
X Y : Ω → β
inst✝¹ : NormedDivisionRing β
inst✝ : BorelSpace β
hXY : IndepFun X Y
hX : Integrable X
hY : Integrable Y
nX : Ω → ℝ≥0∞ := fun a => ↑‖X a‖₊
nY : Ω → ℝ≥0∞ := fun a => ↑‖Y a‖₊
hXY' : IndepFun (fun a => ‖X a‖₊) fun a => ‖Y a‖₊
⊢ Integrable (X * Y)

tactic: have hnX : AEMeasurable nX μ := hX.1.aemeasurable.nnnorm.coe_nnreal_ennreal
state_before: Ω : Type u_2
mΩ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_1
inst✝² : MeasurableSpace β
X Y : Ω → β
inst✝¹ : NormedDivisionRing β
inst✝ : BorelSpace β
hXY : IndepFun X Y
hX : Integrable X
hY : Integrable Y
nX : Ω → ℝ≥0∞ := fun a => ↑‖X a‖₊
nY : Ω → ℝ≥0∞ := fun a => ↑‖Y a‖₊
hXY' : IndepFun (fun a => ‖X a‖₊) fun a => ‖Y a‖₊
hXY'' : IndepFun nX nY
⊢ Integrable (X * Y)

tactic: have hnY : AEMeasurable nY μ := hY.1.aemeasurable.nnnorm.coe_nnreal_ennreal
state_before: Ω : Type u_2
mΩ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_1
inst✝² : MeasurableSpace β
X Y : Ω → β
inst✝¹ : NormedDivisionRing β
inst✝ : BorelSpace β
hXY : IndepFun X Y
hX : Integrable X
hY : Integrable Y
nX : Ω → ℝ≥0∞ := fun a => ↑‖X a‖₊
nY : Ω → ℝ≥0∞ := fun a => ↑‖Y a‖₊
hXY' : IndepFun (fun a => ‖X a‖₊) fun a => ‖Y a‖₊
hXY'' : IndepFun nX nY
hnX : AEMeasurable nX
⊢ Integrable (X * Y)

tactic: have hmul : (∫⁻ a, nX a * nY a ∂μ) = (∫⁻ a, nX a ∂μ) * ∫⁻ a, nY a ∂μ :=
  lintegral_mul_eq_lintegral_mul_lintegral_of_indepFun' hnX hnY hXY''
state_before: Ω : Type u_2
mΩ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_1
inst✝² : MeasurableSpace β
X Y : Ω → β
inst✝¹ : NormedDivisionRing β
inst✝ : BorelSpace β
hXY : IndepFun X Y
hX : Integrable X
hY : Integrable Y
nX : Ω → ℝ≥0∞ := fun a => ↑‖X a‖₊
nY : Ω → ℝ≥0∞ := fun a => ↑‖Y a‖₊
hXY' : IndepFun (fun a => ‖X a‖₊) fun a => ‖Y a‖₊
hXY'' : IndepFun nX nY
hnX : AEMeasurable nX
hnY : AEMeasurable nY
⊢ Integrable (X * Y)

tactic: refine' ⟨hX.1.mul hY.1, _⟩
state_before: Ω : Type u_2
mΩ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_1
inst✝² : MeasurableSpace β
X Y : Ω → β
inst✝¹ : NormedDivisionRing β
inst✝ : BorelSpace β
hXY : IndepFun X Y
hX : Integrable X
hY : Integrable Y
nX : Ω → ℝ≥0∞ := fun a => ↑‖X a‖₊
nY : Ω → ℝ≥0∞ := fun a => ↑‖Y a‖₊
hXY' : IndepFun (fun a => ‖X a‖₊) fun a => ‖Y a‖₊
hXY'' : IndepFun nX nY
hnX : AEMeasurable nX
hnY : AEMeasurable nY
hmul : (∫⁻ (a : Ω), nX a * nY a ∂μ) = (∫⁻ (a : Ω), nX a ∂μ) * ∫⁻ (a : Ω), nY a ∂μ
⊢ Integrable (X * Y)

tactic: simp_rw [HasFiniteIntegral, Pi.mul_apply, nnnorm_mul, ENNReal.coe_mul, hmul]
state_before: Ω : Type u_2
mΩ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_1
inst✝² : MeasurableSpace β
X Y : Ω → β
inst✝¹ : NormedDivisionRing β
inst✝ : BorelSpace β
hXY : IndepFun X Y
hX : Integrable X
hY : Integrable Y
nX : Ω → ℝ≥0∞ := fun a => ↑‖X a‖₊
nY : Ω → ℝ≥0∞ := fun a => ↑‖Y a‖₊
hXY' : IndepFun (fun a => ‖X a‖₊) fun a => ‖Y a‖₊
hXY'' : IndepFun nX nY
hnX : AEMeasurable nX
hnY : AEMeasurable nY
hmul : (∫⁻ (a : Ω), nX a * nY a ∂μ) = (∫⁻ (a : Ω), nX a ∂μ) * ∫⁻ (a : Ω), nY a ∂μ
⊢ HasFiniteIntegral (X * Y)

tactic: exact ENNReal.mul_lt_top hX.2.ne hY.2.ne
state_before: Ω : Type u_2
mΩ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_1
inst✝² : MeasurableSpace β
X Y : Ω → β
inst✝¹ : NormedDivisionRing β
inst✝ : BorelSpace β
hXY : IndepFun X Y
hX : Integrable X
hY : Integrable Y
nX : Ω → ℝ≥0∞ := fun a => ↑‖X a‖₊
nY : Ω → ℝ≥0∞ := fun a => ↑‖Y a‖₊
hXY' : IndepFun (fun a => ‖X a‖₊) fun a => ‖Y a‖₊
hXY'' : IndepFun nX nY
hnX : AEMeasurable nX
hnY : AEMeasurable nY
hmul : (∫⁻ (a : Ω), nX a * nY a ∂μ) = (∫⁻ (a : Ω), nX a ∂μ) * ∫⁻ (a : Ω), nY a ∂μ
⊢ ((∫⁻ (a : Ω), ↑‖X a‖₊ ∂μ) * ∫⁻ (a : Ω), ↑‖Y a‖₊ ∂μ) < ⊤