Theorem: MeasureTheory.condexpL2_const_inner
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹³ : RCLike 𝕜
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : InnerProductSpace 𝕜 E
inst✝¹⁰ : CompleteSpace E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : InnerProductSpace 𝕜 E'
inst✝⁷ : CompleteSpace E'
inst✝⁶ : NormedSpace ℝ E'
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedAddCommGroup G'
inst✝¹ : NormedSpace ℝ G'
inst✝ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
hm : m ≤ m0
f : ↥(Lp E 2 μ)
c : E
⊢ ↑↑↑((condexpL2 𝕜 𝕜 hm) (Memℒp.toLp (fun a => ⟪c, ↑↑f a⟫_𝕜) ⋯)) =ᶠ[ae μ] fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜
state_after: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹³ : RCLike 𝕜
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : InnerProductSpace 𝕜 E
inst✝¹⁰ : CompleteSpace E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : InnerProductSpace 𝕜 E'
inst✝⁷ : CompleteSpace E'
inst✝⁶ : NormedSpace ℝ E'
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedAddCommGroup G'
inst✝¹ : NormedSpace ℝ G'
inst✝ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
hm : m ≤ m0
f : ↥(Lp E 2 μ)
c : E
h_mem_Lp : Memℒp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) 2 μ
⊢ ↑↑↑((condexpL2 𝕜 𝕜 hm) (Memℒp.toLp (fun a => ⟪c, ↑↑f a⟫_𝕜) ⋯)) =ᶠ[ae μ] fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜
tactic: have h_mem_Lp : Memℒp (fun a => ⟪c, (condexpL2 E 𝕜 hm f : α → E) a⟫) 2 μ := by
    refine Memℒp.const_inner _ ?_; rw [lpMeas_coe]; exact Lp.memℒp _
state_before: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹³ : RCLike 𝕜
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : InnerProductSpace 𝕜 E
inst✝¹⁰ : CompleteSpace E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : InnerProductSpace 𝕜 E'
inst✝⁷ : CompleteSpace E'
inst✝⁶ : NormedSpace ℝ E'
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedAddCommGroup G'
inst✝¹ : NormedSpace ℝ G'
inst✝ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
hm : m ≤ m0
f : ↥(Lp E 2 μ)
c : E
h_mem_Lp : Memℒp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) 2 μ
⊢ ↑↑↑((condexpL2 𝕜 𝕜 hm) (Memℒp.toLp (fun a => ⟪c, ↑↑f a⟫_𝕜) ⋯)) =ᶠ[ae μ] fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜
state_after: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹³ : RCLike 𝕜
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : InnerProductSpace 𝕜 E
inst✝¹⁰ : CompleteSpace E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : InnerProductSpace 𝕜 E'
inst✝⁷ : CompleteSpace E'
inst✝⁶ : NormedSpace ℝ E'
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedAddCommGroup G'
inst✝¹ : NormedSpace ℝ G'
inst✝ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
hm : m ≤ m0
f : ↥(Lp E 2 μ)
c : E
h_mem_Lp : Memℒp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) 2 μ
h_eq :
  ↑↑(Memℒp.toLp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) h_mem_Lp) =ᶠ[ae μ] fun a =>
    ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜
⊢ ↑↑↑((condexpL2 𝕜 𝕜 hm) (Memℒp.toLp (fun a => ⟪c, ↑↑f a⟫_𝕜) ⋯)) =ᶠ[ae μ] fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜
tactic: have h_eq : h_mem_Lp.toLp _ =ᵐ[μ] fun a => ⟪c, (condexpL2 E 𝕜 hm f : α → E) a⟫ :=
    h_mem_Lp.coeFn_toLp
state_before: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹³ : RCLike 𝕜
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : InnerProductSpace 𝕜 E
inst✝¹⁰ : CompleteSpace E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : InnerProductSpace 𝕜 E'
inst✝⁷ : CompleteSpace E'
inst✝⁶ : NormedSpace ℝ E'
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedAddCommGroup G'
inst✝¹ : NormedSpace ℝ G'
inst✝ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
hm : m ≤ m0
f : ↥(Lp E 2 μ)
c : E
h_mem_Lp : Memℒp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) 2 μ
h_eq :
  ↑↑(Memℒp.toLp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) h_mem_Lp) =ᶠ[ae μ] fun a =>
    ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜
⊢ ↑↑↑((condexpL2 𝕜 𝕜 hm) (Memℒp.toLp (fun a => ⟪c, ↑↑f a⟫_𝕜) ⋯)) =ᶠ[ae μ] fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜
state_after: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹³ : RCLike 𝕜
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : InnerProductSpace 𝕜 E
inst✝¹⁰ : CompleteSpace E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : InnerProductSpace 𝕜 E'
inst✝⁷ : CompleteSpace E'
inst✝⁶ : NormedSpace ℝ E'
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedAddCommGroup G'
inst✝¹ : NormedSpace ℝ G'
inst✝ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
hm : m ≤ m0
f : ↥(Lp E 2 μ)
c : E
h_mem_Lp : Memℒp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) 2 μ
h_eq :
  ↑↑(Memℒp.toLp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) h_mem_Lp) =ᶠ[ae μ] fun a =>
    ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜
