File: Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean

full_name: PiTensorProduct.toDualContinuousMultilinearMap_apply_apply
code: /-- The linear map from `⨂[𝕜] i, Eᵢ` to `ContinuousMultilinearMap 𝕜 E F →L[𝕜] F` sending
`x` in `⨂[𝕜] i, Eᵢ` to the map `f ↦ f.lift x`.
-/
@[simps!]
noncomputable def toDualContinuousMultilinearMap : (⨂[𝕜] i, E i) →ₗ[𝕜]
    ContinuousMultilinearMap 𝕜 E F →L[𝕜] F 
goal: ∀ (a : ContinuousMultilinearMap 𝕜 E F),
  ((PiTensorProduct.toDualContinuousMultilinearMap F) x) a = (PiTensorProduct.lift a.toMultilinearMap) x

full_name: PiTensorProduct.toDualContinuousMultilinearMap
code: /-- The linear map from `⨂[𝕜] i, Eᵢ` to `ContinuousMultilinearMap 𝕜 E F →L[𝕜] F` sending
`x` in `⨂[𝕜] i, Eᵢ` to the map `f ↦ f.lift x`.
-/
@[simps!]
noncomputable def toDualContinuousMultilinearMap : (⨂[𝕜] i, E i) →ₗ[𝕜]
    ContinuousMultilinearMap 𝕜 E F →L[𝕜] F 
goal: (⨂[𝕜] (i : ι), E i) →ₗ[𝕜] ContinuousMultilinearMap 𝕜 E F →L[𝕜] F

full_name: PiTensorProduct.toDualContinuousMultilinearMap_apply_toFun
code: /-- The linear map from `⨂[𝕜] i, Eᵢ` to `ContinuousMultilinearMap 𝕜 E F →L[𝕜] F` sending
`x` in `⨂[𝕜] i, Eᵢ` to the map `f ↦ f.lift x`.
-/
@[simps!]
noncomputable def toDualContinuousMultilinearMap : (⨂[𝕜] i, E i) →ₗ[𝕜]
    ContinuousMultilinearMap 𝕜 E F →L[𝕜] F 
goal: ∀ (a : ContinuousMultilinearMap 𝕜 E F),
  ((PiTensorProduct.toDualContinuousMultilinearMap F) x) a = (PiTensorProduct.lift a.toMultilinearMap) x

full_name: PiTensorProduct.toDualContinuousMultilinearMap_le_projectiveSeminorm
code: theorem toDualContinuousMultilinearMap_le_projectiveSeminorm (x : ⨂[𝕜] i, E i) :
    ‖toDualContinuousMultilinearMap F x‖ ≤ projectiveSeminorm x 
goal: ‖(PiTensorProduct.toDualContinuousMultilinearMap F) x‖ ≤ PiTensorProduct.projectiveSeminorm x

full_name: PiTensorProduct.injectiveSeminorm_def
code: /-- The injective seminorm on `⨂[𝕜] i, Eᵢ`. Morally, it sends `x` in `⨂[𝕜] i, Eᵢ` to the
`sup` of the operator norms of the `PiTensorProduct.toDualContinuousMultilinearMap F x`, for all
normed vector spaces `F`. In fact, we only take in the same universe as `⨂[𝕜] i, Eᵢ`, and then
prove in `PiTensorProduct.norm_eval_le_injectiveSeminorm` that this gives the same result.
-/
noncomputable irreducible_def injectiveSeminorm : Seminorm 𝕜 (⨂[𝕜] i, E i) 
goal: PiTensorProduct.injectiveSeminorm =
  sSup
    {p |
      ∃ G x x_1,
        p =
          (normSeminorm 𝕜 (ContinuousMultilinearMap 𝕜 E G →L[𝕜] G)).comp
            (PiTensorProduct.toDualContinuousMultilinearMap G)}

