Documentation

Monlib.LinearAlgebra.TensorProduct.Submodule

noncomputable def Submodule.tensorProduct {R : Type u_1} {E : Type u_2} {F : Type u_3} [CommSemiring R] [AddCommMonoid E] [AddCommMonoid F] [Module R E] [Module R F] (V : Submodule R E) (W : Submodule R F) :
Equations
Instances For
    theorem Submodule.tensorProduct_mem {R : Type u_1} {E : Type u_2} {F : Type u_3} [CommSemiring R] [AddCommMonoid E] [AddCommMonoid F] [Module R E] [Module R F] {V : Submodule R E} {W : Submodule R F} (x : TensorProduct R V W) :
    (TensorProduct.mapIncl V W) x V.tensorProduct W
    noncomputable def Submodule.mem_tensorProduct {R : Type u_1} {E : Type u_2} {F : Type u_3} [CommSemiring R] [AddCommMonoid E] [AddCommMonoid F] [Module R E] [Module R F] {V : Submodule R E} {W : Submodule R F} (vw : (V.tensorProduct W)) :
    TensorProduct R V W
    Equations
    Instances For
      theorem Submodule.mem_tensorProduct_eq {R : Type u_1} {E : Type u_2} {F : Type u_3} [CommSemiring R] [AddCommMonoid E] [AddCommMonoid F] [Module R E] [Module R F] {V : Submodule R E} {W : Submodule R F} (vw : (V.tensorProduct W)) :
      theorem norm_tmul {𝕜 : Type u_4} {B : Type u_5} {C : Type u_6} [RCLike 𝕜] [NormedAddCommGroup B] [NormedAddCommGroup C] [InnerProductSpace 𝕜 B] [InnerProductSpace 𝕜 C] [FiniteDimensional 𝕜 B] [FiniteDimensional 𝕜 C] (x : B) (y : C) :
      theorem TensorProduct.mapIncl_norm_map {𝕜 : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike 𝕜] [NormedAddCommGroup E] [NormedAddCommGroup F] [InnerProductSpace 𝕜 E] [InnerProductSpace 𝕜 F] [FiniteDimensional 𝕜 E] [FiniteDimensional 𝕜 F] (V : Submodule 𝕜 E) (W : Submodule 𝕜 F) (x : TensorProduct 𝕜 V W) :
      noncomputable def Submodule.tensorProduct_linearIsometryEquiv {𝕜 : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike 𝕜] [NormedAddCommGroup E] [NormedAddCommGroup F] [InnerProductSpace 𝕜 E] [InnerProductSpace 𝕜 F] [FiniteDimensional 𝕜 E] [FiniteDimensional 𝕜 F] (V : Submodule 𝕜 E) (W : Submodule 𝕜 F) :
      TensorProduct 𝕜 V W ≃ₗᵢ[𝕜] (V.tensorProduct W)
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        noncomputable def Submodule.tensorProduct_orthonormalBasis {𝕜 : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike 𝕜] [NormedAddCommGroup E] [NormedAddCommGroup F] [InnerProductSpace 𝕜 E] [InnerProductSpace 𝕜 F] [FiniteDimensional 𝕜 E] [FiniteDimensional 𝕜 F] {V : Submodule 𝕜 E} {W : Submodule 𝕜 F} {ι₁ : Type u_4} {ι₂ : Type u_5} [Fintype ι₁] [Fintype ι₂] [DecidableEq ι₁] [DecidableEq ι₂] (v : OrthonormalBasis ι₁ 𝕜 V) (w : OrthonormalBasis ι₂ 𝕜 W) :
        OrthonormalBasis (ι₁ × ι₂) 𝕜 (V.tensorProduct W)
        Equations
        Instances For
          theorem Submodule.tensorProduct_orthonormalBasis_apply {𝕜 : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike 𝕜] [NormedAddCommGroup E] [NormedAddCommGroup F] [InnerProductSpace 𝕜 E] [InnerProductSpace 𝕜 F] [FiniteDimensional 𝕜 E] [FiniteDimensional 𝕜 F] {V : Submodule 𝕜 E} {W : Submodule 𝕜 F} {ι₁ : Type u_4} {ι₂ : Type u_5} [Fintype ι₁] [Fintype ι₂] [DecidableEq ι₁] [DecidableEq ι₂] (v : OrthonormalBasis ι₁ 𝕜 V) (w : OrthonormalBasis ι₂ 𝕜 W) (i : ι₁ × ι₂) :
          ((Submodule.tensorProduct_orthonormalBasis v w) i) = (v i.1) ⊗ₜ[𝕜] (w i.2)
          theorem Submodule.tensorProduct_finrank {𝕜 : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike 𝕜] [NormedAddCommGroup E] [NormedAddCommGroup F] [InnerProductSpace 𝕜 E] [InnerProductSpace 𝕜 F] [FiniteDimensional 𝕜 E] [FiniteDimensional 𝕜 F] {V : Submodule 𝕜 E} {W : Submodule 𝕜 F} :
          Module.finrank 𝕜 (V.tensorProduct W) = Module.finrank 𝕜 V * Module.finrank 𝕜 W
          theorem TensorProduct.submodule_exists_le_tensorProduct {R : Type u_4} {M : Type u_5} {N : Type u_6} [Field R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (U : Submodule R (TensorProduct R M N)) (hU : Module.Finite R U) :
          ∃ (M' : Submodule R M) (N' : Submodule R N) (_ : Module.Finite R M') (_ : Module.Finite R N'), U M'.tensorProduct N'
          theorem TensorProduct.submodule_exists_le_tensorProduct_ofFiniteDimensional {R : Type u_4} {M : Type u_5} {N : Type u_6} [Field R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] [Module.Finite R M] [Module.Finite R N] (U : Submodule R (TensorProduct R M N)) :
          ∃ (M' : Submodule R M) (N' : Submodule R N), U M'.tensorProduct N'
          def piProdUnitEquivPi {R : Type u_4} {n : Type u_5} [Semiring R] :
          (n × UnitR) ≃ₗ[R] nR
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def Matrix.ofCol {R : Type u_4} {n : Type u_5} [Semiring R] :
            Matrix n Unit R ≃ₗ[R] nR

            matrix.col written as a linear equivalence

            Equations
            • Matrix.ofCol = Matrix.reshape ≪≫ₗ piProdUnitEquivPi
            Instances For
              def matrixProdUnitRight {R : Type u_4} {n : Type u_5} {m : Type u_6} [Semiring R] :
              Matrix n (m × Unit) R ≃ₗ[R] Matrix n m R
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                theorem col_hMul_col_conjTranspose_is_kronecker_of_vectors {R : Type u_4} {m : Type u_5} {n : Type u_6} [Semiring R] (x : mR) (y : nR) :
                Matrix.vecMulVec x y = Matrix.reshape.symm (Matrix.ofCol (matrixProdUnitRight (Matrix.kroneckerMap (fun (x1 x2 : R) => x1 * x2) (Matrix.col Unit x) (Matrix.col Unit y))))

                vec_mulVec x y written as a kronecker product

                noncomputable def PiLp_tensorEquiv {𝕜 : Type u_1} [RCLike 𝕜] {ι₁ : Type u_4} {ι₂ : Type u_5} [DecidableEq ι₁] [DecidableEq ι₂] [Fintype ι₁] [Fintype ι₂] {M₁ : ι₁Type u_6} {M₂ : ι₂Type u_7} [(i₁ : ι₁) → NormedAddCommGroup (M₁ i₁)] [(i₂ : ι₂) → NormedAddCommGroup (M₂ i₂)] [(i₁ : ι₁) → InnerProductSpace 𝕜 (M₁ i₁)] [(i₂ : ι₂) → InnerProductSpace 𝕜 (M₂ i₂)] :
                TensorProduct 𝕜 (PiLp 2 M₁) (PiLp 2 M₂) ≃ₗ[𝕜] PiLp 2 fun (i : ι₁ × ι₂) => TensorProduct 𝕜 (M₁ i.1) (M₂ i.2)
                Equations
                • PiLp_tensorEquiv = directSumTensor
                Instances For
                  @[simp]
                  theorem PiLp_tensorEquiv_symm_apply {𝕜 : Type u_1} [RCLike 𝕜] {ι₁ : Type u_4} {ι₂ : Type u_5} [DecidableEq ι₁] [DecidableEq ι₂] [Fintype ι₁] [Fintype ι₂] {M₁ : ι₁Type u_6} {M₂ : ι₂Type u_7} [(i₁ : ι₁) → NormedAddCommGroup (M₁ i₁)] [(i₂ : ι₂) → NormedAddCommGroup (M₂ i₂)] [(i₁ : ι₁) → InnerProductSpace 𝕜 (M₁ i₁)] [(i₂ : ι₂) → InnerProductSpace 𝕜 (M₂ i₂)] (a : (i : ι₁ × ι₂) → TensorProduct 𝕜 (M₁ i.1) (M₂ i.2)) :
                  PiLp_tensorEquiv.symm a = directSumTensorInvFun a
                  @[simp]
                  theorem PiLp_tensorEquiv_apply {𝕜 : Type u_1} [RCLike 𝕜] {ι₁ : Type u_4} {ι₂ : Type u_5} [DecidableEq ι₁] [DecidableEq ι₂] [Fintype ι₁] [Fintype ι₂] {M₁ : ι₁Type u_6} {M₂ : ι₂Type u_7} [(i₁ : ι₁) → NormedAddCommGroup (M₁ i₁)] [(i₂ : ι₂) → NormedAddCommGroup (M₂ i₂)] [(i₁ : ι₁) → InnerProductSpace 𝕜 (M₁ i₁)] [(i₂ : ι₂) → InnerProductSpace 𝕜 (M₂ i₂)] (a : TensorProduct 𝕜 ((i : ι₁) → M₁ i) ((i : ι₂) → M₂ i)) (i : ι₁ × ι₂) :
                  PiLp_tensorEquiv a i = directSumTensorToFun a i
                  theorem PiLp_tensorEquiv_tmul {𝕜 : Type u_1} [RCLike 𝕜] {ι₁ : Type u_4} {ι₂ : Type u_5} [DecidableEq ι₁] [DecidableEq ι₂] [Fintype ι₁] [Fintype ι₂] {M₁ : ι₁Type u_6} {M₂ : ι₂Type u_7} [(i₁ : ι₁) → NormedAddCommGroup (M₁ i₁)] [(i₂ : ι₂) → NormedAddCommGroup (M₂ i₂)] [(i₁ : ι₁) → InnerProductSpace 𝕜 (M₁ i₁)] [(i₂ : ι₂) → InnerProductSpace 𝕜 (M₂ i₂)] (x : PiLp 2 M₁) (y : PiLp 2 M₂) (i : ι₁ × ι₂) :
                  PiLp_tensorEquiv (x ⊗ₜ[𝕜] y) i = x i.1 ⊗ₜ[𝕜] y i.2
                  @[simp]
                  theorem PiLp_tensorEquiv_norm_map {𝕜 : Type u_1} [RCLike 𝕜] {ι₁ : Type u_4} {ι₂ : Type u_5} [DecidableEq ι₁] [DecidableEq ι₂] [Fintype ι₁] [Fintype ι₂] {M₁ : ι₁Type u_6} {M₂ : ι₂Type u_7} [(i₁ : ι₁) → NormedAddCommGroup (M₁ i₁)] [(i₂ : ι₂) → NormedAddCommGroup (M₂ i₂)] [(i₁ : ι₁) → InnerProductSpace 𝕜 (M₁ i₁)] [(i₂ : ι₂) → InnerProductSpace 𝕜 (M₂ i₂)] [∀ (i : ι₁), FiniteDimensional 𝕜 (M₁ i)] [∀ (i : ι₂), FiniteDimensional 𝕜 (M₂ i)] (x : TensorProduct 𝕜 (PiLp 2 M₁) (PiLp 2 M₂)) :
                  PiLp_tensorEquiv x = x
                  @[reducible, inline]
                  noncomputable abbrev PiLp_tensorLinearIsometryEquiv {𝕜 : Type u_1} [RCLike 𝕜] {ι₁ : Type u_4} {ι₂ : Type u_5} [DecidableEq ι₁] [DecidableEq ι₂] [Fintype ι₁] [Fintype ι₂] {M₁ : ι₁Type u_6} {M₂ : ι₂Type u_7} [(i₁ : ι₁) → NormedAddCommGroup (M₁ i₁)] [(i₂ : ι₂) → NormedAddCommGroup (M₂ i₂)] [(i₁ : ι₁) → InnerProductSpace 𝕜 (M₁ i₁)] [(i₂ : ι₂) → InnerProductSpace 𝕜 (M₂ i₂)] [∀ (i : ι₁), FiniteDimensional 𝕜 (M₁ i)] [∀ (i : ι₂), FiniteDimensional 𝕜 (M₂ i)] :
                  TensorProduct 𝕜 (PiLp 2 M₁) (PiLp 2 M₂) ≃ₗᵢ[𝕜] PiLp 2 fun (i : ι₁ × ι₂) => TensorProduct 𝕜 (M₁ i.1) (M₂ i.2)
                  Equations
                  • PiLp_tensorLinearIsometryEquiv = { toLinearEquiv := PiLp_tensorEquiv, norm_map' := }
                  Instances For
                    @[simp]
                    theorem PiLp_tensorLinearIsometryEquiv_invFun {𝕜 : Type u_1} [RCLike 𝕜] {ι₁ : Type u_4} {ι₂ : Type u_5} [DecidableEq ι₁] [DecidableEq ι₂] [Fintype ι₁] [Fintype ι₂] {M₁ : ι₁Type u_6} {M₂ : ι₂Type u_7} [(i₁ : ι₁) → NormedAddCommGroup (M₁ i₁)] [(i₂ : ι₂) → NormedAddCommGroup (M₂ i₂)] [(i₁ : ι₁) → InnerProductSpace 𝕜 (M₁ i₁)] [(i₂ : ι₂) → InnerProductSpace 𝕜 (M₂ i₂)] [∀ (i : ι₁), FiniteDimensional 𝕜 (M₁ i)] [∀ (i : ι₂), FiniteDimensional 𝕜 (M₂ i)] (a : (i : ι₁ × ι₂) → TensorProduct 𝕜 (M₁ i.1) (M₂ i.2)) :
                    PiLp_tensorLinearIsometryEquiv.invFun a = directSumTensorInvFun a
                    @[simp]
                    theorem PiLp_tensorLinearIsometryEquiv_toFun {𝕜 : Type u_1} [RCLike 𝕜] {ι₁ : Type u_4} {ι₂ : Type u_5} [DecidableEq ι₁] [DecidableEq ι₂] [Fintype ι₁] [Fintype ι₂] {M₁ : ι₁Type u_6} {M₂ : ι₂Type u_7} [(i₁ : ι₁) → NormedAddCommGroup (M₁ i₁)] [(i₂ : ι₂) → NormedAddCommGroup (M₂ i₂)] [(i₁ : ι₁) → InnerProductSpace 𝕜 (M₁ i₁)] [(i₂ : ι₂) → InnerProductSpace 𝕜 (M₂ i₂)] [∀ (i : ι₁), FiniteDimensional 𝕜 (M₁ i)] [∀ (i : ι₂), FiniteDimensional 𝕜 (M₂ i)] (a : TensorProduct 𝕜 ((i : ι₁) → M₁ i) ((i : ι₂) → M₂ i)) (i : ι₁ × ι₂) :
                    PiLp_tensorLinearIsometryEquiv a i = directSumTensorToFun a i
                    @[simp]
                    theorem PiLp_tensorLinearIsometryEquiv_symm_apply {𝕜 : Type u_1} [RCLike 𝕜] {ι₁ : Type u_4} {ι₂ : Type u_5} [DecidableEq ι₁] [DecidableEq ι₂] [Fintype ι₁] [Fintype ι₂] {M₁ : ι₁Type u_6} {M₂ : ι₂Type u_7} [(i₁ : ι₁) → NormedAddCommGroup (M₁ i₁)] [(i₂ : ι₂) → NormedAddCommGroup (M₂ i₂)] [(i₁ : ι₁) → InnerProductSpace 𝕜 (M₁ i₁)] [(i₂ : ι₂) → InnerProductSpace 𝕜 (M₂ i₂)] [∀ (i : ι₁), FiniteDimensional 𝕜 (M₁ i)] [∀ (i : ι₂), FiniteDimensional 𝕜 (M₂ i)] (a : (i : ι₁ × ι₂) → TensorProduct 𝕜 (M₁ i.1) (M₂ i.2)) :
                    PiLp_tensorLinearIsometryEquiv.symm a = directSumTensorInvFun a
                    @[simp]
                    theorem PiLp_tensorLinearIsometryEquiv_apply {𝕜 : Type u_1} [RCLike 𝕜] {ι₁ : Type u_4} {ι₂ : Type u_5} [DecidableEq ι₁] [DecidableEq ι₂] [Fintype ι₁] [Fintype ι₂] {M₁ : ι₁Type u_6} {M₂ : ι₂Type u_7} [(i₁ : ι₁) → NormedAddCommGroup (M₁ i₁)] [(i₂ : ι₂) → NormedAddCommGroup (M₂ i₂)] [(i₁ : ι₁) → InnerProductSpace 𝕜 (M₁ i₁)] [(i₂ : ι₂) → InnerProductSpace 𝕜 (M₂ i₂)] [∀ (i : ι₁), FiniteDimensional 𝕜 (M₁ i)] [∀ (i : ι₂), FiniteDimensional 𝕜 (M₂ i)] (a : TensorProduct 𝕜 ((i : ι₁) → M₁ i) ((i : ι₂) → M₂ i)) (i : ι₁ × ι₂) :
                    PiLp_tensorLinearIsometryEquiv a i = directSumTensorToFun a i
                    theorem PiLp_tensorLinearIsometryEquiv_tmul {𝕜 : Type u_1} [RCLike 𝕜] {ι₁ : Type u_4} {ι₂ : Type u_5} [DecidableEq ι₁] [DecidableEq ι₂] [Fintype ι₁] [Fintype ι₂] {M₁ : ι₁Type u_6} {M₂ : ι₂Type u_7} [(i₁ : ι₁) → NormedAddCommGroup (M₁ i₁)] [(i₂ : ι₂) → NormedAddCommGroup (M₂ i₂)] [(i₁ : ι₁) → InnerProductSpace 𝕜 (M₁ i₁)] [(i₂ : ι₂) → InnerProductSpace 𝕜 (M₂ i₂)] [∀ (i : ι₁), FiniteDimensional 𝕜 (M₁ i)] [∀ (i : ι₂), FiniteDimensional 𝕜 (M₂ i)] (x : PiLp 2 M₁) (y : PiLp 2 M₂) (i : ι₁ × ι₂) :
                    PiLp_tensorLinearIsometryEquiv (x ⊗ₜ[𝕜] y) i = x i.1 ⊗ₜ[𝕜] y i.2
                    @[reducible, inline]
                    noncomputable abbrev euclideanSpaceTensor {R : Type u_4} [RCLike R] {ι₁ : Type u_5} {ι₂ : Type u_6} [Fintype ι₁] [Fintype ι₂] [DecidableEq ι₁] [DecidableEq ι₂] :
                    Equations
                    • euclideanSpaceTensor = PiLp_tensorLinearIsometryEquiv
                    Instances For
                      theorem euclideanSpaceTensor_apply {R : Type u_4} [RCLike R] {ι₁ : Type u_5} {ι₂ : Type u_6} [Fintype ι₁] [Fintype ι₂] [DecidableEq ι₁] [DecidableEq ι₂] (x : EuclideanSpace R ι₁) (y : EuclideanSpace R ι₂) (i : ι₁ × ι₂) :
                      euclideanSpaceTensor (x ⊗ₜ[R] y) i = x i.1 ⊗ₜ[R] y i.2
                      noncomputable def TensorProduct.lid_linearIsometryEquiv (𝕜 : Type u_4) (E : Type u_5) [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] [FiniteDimensional 𝕜 E] :
                      TensorProduct 𝕜 𝕜 E ≃ₗᵢ[𝕜] E
                      Equations
                      Instances For
                        @[simp]
                        theorem TensorProduct.lid_linearIsometryEquiv_invFun (𝕜 : Type u_4) (E : Type u_5) [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] [FiniteDimensional 𝕜 E] (a : E) :
                        @[reducible, inline]
                        noncomputable abbrev euclideanSpaceTensor' {R : Type u_4} [RCLike R] {ι₁ : Type u_5} {ι₂ : Type u_6} [Fintype ι₁] [Fintype ι₂] [DecidableEq ι₁] [DecidableEq ι₂] :
                        Equations
                        Instances For
                          theorem euclideanSpaceTensor'_apply {R : Type u_4} [RCLike R] {ι₁ : Type u_5} {ι₂ : Type u_6} [Fintype ι₁] [Fintype ι₂] [DecidableEq ι₁] [DecidableEq ι₂] (x : EuclideanSpace R ι₁) (y : EuclideanSpace R ι₂) (i : ι₁ × ι₂) :
                          euclideanSpaceTensor' (x ⊗ₜ[R] y) i = x i.1 * y i.2
                          theorem LinearIsometryEquiv.linearMap_adjoint {𝕜 : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike 𝕜] [NormedAddCommGroup E] [NormedAddCommGroup F] [InnerProductSpace 𝕜 E] [InnerProductSpace 𝕜 F] [FiniteDimensional 𝕜 E] [FiniteDimensional 𝕜 F] {f : E ≃ₗᵢ[𝕜] F} :
                          LinearMap.adjoint f.toLinearEquiv = f.symm.toLinearEquiv
                          theorem TensorProduct.ring_tmul {R : Type u_4} [CommRing R] (x : TensorProduct R R R) :
                          ∃ (a : R) (b : R), x = a ⊗ₜ[R] b
                          theorem submodule_neq_tensorProduct_of {R : Type u_4} [RCLike R] {E : Type u_5} {F : Type u_6} [NormedAddCommGroup E] [NormedAddCommGroup F] [InnerProductSpace R E] [InnerProductSpace R F] [FiniteDimensional R E] [FiniteDimensional R F] (U : Submodule R (TensorProduct R E F)) {p : } (hp : Nat.Prime p) (hU : Module.finrank R U = p) :
                          ¬∃ (V : Submodule R E) (W : Submodule R F) (_ : 1 < Module.finrank R V) (_ : 1 < Module.finrank R W), U = V.tensorProduct W