Theorem: MeasureTheory.IntegrableOn.mul_continuousOn_of_subset
File: Mathlib/MeasureTheory/Function/LocallyIntegrable.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
R : Type u_5
inst✝⁸ : MeasurableSpace X
inst✝⁷ : TopologicalSpace X
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : TopologicalSpace Y
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
f g✝ : X → E
μ : Measure X
s : Set X
inst✝² : OpensMeasurableSpace X
A K : Set X
inst✝¹ : NormedRing R
inst✝ : SecondCountableTopologyEither X R
g g' : X → R
hg : IntegrableOn g A μ
hg' : ContinuousOn g' K
hA : MeasurableSet A
hK : IsCompact K
hAK : A ⊆ K
⊢ IntegrableOn (fun x => g x * g' x) A μ
state_after: case intro
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
R : Type u_5
inst✝⁸ : MeasurableSpace X
inst✝⁷ : TopologicalSpace X
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : TopologicalSpace Y
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
f g✝ : X → E
μ : Measure X
s : Set X
inst✝² : OpensMeasurableSpace X
A K : Set X
inst✝¹ : NormedRing R
inst✝ : SecondCountableTopologyEither X R
g g' : X → R
hg : IntegrableOn g A μ
hg' : ContinuousOn g' K
hA : MeasurableSet A
hK : IsCompact K
hAK : A ⊆ K
C : ℝ
hC : ∀ x ∈ K, ‖g' x‖ ≤ C
⊢ IntegrableOn (fun x => g x * g' x) A μ
tactic: rcases IsCompact.exists_bound_of_continuousOn hK hg' with ⟨C, hC⟩
state_before: case intro
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
R : Type u_5
inst✝⁸ : MeasurableSpace X
inst✝⁷ : TopologicalSpace X
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : TopologicalSpace Y
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
f g✝ : X → E
μ : Measure X
s : Set X
inst✝² : OpensMeasurableSpace X
A K : Set X
inst✝¹ : NormedRing R
inst✝ : SecondCountableTopologyEither X R
g g' : X → R
hg : IntegrableOn g A μ
hg' : ContinuousOn g' K
hA : MeasurableSet A
hK : IsCompact K
hAK : A ⊆ K
C : ℝ
hC : ∀ x ∈ K, ‖g' x‖ ≤ C
⊢ IntegrableOn (fun x => g x * g' x) A μ
state_after: case intro
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
R : Type u_5
inst✝⁸ : MeasurableSpace X
inst✝⁷ : TopologicalSpace X
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : TopologicalSpace Y
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
f g✝ : X → E
μ : Measure X
s : Set X
inst✝² : OpensMeasurableSpace X
A K : Set X
inst✝¹ : NormedRing R
inst✝ : SecondCountableTopologyEither X R
g g' : X → R
hg : Memℒp g 1 (μ.restrict A)
hg' : ContinuousOn g' K
hA : MeasurableSet A
hK : IsCompact K
hAK : A ⊆ K
C : ℝ
hC : ∀ x ∈ K, ‖g' x‖ ≤ C
⊢ Memℒp (fun x => g x * g' x) 1 (μ.restrict A)
tactic: rw [IntegrableOn, ← memℒp_one_iff_integrable] at hg ⊢
state_before: case intro
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
R : Type u_5
inst✝⁸ : MeasurableSpace X
inst✝⁷ : TopologicalSpace X
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : TopologicalSpace Y
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
f g✝ : X → E
μ : Measure X
s : Set X
inst✝² : OpensMeasurableSpace X
A K : Set X
inst✝¹ : NormedRing R
inst✝ : SecondCountableTopologyEither X R
g g' : X → R
hg : Memℒp g 1 (μ.restrict A)
hg' : ContinuousOn g' K
hA : MeasurableSet A
hK : IsCompact K
hAK : A ⊆ K
C : ℝ
hC : ∀ x ∈ K, ‖g' x‖ ≤ C
⊢ Memℒp (fun x => g x * g' x) 1 (μ.restrict A)
state_after: case intro
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
R : Type u_5
inst✝⁸ : MeasurableSpace X
inst✝⁷ : TopologicalSpace X
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : TopologicalSpace Y
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
f g✝ : X → E
μ : Measure X
s : Set X
inst✝² : OpensMeasurableSpace X
A K : Set X
inst✝¹ : NormedRing R
inst✝ : SecondCountableTopologyEither X R
g g' : X → R
hg : Memℒp g 1 (μ.restrict A)
hg' : ContinuousOn g' K
hA : MeasurableSet A
hK : IsCompact K
hAK : A ⊆ K
C : ℝ
hC : ∀ x ∈ K, ‖g' x‖ ≤ C
this : ∀ᵐ (x : X) ∂μ.restrict A, ‖g x * g' x‖ ≤ C * ‖g x‖
⊢ Memℒp (fun x => g x * g' x) 1 (μ.restrict A)
tactic: have : ∀ᵐ x ∂μ.restrict A, ‖g x * g' x‖ ≤ C * ‖g x‖ := by
    filter_upwards [ae_restrict_mem hA] with x hx
    refine (norm_mul_le _ _).trans ?_
    rw [mul_comm]
    gcongr
    exact hC x (hAK hx)
state_before: case intro
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
R : Type u_5
inst✝⁸ : MeasurableSpace X
inst✝⁷ : TopologicalSpace X
inst✝⁶ : MeasurableSpace Y
inst✝⁵ : TopologicalSpace Y
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
f g✝ : X → E
μ : Measure X
s : Set X
inst✝² : OpensMeasurableSpace X
A K : Set X
inst✝¹ : NormedRing R
inst✝ : SecondCountableTopologyEither X R
g g' : X → R
hg : Memℒp g 1 (μ.restrict A)
hg' : ContinuousOn g' K
hA : MeasurableSet A
hK : IsCompact K
hAK : A ⊆ K
C : ℝ
hC : ∀ x ∈ K, ‖g' x‖ ≤ C
this : ∀ᵐ (x : X) ∂μ.restrict A, ‖g x * g' x‖ ≤ C * ‖g x‖
⊢ Memℒp (fun x => g x * g' x) 1 (μ.restrict A)
state_after: no goals
tactic: exact
    Memℒp.of_le_mul hg (hg.aestronglyMeasurable.mul <| (hg'.mono hAK).aestronglyMeasurable hA) this