full_name: PiTensorProduct.injectiveSeminorm
code: /-- The injective seminorm on `⨂[𝕜] i, Eᵢ`. Morally, it sends `x` in `⨂[𝕜] i, Eᵢ` to the
`sup` of the operator norms of the `PiTensorProduct.toDualContinuousMultilinearMap F x`, for all
normed vector spaces `F`. In fact, we only take in the same universe as `⨂[𝕜] i, Eᵢ`, and then
prove in `PiTensorProduct.norm_eval_le_injectiveSeminorm` that this gives the same result.
-/
noncomputable irreducible_def injectiveSeminorm : Seminorm 𝕜 (⨂[𝕜] i, E i) 
goal: Seminorm 𝕜 (⨂[𝕜] (i : ι), E i)

full_name: PiTensorProduct.definition._@.Mathlib.Analysis.NormedSpace.PiTensorProduct.InjectiveSeminorm._hyg.382
code: /-- The injective seminorm on `⨂[𝕜] i, Eᵢ`. Morally, it sends `x` in `⨂[𝕜] i, Eᵢ` to the
`sup` of the operator norms of the `PiTensorProduct.toDualContinuousMultilinearMap F x`, for all
normed vector spaces `F`. In fact, we only take in the same universe as `⨂[𝕜] i, Eᵢ`, and then
prove in `PiTensorProduct.norm_eval_le_injectiveSeminorm` that this gives the same result.
-/
noncomputable irreducible_def injectiveSeminorm : Seminorm 𝕜 (⨂[𝕜] i, E i) 
goal: Seminorm 𝕜 (⨂[𝕜] (i : ι), E i)

full_name: PiTensorProduct.wrapped._@.Mathlib.Analysis.NormedSpace.PiTensorProduct.InjectiveSeminorm._hyg.382
code: /-- The injective seminorm on `⨂[𝕜] i, Eᵢ`. Morally, it sends `x` in `⨂[𝕜] i, Eᵢ` to the
`sup` of the operator norms of the `PiTensorProduct.toDualContinuousMultilinearMap F x`, for all
normed vector spaces `F`. In fact, we only take in the same universe as `⨂[𝕜] i, Eᵢ`, and then
prove in `PiTensorProduct.norm_eval_le_injectiveSeminorm` that this gives the same result.
-/
noncomputable irreducible_def injectiveSeminorm : Seminorm 𝕜 (⨂[𝕜] i, E i) 
goal: Subtype (Eq @PiTensorProduct.definition✝)

full_name: PiTensorProduct.dualSeminorms_bounded
code: lemma dualSeminorms_bounded : BddAbove {p | ∃ (G : Type (max uι u𝕜 uE))
    (_ : SeminormedAddCommGroup G) (_ : NormedSpace 𝕜 G),
    p = Seminorm.comp (normSeminorm 𝕜 (ContinuousMultilinearMap 𝕜 E G →L[𝕜] G))
    (toDualContinuousMultilinearMap G (𝕜 := 𝕜) (E := E))} 
goal: BddAbove
  {p |
    ∃ G x x_1,
      p =
        (normSeminorm 𝕜 (ContinuousMultilinearMap 𝕜 E G →L[𝕜] G)).comp
          (PiTensorProduct.toDualContinuousMultilinearMap G)}

full_name: PiTensorProduct.injectiveSeminorm_apply
code: theorem injectiveSeminorm_apply (x : ⨂[𝕜] i, E i) :
    injectiveSeminorm x = ⨆ p : {p | ∃ (G : Type (max uι u𝕜 uE))
    (_ : SeminormedAddCommGroup G) (_ : NormedSpace 𝕜 G), p = Seminorm.comp (normSeminorm 𝕜
    (ContinuousMultilinearMap 𝕜 E G →L[𝕜] G))
    (toDualContinuousMultilinearMap G (𝕜 := 𝕜) (E := E))}, p.1 x 
