Theorem: ContinuousMultilinearMap.norm_compContinuous_linearIsometryEquiv
File: Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean

tactic: apply le_antisymm (g.norm_compContinuous_linearIsometry_le fun i => (f i).toLinearIsometry)
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
g : ContinuousMultilinearMap 𝕜 E₁ G
f : (i : ι) → E i ≃ₗᵢ[𝕜] E₁ i
⊢ ‖g.compContinuousLinearMap fun i =>
        ↑{ toLinearEquiv := (f i).toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }‖ =
    ‖g‖
state_after: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
g : ContinuousMultilinearMap 𝕜 E₁ G
f : (i : ι) → E i ≃ₗᵢ[𝕜] E₁ i
⊢ ‖g‖ ≤ ‖g.compContinuousLinearMap fun i => (f i).toLinearIsometry.toContinuousLinearMap‖

tactic: have : g = (g.compContinuousLinearMap fun i => (f i : E i →L[𝕜] E₁ i)).compContinuousLinearMap
    fun i => ((f i).symm : E₁ i →L[𝕜] E i) := by
  ext1 m
  simp only [compContinuousLinearMap_apply, LinearIsometryEquiv.coe_coe'',
    LinearIsometryEquiv.apply_symm_apply]
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
g : ContinuousMultilinearMap 𝕜 E₁ G
f : (i : ι) → E i ≃ₗᵢ[𝕜] E₁ i
⊢ ‖g‖ ≤ ‖g.compContinuousLinearMap fun i => (f i).toLinearIsometry.toContinuousLinearMap‖
state_after: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
g : ContinuousMultilinearMap 𝕜 E₁ G
f : (i : ι) → E i ≃ₗᵢ[𝕜] E₁ i
this :
  g =
    (g.compContinuousLinearMap fun i =>
          ↑{ toLinearEquiv := (f i).toLinearEquiv, continuous_toFun := ⋯,
              continuous_invFun := ⋯ }).compContinuousLinearMap
      fun i => ↑{ toLinearEquiv := (f i).symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }
⊢ ‖g‖ ≤ ‖g.compContinuousLinearMap fun i => (f i).toLinearIsometry.toContinuousLinearMap‖

tactic: conv_lhs => rw [this]
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
g : ContinuousMultilinearMap 𝕜 E₁ G
f : (i : ι) → E i ≃ₗᵢ[𝕜] E₁ i
this :
  g =
    (g.compContinuousLinearMap fun i =>
          ↑{ toLinearEquiv := (f i).toLinearEquiv, continuous_toFun := ⋯,
              continuous_invFun := ⋯ }).compContinuousLinearMap
      fun i => ↑{ toLinearEquiv := (f i).symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }
⊢ ‖g‖ ≤ ‖g.compContinuousLinearMap fun i => (f i).toLinearIsometry.toContinuousLinearMap‖
state_after: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
g : ContinuousMultilinearMap 𝕜 E₁ G
f : (i : ι) → E i ≃ₗᵢ[𝕜] E₁ i
this :
  g =
    (g.compContinuousLinearMap fun i =>
          ↑{ toLinearEquiv := (f i).toLinearEquiv, continuous_toFun := ⋯,
              continuous_invFun := ⋯ }).compContinuousLinearMap
      fun i => ↑{ toLinearEquiv := (f i).symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }
⊢ ‖(g.compContinuousLinearMap fun i =>
            ↑{ toLinearEquiv := (f i).toLinearEquiv, continuous_toFun := ⋯,
                continuous_invFun := ⋯ }).compContinuousLinearMap
        fun i => ↑{ toLinearEquiv := (f i).symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }‖ ≤
    ‖g.compContinuousLinearMap fun i => (f i).toLinearIsometry.toContinuousLinearMap‖

tactic: apply (g.compContinuousLinearMap fun i =>
  (f i : E i →L[𝕜] E₁ i)).norm_compContinuous_linearIsometry_le
    fun i => (f i).symm.toLinearIsometry
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
g : ContinuousMultilinearMap 𝕜 E₁ G
f : (i : ι) → E i ≃ₗᵢ[𝕜] E₁ i
this :
  g =
    (g.compContinuousLinearMap fun i =>
          ↑{ toLinearEquiv := (f i).toLinearEquiv, continuous_toFun := ⋯,
              continuous_invFun := ⋯ }).compContinuousLinearMap
      fun i => ↑{ toLinearEquiv := (f i).symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }
⊢ ‖(g.compContinuousLinearMap fun i =>
            ↑{ toLinearEquiv := (f i).toLinearEquiv, continuous_toFun := ⋯,
                continuous_invFun := ⋯ }).compContinuousLinearMap
        fun i => ↑{ toLinearEquiv := (f i).symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }‖ ≤
    ‖g.compContinuousLinearMap fun i => (f i).toLinearIsometry.toContinuousLinearMap‖
state_after: no goals

tactic: ext1 m
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
g : ContinuousMultilinearMap 𝕜 E₁ G
f : (i : ι) → E i ≃ₗᵢ[𝕜] E₁ i
⊢ g =
    (g.compContinuousLinearMap fun i =>
          ↑{ toLinearEquiv := (f i).toLinearEquiv, continuous_toFun := ⋯,
              continuous_invFun := ⋯ }).compContinuousLinearMap
      fun i => ↑{ toLinearEquiv := (f i).symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }
state_after: case H
𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
g : ContinuousMultilinearMap 𝕜 E₁ G
f : (i : ι) → E i ≃ₗᵢ[𝕜] E₁ i
m : (i : ι) → E₁ i
⊢ g m =
    ((g.compContinuousLinearMap fun i =>
            ↑{ toLinearEquiv := (f i).toLinearEquiv, continuous_toFun := ⋯,
                continuous_invFun := ⋯ }).compContinuousLinearMap
        fun i => ↑{ toLinearEquiv := (f i).symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ })
      m

tactic: simp only [compContinuousLinearMap_apply, LinearIsometryEquiv.coe_coe'',
  LinearIsometryEquiv.apply_symm_apply]
state_before: case H
𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
g : ContinuousMultilinearMap 𝕜 E₁ G
f : (i : ι) → E i ≃ₗᵢ[𝕜] E₁ i
m : (i : ι) → E₁ i
⊢ g m =
    ((g.compContinuousLinearMap fun i =>
            ↑{ toLinearEquiv := (f i).toLinearEquiv, continuous_toFun := ⋯,
                continuous_invFun := ⋯ }).compContinuousLinearMap
        fun i => ↑{ toLinearEquiv := (f i).symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ })
      m
state_after: no goals