l3lab/ntp-mathlib huggingface dataset:
theorem aestronglyMeasurable'_condexpL1Clm (f : α →₁[μ] F') :
    AEStronglyMeasurable' m (condexpL1Clm F' hm μ f) μ := by
  refine' @Lp.induction _ _ _ _ _ _ _ ENNReal.one_ne_top
    (fun f : α →₁[μ] F' => AEStronglyMeasurable' m (condexpL1Clm F' hm μ f) μ) _ _ _ f
  · intro c s hs hμs
    rw [condexpL1Clm_indicatorConst hs hμs.ne c]
    exact aestronglyMeasurable'_condexpInd hs hμs.ne c
  · intro f g hf hg _ hfm hgm
    rw [(condexpL1Clm F' hm μ).map_add]
    refine' AEStronglyMeasurable'.congr _ (coeFn_add _ _).symm
    exact AEStronglyMeasurable'.add hfm hgm
  · have : {f : Lp F' 1 μ | AEStronglyMeasurable' m (condexpL1Clm F' hm μ f) μ} =
        condexpL1Clm F' hm μ ⁻¹' {f | AEStronglyMeasurable' m f μ} := rfl
    rw [this]
    

Proof state:
case refine'_3
α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : IsROrC 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (Measure.trim μ hm)
f✝ g : α → F'
s : Set α
f : ↥(Lp F' 1)
this :
  {f | AEStronglyMeasurable' m (↑↑((condexpL1Clm F' hm μ) f)) μ} =
    ⇑(condexpL1Clm F' hm μ) ⁻¹' {f | AEStronglyMeasurable' m (↑↑f) μ}
⊢ IsClosed (⇑(condexpL1Clm F' hm μ) ⁻¹' {f | AEStronglyMeasurable' m (↑↑f) μ})

Next tactic:
refine' IsClosed.preimage (condexpL1Clm F' hm μ).continuous _
theorem aestronglyMeasurable'_condexpL1Clm (f : α →₁[μ] F') :
    AEStronglyMeasurable' m (condexpL1Clm F' hm μ f) μ := by
  refine' @Lp.induction _ _ _ _ _ _ _ ENNReal.one_ne_top
    (fun f : α →₁[μ] F' => AEStronglyMeasurable' m (condexpL1Clm F' hm μ f) μ) _ _ _ f
  · intro c s hs hμs
    rw [condexpL1Clm_indicatorConst hs hμs.ne c]
    exact aestronglyMeasurable'_condexpInd hs hμs.ne c
  · intro f g hf hg _ hfm hgm
    rw [(condexpL1Clm F' hm μ).map_add]
    refine' AEStronglyMeasurable'.congr _ (coeFn_add _ _).symm
    exact AEStronglyMeasurable'.add hfm hgm
  · have : {f : Lp F' 1 μ | AEStronglyMeasurable' m (condexpL1Clm F' hm μ f) μ} =
        condexpL1Clm F' hm μ ⁻¹' {f | AEStronglyMeasurable' m f μ} := rfl
    rw [this]
    refine' IsClosed.preimage (condexpL1Clm F' hm μ).continuous _
    

Proof state:
case refine'_3
α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : IsROrC 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (Measure.trim μ hm)
f✝ g : α → F'
s : Set α
f : ↥(Lp F' 1)
this :
  {f | AEStronglyMeasurable' m (↑↑((condexpL1Clm F' hm μ) f)) μ} =
    ⇑(condexpL1Clm F' hm μ) ⁻¹' {f | AEStronglyMeasurable' m (↑↑f) μ}
⊢ IsClosed {f | AEStronglyMeasurable' m (↑↑f) μ}

Next tactic:
exact isClosed_aeStronglyMeasurable' hm
theorem condexpL1Clm_lpMeas (f : lpMeas F' ℝ m 1 μ) :
    condexpL1Clm F' hm μ (f : α →₁[μ] F') = ↑f := by
  

Proof state:
α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : IsROrC 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (Measure.trim μ hm)
f✝ g : α → F'
s : Set α
f : ↥(lpMeas F' ℝ m 1 μ)
⊢ (condexpL1Clm F' hm μ) ↑f = ↑f

Next tactic:
let g := lpMeasToLpTrimLie F' ℝ 1 μ hm f
theorem condexpL1Clm_lpMeas (f : lpMeas F' ℝ m 1 μ) :
    condexpL1Clm F' hm μ (f : α →₁[μ] F') = ↑f := by
  let g := lpMeasToLpTrimLie F' ℝ 1 μ hm f
  

Proof state:
α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : IsROrC 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (Measure.trim μ hm)
f✝ g✝ : α → F'
s : Set α
f : ↥(lpMeas F' ℝ m 1 μ)
g : ↥(Lp F' 1) := (lpMeasToLpTrimLie F' ℝ 1 μ hm) f
⊢ (condexpL1Clm F' hm μ) ↑f = ↑f

Next tactic:
have hfg : f = (lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g := by
    simp only [LinearIsometryEquiv.symm_apply_apply]
theorem condexpL1Clm_lpMeas (f : lpMeas F' ℝ m 1 μ) :
    condexpL1Clm F' hm μ (f : α →₁[μ] F') = ↑f := by
  let g := lpMeasToLpTrimLie F' ℝ 1 μ hm f
  have hfg : f = (lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g := by
    

Proof state:
α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : IsROrC 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (Measure.trim μ hm)
f✝ g✝ : α → F'
s : Set α
f : ↥(lpMeas F' ℝ m 1 μ)
g : ↥(Lp F' 1) := (lpMeasToLpTrimLie F' ℝ 1 μ hm) f
⊢ f = (LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g

Next tactic:
simp only [LinearIsometryEquiv.symm_apply_apply]
theorem condexpL1Clm_lpMeas (f : lpMeas F' ℝ m 1 μ) :
    condexpL1Clm F' hm μ (f : α →₁[μ] F') = ↑f := by
  let g := lpMeasToLpTrimLie F' ℝ 1 μ hm f
  have hfg : f = (lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g := by
    simp only [LinearIsometryEquiv.symm_apply_apply]
  

Proof state:
α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : IsROrC 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (Measure.trim μ hm)
f✝ g✝ : α → F'
s : Set α
f : ↥(lpMeas F' ℝ m 1 μ)
g : ↥(Lp F' 1) := (lpMeasToLpTrimLie F' ℝ 1 μ hm) f
hfg : f = (LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g
⊢ (condexpL1Clm F' hm μ) ↑f = ↑f

Next tactic:
rw [hfg]
theorem condexpL1Clm_lpMeas (f : lpMeas F' ℝ m 1 μ) :
    condexpL1Clm F' hm μ (f : α →₁[μ] F') = ↑f := by
  let g := lpMeasToLpTrimLie F' ℝ 1 μ hm f
  have hfg : f = (lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g := by
    simp only [LinearIsometryEquiv.symm_apply_apply]
  rw [hfg]
  

Proof state:
α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : IsROrC 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (Measure.trim μ hm)
f✝ g✝ : α → F'
s : Set α
f : ↥(lpMeas F' ℝ m 1 μ)
g : ↥(Lp F' 1) := (lpMeasToLpTrimLie F' ℝ 1 μ hm) f
hfg : f = (LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g
⊢ (condexpL1Clm F' hm μ) ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g) =
    ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g)

Next tactic:
refine' @Lp.induction α F' m _ 1 (μ.trim hm) _ ENNReal.coe_ne_top (fun g : α →₁[μ.trim hm] F' =>
    condexpL1Clm F' hm μ ((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g : α →₁[μ] F') =
    ↑((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g)) _ _ _ g
theorem condexpL1Clm_lpMeas (f : lpMeas F' ℝ m 1 μ) :
    condexpL1Clm F' hm μ (f : α →₁[μ] F') = ↑f := by
  let g := lpMeasToLpTrimLie F' ℝ 1 μ hm f
  have hfg : f = (lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g := by
    simp only [LinearIsometryEquiv.symm_apply_apply]
  rw [hfg]
  refine' @Lp.induction α F' m _ 1 (μ.trim hm) _ ENNReal.coe_ne_top (fun g : α →₁[μ.trim hm] F' =>
    condexpL1Clm F' hm μ ((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g : α →₁[μ] F') =
    ↑((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g)) _ _ _ g
  · 

Proof state:
case refine'_1
α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : IsROrC 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (Measure.trim μ hm)
f✝ g✝ : α → F'
s : Set α
f : ↥(lpMeas F' ℝ m 1 μ)
g : ↥(Lp F' 1) := (lpMeasToLpTrimLie F' ℝ 1 μ hm) f
hfg : f = (LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g
⊢ ∀ (c : F') {s : Set α} (hs : MeasurableSet s) (hμs : ↑↑(Measure.trim μ hm) s < ⊤),
    (fun g =>
        (condexpL1Clm F' hm μ) ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g) =
          ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g))
      ↑(simpleFunc.indicatorConst 1 hs (_ : ↑↑(Measure.trim μ hm) s ≠ ⊤) c)

Next tactic:
intro c s hs hμs
theorem condexpL1Clm_lpMeas (f : lpMeas F' ℝ m 1 μ) :
    condexpL1Clm F' hm μ (f : α →₁[μ] F') = ↑f := by
  let g := lpMeasToLpTrimLie F' ℝ 1 μ hm f
  have hfg : f = (lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g := by
    simp only [LinearIsometryEquiv.symm_apply_apply]
  rw [hfg]
  refine' @Lp.induction α F' m _ 1 (μ.trim hm) _ ENNReal.coe_ne_top (fun g : α →₁[μ.trim hm] F' =>
    condexpL1Clm F' hm μ ((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g : α →₁[μ] F') =
    ↑((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g)) _ _ _ g
  · intro c s hs hμs
    

Proof state:
case refine'_1
α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : IsROrC 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (Measure.trim μ hm)
f✝ g✝ : α → F'
s✝ : Set α
f : ↥(lpMeas F' ℝ m 1 μ)
g : ↥(Lp F' 1) := (lpMeasToLpTrimLie F' ℝ 1 μ hm) f
hfg : f = (LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g
c : F'
s : Set α
hs : MeasurableSet s
hμs : ↑↑(Measure.trim μ hm) s < ⊤
⊢ (condexpL1Clm F' hm μ)
      ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm))
          ↑(simpleFunc.indicatorConst 1 hs (_ : ↑↑(Measure.trim μ hm) s ≠ ⊤) c)) =
    ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm))
        ↑(simpleFunc.indicatorConst 1 hs (_ : ↑↑(Measure.trim μ hm) s ≠ ⊤) c))

Next tactic:
rw [@Lp.simpleFunc.coe_indicatorConst _ _ m, lpMeasToLpTrimLie_symm_indicator hs hμs.ne c,
      condexpL1Clm_indicatorConstLp]
theorem condexpL1Clm_lpMeas (f : lpMeas F' ℝ m 1 μ) :
    condexpL1Clm F' hm μ (f : α →₁[μ] F') = ↑f := by
  let g := lpMeasToLpTrimLie F' ℝ 1 μ hm f
  have hfg : f = (lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g := by
    simp only [LinearIsometryEquiv.symm_apply_apply]
  rw [hfg]
  refine' @Lp.induction α F' m _ 1 (μ.trim hm) _ ENNReal.coe_ne_top (fun g : α →₁[μ.trim hm] F' =>
    condexpL1Clm F' hm μ ((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g : α →₁[μ] F') =
    ↑((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g)) _ _ _ g
  · intro c s hs hμs
    rw [@Lp.simpleFunc.coe_indicatorConst _ _ m, lpMeasToLpTrimLie_symm_indicator hs hμs.ne c,
      condexpL1Clm_indicatorConstLp]
    

Proof state:
case refine'_1
α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : IsROrC 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (Measure.trim μ hm)
f✝ g✝ : α → F'
s✝ : Set α
f : ↥(lpMeas F' ℝ m 1 μ)
g : ↥(Lp F' 1) := (lpMeasToLpTrimLie F' ℝ 1 μ hm) f
hfg : f = (LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g
c : F'
s : Set α
hs : MeasurableSet s
hμs : ↑↑(Measure.trim μ hm) s < ⊤
⊢ (condexpInd F' hm μ s) c = indicatorConstLp 1 (_ : MeasurableSet s) (_ : ↑↑μ s ≠ ⊤) c

Next tactic:
exact condexpInd_of_measurable hs ((le_trim hm).trans_lt hμs).ne c
theorem condexpL1Clm_lpMeas (f : lpMeas F' ℝ m 1 μ) :
    condexpL1Clm F' hm μ (f : α →₁[μ] F') = ↑f := by
  let g := lpMeasToLpTrimLie F' ℝ 1 μ hm f
  have hfg : f = (lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g := by
    simp only [LinearIsometryEquiv.symm_apply_apply]
  rw [hfg]
  refine' @Lp.induction α F' m _ 1 (μ.trim hm) _ ENNReal.coe_ne_top (fun g : α →₁[μ.trim hm] F' =>
    condexpL1Clm F' hm μ ((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g : α →₁[μ] F') =
    ↑((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g)) _ _ _ g
  · intro c s hs hμs
    rw [@Lp.simpleFunc.coe_indicatorConst _ _ m, lpMeasToLpTrimLie_symm_indicator hs hμs.ne c,
      condexpL1Clm_indicatorConstLp]
    exact condexpInd_of_measurable hs ((le_trim hm).trans_lt hμs).ne c
  · 

Proof state:
case refine'_2
α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : IsROrC 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (Measure.trim μ hm)
f✝ g✝ : α → F'
s : Set α
f : ↥(lpMeas F' ℝ m 1 μ)
g : ↥(Lp F' 1) := (lpMeasToLpTrimLie F' ℝ 1 μ hm) f
hfg : f = (LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g
⊢ ∀ ⦃f g : α → F'⦄ (hf : Memℒp f 1) (hg : Memℒp g 1),
    Disjoint (Function.support f) (Function.support g) →
      (fun g =>
            (condexpL1Clm F' hm μ) ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g) =
              ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g))
          (Memℒp.toLp f hf) →
        (fun g =>
              (condexpL1Clm F' hm μ) ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g) =
                ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g))
            (Memℒp.toLp g hg) →
          (fun g =>
              (condexpL1Clm F' hm μ) ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g) =
                ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g))
            (Memℒp.toLp f hf + Memℒp.toLp g hg)

Next tactic:
intro f g hf hg _ hf_eq hg_eq
theorem condexpL1Clm_lpMeas (f : lpMeas F' ℝ m 1 μ) :
    condexpL1Clm F' hm μ (f : α →₁[μ] F') = ↑f := by
  let g := lpMeasToLpTrimLie F' ℝ 1 μ hm f
  have hfg : f = (lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g := by
    simp only [LinearIsometryEquiv.symm_apply_apply]
  rw [hfg]
  refine' @Lp.induction α F' m _ 1 (μ.trim hm) _ ENNReal.coe_ne_top (fun g : α →₁[μ.trim hm] F' =>
    condexpL1Clm F' hm μ ((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g : α →₁[μ] F') =
    ↑((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g)) _ _ _ g
  · intro c s hs hμs
    rw [@Lp.simpleFunc.coe_indicatorConst _ _ m, lpMeasToLpTrimLie_symm_indicator hs hμs.ne c,
      condexpL1Clm_indicatorConstLp]
    exact condexpInd_of_measurable hs ((le_trim hm).trans_lt hμs).ne c
  · intro f g hf hg _ hf_eq hg_eq
    

Proof state:
case refine'_2
α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : IsROrC 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (Measure.trim μ hm)
f✝¹ g✝¹ : α → F'
s : Set α
f✝ : ↥(lpMeas F' ℝ m 1 μ)
g✝ : ↥(Lp F' 1) := (lpMeasToLpTrimLie F' ℝ 1 μ hm) f✝
hfg : f✝ = (LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g✝
f g : α → F'
hf : Memℒp f 1
hg : Memℒp g 1
a✝ : Disjoint (Function.support f) (Function.support g)
hf_eq :
  (condexpL1Clm F' hm μ) ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp f hf)) =
    ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp f hf))
hg_eq :
  (condexpL1Clm F' hm μ) ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp g hg)) =
    ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp g hg))
⊢ (condexpL1Clm F' hm μ)
      ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp f hf + Memℒp.toLp g hg)) =
    ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp f hf + Memℒp.toLp g hg))

Next tactic:
rw [LinearIsometryEquiv.map_add]
theorem condexpL1Clm_lpMeas (f : lpMeas F' ℝ m 1 μ) :
    condexpL1Clm F' hm μ (f : α →₁[μ] F') = ↑f := by
  let g := lpMeasToLpTrimLie F' ℝ 1 μ hm f
  have hfg : f = (lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g := by
    simp only [LinearIsometryEquiv.symm_apply_apply]
  rw [hfg]
  refine' @Lp.induction α F' m _ 1 (μ.trim hm) _ ENNReal.coe_ne_top (fun g : α →₁[μ.trim hm] F' =>
    condexpL1Clm F' hm μ ((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g : α →₁[μ] F') =
    ↑((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g)) _ _ _ g
  · intro c s hs hμs
    rw [@Lp.simpleFunc.coe_indicatorConst _ _ m, lpMeasToLpTrimLie_symm_indicator hs hμs.ne c,
      condexpL1Clm_indicatorConstLp]
    exact condexpInd_of_measurable hs ((le_trim hm).trans_lt hμs).ne c
  · intro f g hf hg _ hf_eq hg_eq
    rw [LinearIsometryEquiv.map_add]
    

Proof state:
case refine'_2
α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : IsROrC 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (Measure.trim μ hm)
f✝¹ g✝¹ : α → F'
s : Set α
f✝ : ↥(lpMeas F' ℝ m 1 μ)
g✝ : ↥(Lp F' 1) := (lpMeasToLpTrimLie F' ℝ 1 μ hm) f✝
hfg : f✝ = (LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g✝
f g : α → F'
hf : Memℒp f 1
hg : Memℒp g 1
a✝ : Disjoint (Function.support f) (Function.support g)
hf_eq :
  (condexpL1Clm F' hm μ) ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp f hf)) =
    ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp f hf))
hg_eq :
  (condexpL1Clm F' hm μ) ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp g hg)) =
    ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp g hg))
⊢ (condexpL1Clm F' hm μ)
      ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp f hf) +
          (LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp g hg)) =
    ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp f hf) +
        (LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp g hg))

Next tactic:
push_cast
theorem condexpL1Clm_lpMeas (f : lpMeas F' ℝ m 1 μ) :
    condexpL1Clm F' hm μ (f : α →₁[μ] F') = ↑f := by
  let g := lpMeasToLpTrimLie F' ℝ 1 μ hm f
  have hfg : f = (lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g := by
    simp only [LinearIsometryEquiv.symm_apply_apply]
  rw [hfg]
  refine' @Lp.induction α F' m _ 1 (μ.trim hm) _ ENNReal.coe_ne_top (fun g : α →₁[μ.trim hm] F' =>
    condexpL1Clm F' hm μ ((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g : α →₁[μ] F') =
    ↑((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g)) _ _ _ g
  · intro c s hs hμs
    rw [@Lp.simpleFunc.coe_indicatorConst _ _ m, lpMeasToLpTrimLie_symm_indicator hs hμs.ne c,
      condexpL1Clm_indicatorConstLp]
    exact condexpInd_of_measurable hs ((le_trim hm).trans_lt hμs).ne c
  · intro f g hf hg _ hf_eq hg_eq
    rw [LinearIsometryEquiv.map_add]
    push_cast
    

Proof state:
case refine'_2
α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : IsROrC 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (Measure.trim μ hm)
f✝¹ g✝¹ : α → F'
s : Set α
f✝ : ↥(lpMeas F' ℝ m 1 μ)
g✝ : ↥(Lp F' 1) := (lpMeasToLpTrimLie F' ℝ 1 μ hm) f✝
hfg : f✝ = (LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g✝
f g : α → F'
hf : Memℒp f 1
hg : Memℒp g 1
a✝ : Disjoint (Function.support f) (Function.support g)
hf_eq :
  (condexpL1Clm F' hm μ) ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp f hf)) =
    ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp f hf))
hg_eq :
  (condexpL1Clm F' hm μ) ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp g hg)) =
    ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp g hg))
⊢ (condexpL1Clm F' hm μ)
      (↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp f hf)) +
        ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp g hg))) =
    ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp f hf)) +
      ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) (Memℒp.toLp g hg))

Next tactic:
rw [map_add, hf_eq, hg_eq]
theorem condexpL1Clm_lpMeas (f : lpMeas F' ℝ m 1 μ) :
    condexpL1Clm F' hm μ (f : α →₁[μ] F') = ↑f := by
  let g := lpMeasToLpTrimLie F' ℝ 1 μ hm f
  have hfg : f = (lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g := by
    simp only [LinearIsometryEquiv.symm_apply_apply]
  rw [hfg]
  refine' @Lp.induction α F' m _ 1 (μ.trim hm) _ ENNReal.coe_ne_top (fun g : α →₁[μ.trim hm] F' =>
    condexpL1Clm F' hm μ ((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g : α →₁[μ] F') =
    ↑((lpMeasToLpTrimLie F' ℝ 1 μ hm).symm g)) _ _ _ g
  · intro c s hs hμs
    rw [@Lp.simpleFunc.coe_indicatorConst _ _ m, lpMeasToLpTrimLie_symm_indicator hs hμs.ne c,
      condexpL1Clm_indicatorConstLp]
    exact condexpInd_of_measurable hs ((le_trim hm).trans_lt hμs).ne c
  · intro f g hf hg _ hf_eq hg_eq
    rw [LinearIsometryEquiv.map_add]
    push_cast
    rw [map_add, hf_eq, hg_eq]
  · 

Proof state:
case refine'_3
α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : IsROrC 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (Measure.trim μ hm)
f✝ g✝ : α → F'
s : Set α
f : ↥(lpMeas F' ℝ m 1 μ)
g : ↥(Lp F' 1) := (lpMeasToLpTrimLie F' ℝ 1 μ hm) f
hfg : f = (LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g
⊢ IsClosed
    {f |
      (fun g =>
          (condexpL1Clm F' hm μ) ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g) =
            ↑((LinearIsometryEquiv.symm (lpMeasToLpTrimLie F' ℝ 1 μ hm)) g))
        f}

Next tactic:
refine' isClosed_eq _ _