goal: PiTensorProduct.injectiveSeminorm x = ⨆ p, ↑p x

full_name: PiTensorProduct.norm_eval_le_injectiveSeminorm
code: theorem norm_eval_le_injectiveSeminorm (f : ContinuousMultilinearMap 𝕜 E F) (x : ⨂[𝕜] i, E i) :
    ‖lift f.toMultilinearMap x‖ ≤ ‖f‖ * injectiveSeminorm x 
goal: ‖(PiTensorProduct.lift f.toMultilinearMap) x‖ ≤ ‖f‖ * PiTensorProduct.injectiveSeminorm x

full_name: PiTensorProduct.injectiveSeminorm_le_projectiveSeminorm
code: theorem injectiveSeminorm_le_projectiveSeminorm :
    injectiveSeminorm (𝕜 := 𝕜) (E := E) ≤ projectiveSeminorm 
goal: PiTensorProduct.injectiveSeminorm ≤ PiTensorProduct.projectiveSeminorm

full_name: PiTensorProduct.injectiveSeminorm_tprod_le
code: theorem injectiveSeminorm_tprod_le (m : Π (i : ι), E i) :
    injectiveSeminorm (⨂ₜ[𝕜] i, m i) ≤ ∏ i, ‖m i‖ 
goal: PiTensorProduct.injectiveSeminorm (⨂ₜ[𝕜] (i : ι), m i) ≤ ∏ i : ι, ‖m i‖

full_name: PiTensorProduct.instSeminormedAddCommGroup
code: noncomputable instance : SeminormedAddCommGroup (⨂[𝕜] i, E i) 
goal: SeminormedAddCommGroup (⨂[𝕜] (i : ι), E i)

full_name: PiTensorProduct.instNormedSpace
code: noncomputable instance : NormedSpace 𝕜 (⨂[𝕜] i, E i) 
goal: NormedSpace 𝕜 (⨂[𝕜] (i : ι), E i)

full_name: PiTensorProduct.liftEquiv
code: /-- The linear equivalence between `ContinuousMultilinearMap 𝕜 E F` and `(⨂[𝕜] i, Eᵢ) →L[𝕜] F`
induced by `PiTensorProduct.lift`, for every normed space `F`.
-/
@[simps]
noncomputable def liftEquiv : ContinuousMultilinearMap 𝕜 E F ≃ₗ[𝕜] (⨂[𝕜] i, E i) →L[𝕜] F 
goal: ContinuousMultilinearMap 𝕜 E F ≃ₗ[𝕜] (⨂[𝕜] (i : ι), E i) →L[𝕜] F

full_name: PiTensorProduct.liftEquiv_symm_apply
code: /-- The linear equivalence between `ContinuousMultilinearMap 𝕜 E F` and `(⨂[𝕜] i, Eᵢ) →L[𝕜] F`
induced by `PiTensorProduct.lift`, for every normed space `F`.
-/
@[simps]
noncomputable def liftEquiv : ContinuousMultilinearMap 𝕜 E F ≃ₗ[𝕜] (⨂[𝕜] i, E i) →L[𝕜] F 
goal: (PiTensorProduct.liftEquiv 𝕜 E F).symm l = (PiTensorProduct.lift.symm ↑l).mkContinuous ‖l‖ ⋯

full_name: PiTensorProduct.liftEquiv_apply
code: /-- The linear equivalence between `ContinuousMultilinearMap 𝕜 E F` and `(⨂[𝕜] i, Eᵢ) →L[𝕜] F`
induced by `PiTensorProduct.lift`, for every normed space `F`.
-/
@[simps]
noncomputable def liftEquiv : ContinuousMultilinearMap 𝕜 E F ≃ₗ[𝕜] (⨂[𝕜] i, E i) →L[𝕜] F 
goal: (PiTensorProduct.liftEquiv 𝕜 E F) f = (PiTensorProduct.lift f.toMultilinearMap).mkContinuous ‖f‖ ⋯