⊢ ↑↑↑((condexpL2 𝕜 𝕜 hm) (Memℒp.toLp (fun a => ⟪c, ↑↑f a⟫_𝕜) ⋯)) =ᶠ[ae μ]
    ↑↑(Memℒp.toLp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) h_mem_Lp)
tactic: refine EventuallyEq.trans ?_ h_eq
state_before: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹³ : RCLike 𝕜
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : InnerProductSpace 𝕜 E
inst✝¹⁰ : CompleteSpace E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : InnerProductSpace 𝕜 E'
inst✝⁷ : CompleteSpace E'
inst✝⁶ : NormedSpace ℝ E'
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedAddCommGroup G'
inst✝¹ : NormedSpace ℝ G'
inst✝ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
hm : m ≤ m0
f : ↥(Lp E 2 μ)
c : E
h_mem_Lp : Memℒp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) 2 μ
h_eq :
  ↑↑(Memℒp.toLp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) h_mem_Lp) =ᶠ[ae μ] fun a =>
    ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜
⊢ ↑↑↑((condexpL2 𝕜 𝕜 hm) (Memℒp.toLp (fun a => ⟪c, ↑↑f a⟫_𝕜) ⋯)) =ᶠ[ae μ]
    ↑↑(Memℒp.toLp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) h_mem_Lp)
state_after: case refine_1
α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹³ : RCLike 𝕜
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : InnerProductSpace 𝕜 E
inst✝¹⁰ : CompleteSpace E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : InnerProductSpace 𝕜 E'
inst✝⁷ : CompleteSpace E'
inst✝⁶ : NormedSpace ℝ E'
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedAddCommGroup G'
inst✝¹ : NormedSpace ℝ G'
inst✝ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
hm : m ≤ m0
f : ↥(Lp E 2 μ)
c : E
h_mem_Lp : Memℒp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) 2 μ
h_eq :
  ↑↑(Memℒp.toLp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) h_mem_Lp) =ᶠ[ae μ] fun a =>
    ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜
⊢ ∀ (s : Set α),
    MeasurableSet s → μ s < ⊤ → IntegrableOn (↑↑(Memℒp.toLp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) h_mem_Lp)) s μ

case refine_2
α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹³ : RCLike 𝕜
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : InnerProductSpace 𝕜 E
inst✝¹⁰ : CompleteSpace E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : InnerProductSpace 𝕜 E'
inst✝⁷ : CompleteSpace E'
inst✝⁶ : NormedSpace ℝ E'
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedAddCommGroup G'
inst✝¹ : NormedSpace ℝ G'
inst✝ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
hm : m ≤ m0
f : ↥(Lp E 2 μ)
c : E
h_mem_Lp : Memℒp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) 2 μ
h_eq :
  ↑↑(Memℒp.toLp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) h_mem_Lp) =ᶠ[ae μ] fun a =>
    ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜
⊢ ∀ (s : Set α),
    MeasurableSet s →
      μ s < ⊤ →
        ∫ (x : α) in s, ↑↑↑((condexpL2 𝕜 𝕜 hm) (Memℒp.toLp (fun a => ⟪c, ↑↑f a⟫_𝕜) ⋯)) x ∂μ =
          ∫ (x : α) in s, ↑↑(Memℒp.toLp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) h_mem_Lp) x ∂μ

case refine_3
α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹³ : RCLike 𝕜
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : InnerProductSpace 𝕜 E
inst✝¹⁰ : CompleteSpace E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : InnerProductSpace 𝕜 E'
inst✝⁷ : CompleteSpace E'
inst✝⁶ : NormedSpace ℝ E'
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedAddCommGroup G'
inst✝¹ : NormedSpace ℝ G'
inst✝ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
hm : m ≤ m0
f : ↥(Lp E 2 μ)
c : E
h_mem_Lp : Memℒp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) 2 μ
h_eq :
  ↑↑(Memℒp.toLp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) h_mem_Lp) =ᶠ[ae μ] fun a =>
    ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜
⊢ AEStronglyMeasurable' m (↑↑↑((condexpL2 𝕜 𝕜 hm) (Memℒp.toLp (fun a => ⟪c, ↑↑f a⟫_𝕜) ⋯))) μ

case refine_4
α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹³ : RCLike 𝕜
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : InnerProductSpace 𝕜 E
inst✝¹⁰ : CompleteSpace E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : InnerProductSpace 𝕜 E'
inst✝⁷ : CompleteSpace E'
inst✝⁶ : NormedSpace ℝ E'
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedAddCommGroup G'
inst✝¹ : NormedSpace ℝ G'
inst✝ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
hm : m ≤ m0
f : ↥(Lp E 2 μ)
c : E
h_mem_Lp : Memℒp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) 2 μ
h_eq :
  ↑↑(Memℒp.toLp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) h_mem_Lp) =ᶠ[ae μ] fun a =>
    ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜
⊢ AEStronglyMeasurable' m (↑↑(Memℒp.toLp (fun a => ⟪c, ↑↑↑((condexpL2 E 𝕜 hm) f) a⟫_𝕜) h_mem_Lp)) μ
tactic: refine Lp.ae_eq_of_forall_setIntegral_eq' 𝕜 hm _ _ two_ne_zero ENNReal.coe_ne_top
    (fun s _ hμs => integrableOn_condexpL2_of_measure_ne_top hm hμs.ne _) ?_ ?_ ?_ ?_