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

Proof steps:
state_before: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
inst✝² : MeasurableSpace β
X Y : Ω → β
inst✝¹ : NormedDivisionRing β
inst✝ : BorelSpace β
hXY : IndepFun X Y μ
hX : Integrable X μ
hY : Integrable Y μ
⊢ Integrable (X * Y) μ
state_after: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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: let nX : Ω → ENNReal := fun a => ‖X a‖₊
state_before: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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) μ
state_after: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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: let nY : Ω → ENNReal := fun a => ‖Y a‖₊
state_before: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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) μ
state_after: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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 hXY' : IndepFun (fun a => ‖X a‖₊) (fun a => ‖Y a‖₊) μ :=
    hXY.comp measurable_nnnorm measurable_nnnorm
state_before: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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) μ
state_after: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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 hXY'' : IndepFun nX nY μ :=
    hXY'.comp measurable_coe_nnreal_ennreal measurable_coe_nnreal_ennreal
state_before: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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) μ
state_after: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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 hnX : AEMeasurable nX μ := hX.1.aemeasurable.nnnorm.coe_nnreal_ennreal
state_before: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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) μ
state_after: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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: have hnY : AEMeasurable nY μ := hY.1.aemeasurable.nnnorm.coe_nnreal_ennreal
state_before: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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) μ
state_after: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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: 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_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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) μ
state_after: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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: refine ⟨hX.1.mul hY.1, ?_⟩
state_before: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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) μ
state_after: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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 : Ω), nX a ∂μ) * ∫⁻ (a : Ω), nY a ∂μ < ⊤
tactic: simp_rw [HasFiniteIntegral, Pi.mul_apply, nnnorm_mul, ENNReal.coe_mul, hmul]
state_before: Ω : Type u_1
mΩ : MeasurableSpace Ω
μ : Measure Ω
f g : Ω → ℝ≥0∞
X✝ Y✝ : Ω → ℝ
β : Type u_2
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 : Ω), nX a ∂μ) * ∫⁻ (a : Ω), nY a ∂μ < ⊤
state_after: no goals
tactic: exact ENNReal.mul_lt_top hX.2.ne hY.2.ne