full_name: PiTensorProduct.liftIsometry
code: /-- For a normed space `F`, we have constructed in `PiTensorProduct.liftEquiv` the canonical
linear equivalence between `ContinuousMultilinearMap 𝕜 E F` and `(⨂[𝕜] i, Eᵢ) →L[𝕜] F`
(induced by `PiTensorProduct.lift`). Here we give the upgrade of this equivalence to
an isometric linear equivalence; in particular, it is a continuous linear equivalence.
-/
noncomputable def liftIsometry : ContinuousMultilinearMap 𝕜 E F ≃ₗᵢ[𝕜] (⨂[𝕜] i, E i) →L[𝕜] F 
goal: ContinuousMultilinearMap 𝕜 E F ≃ₗᵢ[𝕜] (⨂[𝕜] (i : ι), E i) →L[𝕜] F

full_name: PiTensorProduct.liftIsometry_apply_apply
code: @[simp]
theorem liftIsometry_apply_apply (f : ContinuousMultilinearMap 𝕜 E F) (x : ⨂[𝕜] i, E i) :
    liftIsometry 𝕜 E F f x = lift f.toMultilinearMap x 
goal: ((PiTensorProduct.liftIsometry 𝕜 E F) f) x = (PiTensorProduct.lift f.toMultilinearMap) x

full_name: PiTensorProduct.tprodL
code: /-- The canonical continuous multilinear map from `E = Πᵢ Eᵢ` to `⨂[𝕜] i, Eᵢ`.
-/
@[simps!]
noncomputable def tprodL : ContinuousMultilinearMap 𝕜 E (⨂[𝕜] i, E i) 
goal: ContinuousMultilinearMap 𝕜 E (⨂[𝕜] (i : ι), E i)

full_name: PiTensorProduct.tprodL_apply
code: /-- The canonical continuous multilinear map from `E = Πᵢ Eᵢ` to `⨂[𝕜] i, Eᵢ`.
-/
@[simps!]
noncomputable def tprodL : ContinuousMultilinearMap 𝕜 E (⨂[𝕜] i, E i) 
goal: ∀ (a : (i : ι) → E i), (PiTensorProduct.tprodL 𝕜) a = (PiTensorProduct.tprod 𝕜) a

full_name: PiTensorProduct.tprodL_toFun
code: /-- The canonical continuous multilinear map from `E = Πᵢ Eᵢ` to `⨂[𝕜] i, Eᵢ`.
-/
@[simps!]
noncomputable def tprodL : ContinuousMultilinearMap 𝕜 E (⨂[𝕜] i, E i) 
goal: ∀ (a : (i : ι) → E i), (PiTensorProduct.tprodL 𝕜) a = (PiTensorProduct.tprod 𝕜) a

full_name: PiTensorProduct.tprodL_coe
code: @[simp]
theorem tprodL_coe : (tprodL 𝕜).toMultilinearMap = tprod 𝕜 (s := E) 
goal: (PiTensorProduct.tprodL 𝕜).toMultilinearMap = PiTensorProduct.tprod 𝕜

full_name: PiTensorProduct.liftIsometry_symm_apply
code: @[simp]
theorem liftIsometry_symm_apply (l : (⨂[𝕜] i, E i) →L[𝕜] F) :
    (liftIsometry 𝕜 E F).symm l = l.compContinuousMultilinearMap (tprodL 𝕜) 
goal: (PiTensorProduct.liftIsometry 𝕜 E F).symm l = l.compContinuousMultilinearMap (PiTensorProduct.tprodL 𝕜)

full_name: PiTensorProduct.liftIsometry_tprodL
code: @[simp]
theorem liftIsometry_tprodL :
    liftIsometry 𝕜 E _ (tprodL 𝕜) = ContinuousLinearMap.id 𝕜 (⨂[𝕜] i, E i) 
goal: (PiTensorProduct.liftIsometry 𝕜 E (⨂[𝕜] (i : ι), E i)) (PiTensorProduct.tprodL 𝕜) =
  ContinuousLinearMap.id 𝕜 (⨂[𝕜] (i : ι), E i)

full_name: PiTensorProduct.mapL
code: /--
Let `Eᵢ` and `E'ᵢ` be two families of normed `𝕜`-vector spaces.
Let `f` be a family of continuous `𝕜`-linear maps between `Eᵢ` and `E'ᵢ`, i.e.
`f : Πᵢ Eᵢ →L[𝕜] E'ᵢ`, then there is an induced continuous linear map
`⨂ᵢ Eᵢ → ⨂ᵢ E'ᵢ` by `⨂ aᵢ ↦ ⨂ fᵢ aᵢ`.
-/
noncomputable def mapL : (⨂[𝕜] i, E i) →L[𝕜] ⨂[𝕜] i, E' i 
goal: (⨂[𝕜] (i : ι), E i) →L[𝕜] ⨂[𝕜] (i : ι), E' i

full_name: PiTensorProduct.mapL_coe
code: @[simp]
theorem mapL_coe : (mapL f).toLinearMap = map (fun i ↦ (f i).toLinearMap) 
goal: ↑(PiTensorProduct.mapL f) = PiTensorProduct.map fun i => ↑(f i)

full_name: PiTensorProduct.mapL_apply
code: @[simp]
theorem mapL_apply (x : ⨂[𝕜] i, E i) : mapL f x = map (fun i ↦ (f i).toLinearMap) x 
goal: (PiTensorProduct.mapL f) x = (PiTensorProduct.map fun i => ↑(f i)) x

full_name: PiTensorProduct.mapLIncl
code: /-- Given submodules `pᵢ ⊆ Eᵢ`, this is the natural map: `⨂[𝕜] i, pᵢ → ⨂[𝕜] i, Eᵢ`.
This is the continuous version of `PiTensorProduct.mapIncl`.
-/
@[simp]
noncomputable def mapLIncl (p : Π i, Submodule 𝕜 (E i)) : (⨂[𝕜] i, p i) →L[𝕜] ⨂[𝕜] i, E i 
goal: (⨂[𝕜] (i : ι), ↥(p i)) →L[𝕜] ⨂[𝕜] (i : ι), E i

full_name: PiTensorProduct.mapL_comp
code: theorem mapL_comp : mapL (fun (i : ι) ↦ g i ∘L f i) = mapL g ∘L mapL f 
goal: (PiTensorProduct.mapL fun i => (g i).comp (f i)) = (PiTensorProduct.mapL g).comp (PiTensorProduct.mapL f)

full_name: PiTensorProduct.liftIsometry_comp_mapL
code: theorem liftIsometry_comp_mapL (h : ContinuousMultilinearMap 𝕜 E' F) :
    liftIsometry 𝕜 E' F h ∘L mapL f = liftIsometry 𝕜 E F (h.compContinuousLinearMap f) 
goal: ((PiTensorProduct.liftIsometry 𝕜 E' F) h).comp (PiTensorProduct.mapL f) =
  (PiTensorProduct.liftIsometry 𝕜 E F) (h.compContinuousLinearMap f)

full_name: PiTensorProduct.mapL_id
code: @[simp]
theorem mapL_id : mapL (fun i ↦ ContinuousLinearMap.id 𝕜 (E i)) = ContinuousLinearMap.id _ _ 
goal: (PiTensorProduct.mapL fun i => ContinuousLinearMap.id 𝕜 (E i)) = ContinuousLinearMap.id 𝕜 (⨂[𝕜] (i : ι), E i)

full_name: PiTensorProduct.mapL_one
code: @[simp]
theorem mapL_one : mapL (fun (i : ι) ↦ (1 : E i →L[𝕜] E i)) = 1 
goal: (PiTensorProduct.mapL fun i => 1) = 1

full_name: PiTensorProduct.mapL_mul
code: theorem mapL_mul (f₁ f₂ : Π i, E i →L[𝕜] E i) :
    mapL (fun i ↦ f₁ i * f₂ i) = mapL f₁ * mapL f₂ 
goal: (PiTensorProduct.mapL fun i => f₁ i * f₂ i) = PiTensorProduct.mapL f₁ * PiTensorProduct.mapL f₂

full_name: PiTensorProduct.mapLMonoidHom
code: /-- Upgrading `PiTensorProduct.mapL` to a `MonoidHom` when `E = E'`. -/
@[simps]
noncomputable def mapLMonoidHom : (Π i, E i →L[𝕜] E i) →* ((⨂[𝕜] i, E i) →L[𝕜] ⨂[𝕜] i, E i) 
goal: ((i : ι) → E i →L[𝕜] E i) →* (⨂[𝕜] (i : ι), E i) →L[𝕜] ⨂[𝕜] (i : ι), E i

full_name: PiTensorProduct.mapLMonoidHom_apply
code: /-- Upgrading `PiTensorProduct.mapL` to a `MonoidHom` when `E = E'`. -/
@[simps]
noncomputable def mapLMonoidHom : (Π i, E i →L[𝕜] E i) →* ((⨂[𝕜] i, E i) →L[𝕜] ⨂[𝕜] i, E i) 
goal: PiTensorProduct.mapLMonoidHom f = PiTensorProduct.mapL f

full_name: PiTensorProduct.mapL_pow
code: @[simp]
protected theorem mapL_pow (f : Π i, E i →L[𝕜] E i) (n : ℕ) :
    mapL (f ^ n) = mapL f ^ n 
goal: PiTensorProduct.mapL (f ^ n) = PiTensorProduct.mapL f ^ n

full_name: _private.Mathlib.Analysis.NormedSpace.PiTensorProduct.InjectiveSeminorm.0.PiTensorProduct.mapL_add_smul_aux
code: private theorem mapL_add_smul_aux [DecidableEq ι] (i : ι) (u : E i →L[𝕜] E' i) :
    (fun j ↦ (update f i u j).toLinearMap) =
    update (fun j ↦ (f j).toLinearMap) i u.toLinearMap 
goal: (fun j => ↑(Function.update f i u j)) = Function.update (fun j => ↑(f j)) i ↑u

full_name: PiTensorProduct.mapL_add
code: protected theorem mapL_add [DecidableEq ι] (i : ι) (u v : E i →L[𝕜] E' i) :
    mapL (update f i (u + v)) = mapL (update f i u) + mapL (update f i v) 
goal: PiTensorProduct.mapL (Function.update f i (u + v)) =
  PiTensorProduct.mapL (Function.update f i u) + PiTensorProduct.mapL (Function.update f i v)

full_name: PiTensorProduct.mapL_smul
code: protected theorem mapL_smul [DecidableEq ι] (i : ι) (c : 𝕜) (u : E i →L[𝕜] E' i) :
    mapL (update f i (c • u)) = c • mapL (update f i u) 
goal: PiTensorProduct.mapL (Function.update f i (c • u)) = c • PiTensorProduct.mapL (Function.update f i u)

full_name: PiTensorProduct.mapL_opNorm
code: theorem mapL_opNorm : ‖mapL f‖ ≤ ∏ i, ‖f i‖ 
goal: ‖PiTensorProduct.mapL f‖ ≤ ∏ i : ι, ‖f i‖

full_name: PiTensorProduct.mapLMultilinear_toFun_toFun
code: /-- The tensor of a family of linear maps from `Eᵢ` to `E'ᵢ`, as a continuous multilinear map of
the family.
-/
@[simps!]
noncomputable def mapLMultilinear : ContinuousMultilinearMap 𝕜 (fun (i : ι) ↦ E i →L[𝕜] E' i)
    ((⨂[𝕜] i, E i) →L[𝕜] ⨂[𝕜] i, E' i) 
goal: ∀ (a : ⨂[𝕜] (i : ι), E i),
  ((PiTensorProduct.mapLMultilinear 𝕜 E E') f) a =
    (PiTensorProduct.liftAux ((PiTensorProduct.tprodL 𝕜).compContinuousLinearMap f).toMultilinearMap) a

full_name: PiTensorProduct.mapLMultilinear_apply_apply
code: /-- The tensor of a family of linear maps from `Eᵢ` to `E'ᵢ`, as a continuous multilinear map of
the family.
-/
@[simps!]
noncomputable def mapLMultilinear : ContinuousMultilinearMap 𝕜 (fun (i : ι) ↦ E i →L[𝕜] E' i)
    ((⨂[𝕜] i, E i) →L[𝕜] ⨂[𝕜] i, E' i) 
goal: ∀ (a : ⨂[𝕜] (i : ι), E i),
  ((PiTensorProduct.mapLMultilinear 𝕜 E E') f) a =
    (PiTensorProduct.liftAux ((PiTensorProduct.tprodL 𝕜).compContinuousLinearMap f).toMultilinearMap) a

full_name: PiTensorProduct.mapLMultilinear
code: /-- The tensor of a family of linear maps from `Eᵢ` to `E'ᵢ`, as a continuous multilinear map of
the family.
-/
@[simps!]
noncomputable def mapLMultilinear : ContinuousMultilinearMap 𝕜 (fun (i : ι) ↦ E i →L[𝕜] E' i)
    ((⨂[𝕜] i, E i) →L[𝕜] ⨂[𝕜] i, E' i) 
goal: ContinuousMultilinearMap 𝕜 (fun i => E i →L[𝕜] E' i) ((⨂[𝕜] (i : ι), E i) →L[𝕜] ⨂[𝕜] (i : ι), E' i)

full_name: PiTensorProduct.mapLMultilinear_apply_toFun
code: /-- The tensor of a family of linear maps from `Eᵢ` to `E'ᵢ`, as a continuous multilinear map of
the family.
-/
@[simps!]
noncomputable def mapLMultilinear : ContinuousMultilinearMap 𝕜 (fun (i : ι) ↦ E i →L[𝕜] E' i)
    ((⨂[𝕜] i, E i) →L[𝕜] ⨂[𝕜] i, E' i) 
goal: ∀ (a : ⨂[𝕜] (i : ι), E i),
  ((PiTensorProduct.mapLMultilinear 𝕜 E E') f) a =
    (PiTensorProduct.liftAux ((PiTensorProduct.tprodL 𝕜).compContinuousLinearMap f).toMultilinearMap) a

full_name: PiTensorProduct.mapLMultilinear_toFun_apply
code: /-- The tensor of a family of linear maps from `Eᵢ` to `E'ᵢ`, as a continuous multilinear map of
the family.
-/
@[simps!]
noncomputable def mapLMultilinear : ContinuousMultilinearMap 𝕜 (fun (i : ι) ↦ E i →L[𝕜] E' i)
    ((⨂[𝕜] i, E i) →L[𝕜] ⨂[𝕜] i, E' i) 
goal: ∀ (a : ⨂[𝕜] (i : ι), E i),
  ((PiTensorProduct.mapLMultilinear 𝕜 E E') f) a =
    (PiTensorProduct.liftAux ((PiTensorProduct.tprodL 𝕜).compContinuousLinearMap f).toMultilinearMap) a

full_name: PiTensorProduct.mapLMultilinear_opNorm
code: theorem mapLMultilinear_opNorm : ‖mapLMultilinear 𝕜 E E'‖ ≤ 1 
goal: ‖PiTensorProduct.mapLMultilinear 𝕜 E E'‖ ≤ 1