Documentation

Monlib.LinearAlgebra.QuantumSet.SchurMul

Schur product operator #

In this file we define the Schur product operator and prove some basic properties.

noncomputable def schurMul {B : Type u_1} {C : Type u_2} [starAlgebra B] [starAlgebra C] [hB : QuantumSet B] [hC : QuantumSet C] :

Schur product ⬝ •ₛ ⬝ : (B → C) → (B → C) → (B → C) given by x •ₛ y := m ∘ (x ⊗ y) ∘ comul

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem schurMul_apply_apply {B : Type u_1} {C : Type u_2} [starAlgebra B] [starAlgebra C] [hB : QuantumSet B] [hC : QuantumSet C] (x : B →ₗ[] C) (y : B →ₗ[] C) :
    x •ₛ y = LinearMap.mul' C ∘ₗ TensorProduct.map x y ∘ₗ Coalgebra.comul

    Schur product ⬝ •ₛ ⬝ : (B → C) → (B → C) → (B → C) given by x •ₛ y := m ∘ (x ⊗ y) ∘ comul

    Equations
    Instances For

      Pretty printer defined by notation3 command.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem schurMul.apply_rankOne {B : Type u_1} {C : Type u_2} [starAlgebra B] [starAlgebra C] [hB : QuantumSet B] [hC : QuantumSet C] (a : B) (b : C) (c : B) (d : C) :
        (((rankOne ) a) b) •ₛ (((rankOne ) c) d) = (((rankOne ) (a * c)) (b * d))
        theorem schurMul.apply_ket {B : Type u_1} [starAlgebra B] [hB : QuantumSet B] (a : B) (b : B) :
        ((ket ) a) •ₛ ((ket ) b) = ((ket ) (a * b))
        theorem bra_tmul {𝕜 : Type u_1} {B : Type u_2} {C : Type u_3} [RCLike 𝕜] [NormedAddCommGroup B] [NormedAddCommGroup C] [InnerProductSpace 𝕜 B] [InnerProductSpace 𝕜 C] [FiniteDimensional 𝕜 B] [FiniteDimensional 𝕜 C] (a : B) (b : C) :
        ((bra 𝕜) (a ⊗ₜ[𝕜] b)) = (TensorProduct.lid 𝕜 𝕜) ∘ₗ TensorProduct.map ((bra 𝕜) a) ((bra 𝕜) b)
        theorem bra_map_bra {𝕜 : Type u_1} {B : Type u_2} {C : Type u_3} [RCLike 𝕜] [NormedAddCommGroup B] [NormedAddCommGroup C] [InnerProductSpace 𝕜 B] [InnerProductSpace 𝕜 C] [FiniteDimensional 𝕜 B] [FiniteDimensional 𝕜 C] (a : B) (b : C) :
        TensorProduct.map ((bra 𝕜) a) ((bra 𝕜) b) = (TensorProduct.lid 𝕜 𝕜).symm ∘ₗ ((bra 𝕜) (a ⊗ₜ[𝕜] b))
        theorem ket_tmul {𝕜 : Type u_1} {B : Type u_2} {C : Type u_3} [RCLike 𝕜] [NormedAddCommGroup B] [NormedAddCommGroup C] [InnerProductSpace 𝕜 B] [InnerProductSpace 𝕜 C] [FiniteDimensional 𝕜 B] [FiniteDimensional 𝕜 C] (a : B) (b : C) :
        ((ket 𝕜) (a ⊗ₜ[𝕜] b)) = TensorProduct.map ((ket 𝕜) a) ((ket 𝕜) b) ∘ₗ (TensorProduct.lid 𝕜 𝕜).symm
        theorem ket_map_ket {𝕜 : Type u_1} {B : Type u_2} {C : Type u_3} [RCLike 𝕜] [NormedAddCommGroup B] [NormedAddCommGroup C] [InnerProductSpace 𝕜 B] [InnerProductSpace 𝕜 C] [FiniteDimensional 𝕜 B] [FiniteDimensional 𝕜 C] (a : B) (b : C) :
        TensorProduct.map ((ket 𝕜) a) ((ket 𝕜) b) = ((ket 𝕜) (a ⊗ₜ[𝕜] b)) ∘ₗ (TensorProduct.lid 𝕜 𝕜)
        theorem rankOne_tmul {𝕜 : Type u_1} {B : Type u_2} {C : Type u_3} [RCLike 𝕜] [NormedAddCommGroup B] [NormedAddCommGroup C] [InnerProductSpace 𝕜 B] [InnerProductSpace 𝕜 C] [FiniteDimensional 𝕜 B] [FiniteDimensional 𝕜 C] {A : Type u_4} {D : Type u_5} [NormedAddCommGroup A] [NormedAddCommGroup D] [InnerProductSpace 𝕜 A] [InnerProductSpace 𝕜 D] [FiniteDimensional 𝕜 A] [FiniteDimensional 𝕜 D] (a : A) (b : B) (c : C) (d : D) :
        (((rankOne 𝕜) (a ⊗ₜ[𝕜] c)) (b ⊗ₜ[𝕜] d)) = TensorProduct.map (((rankOne 𝕜) a) b) (((rankOne 𝕜) c) d)
        theorem bra_comp_linearMap {𝕜 : Type u_1} {E₁ : Type u_2} {E₂ : Type u_3} [RCLike 𝕜] [NormedAddCommGroup E₁] [InnerProductSpace 𝕜 E₁] [NormedAddCommGroup E₂] [InnerProductSpace 𝕜 E₂] [FiniteDimensional 𝕜 E₁] [FiniteDimensional 𝕜 E₂] (x : E₂) (f : E₁ →ₗ[𝕜] E₂) :
        ((bra 𝕜) x) ∘ₗ f = ((bra 𝕜) ((LinearMap.adjoint f) x))
        theorem linearMap_comp_ket {𝕜 : Type u_1} {E₁ : Type u_2} {E₂ : Type u_3} [RCLike 𝕜] [NormedAddCommGroup E₁] [InnerProductSpace 𝕜 E₁] [NormedAddCommGroup E₂] [InnerProductSpace 𝕜 E₂] (x : E₁) (f : E₁ →ₗ[𝕜] E₂) :
        f ∘ₗ ((ket 𝕜) x) = ((ket 𝕜) (f x))
        theorem mul_comp_lid_symm {R : Type u_1} [CommSemiring R] :
        LinearMap.mul' R R ∘ₗ (TensorProduct.lid R R).symm = LinearMap.id
        theorem schurMul.apply_bra {B : Type u_1} [starAlgebra B] [hB : QuantumSet B] (a : B) (b : B) :
        ((bra ) a) •ₛ ((bra ) b) = ((bra ) (a * b))
        theorem schurMul.comp_apply_of {A : Type u_1} {B : Type u_3} {C : Type u_5} [starAlgebra A] [starAlgebra B] [starAlgebra C] [hA : QuantumSet A] [hB : QuantumSet B] [hC : QuantumSet C] (δ : ) (hAδ : Coalgebra.comul ∘ₗ LinearMap.mul' A = δ LinearMap.id) (a : A →ₗ[] B) (b : A →ₗ[] B) (c : C →ₗ[] A) (d : C →ₗ[] A) :
        (a •ₛ b) ∘ₗ c •ₛ d = δ (a ∘ₗ c) •ₛ b ∘ₗ d
        theorem schurMul_one_one_right {B : Type u_2} {C : Type u_1} [starAlgebra B] [starAlgebra C] [hB : QuantumSet B] [hC : QuantumSet C] (A : C →ₗ[] B) :
        A •ₛ (((rankOne ) 1) 1) = A
        theorem schurMul_one_one_left {B : Type u_2} {C : Type u_1} [starAlgebra B] [starAlgebra C] [hB : QuantumSet B] [hC : QuantumSet C] (A : C →ₗ[] B) :
        (((rankOne ) 1) 1) •ₛ A = A
        theorem schurMul_adjoint {B : Type u_1} {C : Type u_2} [starAlgebra B] [starAlgebra C] [hB : QuantumSet B] [hC : QuantumSet C] (x : B →ₗ[] C) (y : B →ₗ[] C) :
        LinearMap.adjoint (x •ₛ y) = LinearMap.adjoint x •ₛ LinearMap.adjoint y
        theorem schurMul_real {A : Type u_1} {B : Type u_2} [starAlgebra A] [starAlgebra B] [hA : QuantumSet A] [hB : QuantumSet B] (x : A →ₗ[] B) (y : A →ₗ[] B) :
        (x •ₛ y).real = y.real •ₛ x.real
        theorem schurMul_one_right_rankOne {B : Type u_1} [starAlgebra B] [hB : QuantumSet B] (a : B) (b : B) :
        (((rankOne ) a) b) •ₛ 1 = lmul a * LinearMap.adjoint (lmul b)
        theorem schurMul_one_left_rankOne {B : Type u_1} [starAlgebra B] [hB : QuantumSet B] (a : B) (b : B) :
        1 •ₛ (((rankOne ) a) b) = rmul a * LinearMap.adjoint (rmul b)
        theorem Psi.schurMul {A : Type u_1} {B : Type u_2} [starAlgebra A] [starAlgebra B] [hA : QuantumSet A] [hB : QuantumSet B] (r₁ : ) (r₂ : ) (f : A →ₗ[] B) (g : A →ₗ[] B) :
        (QuantumSet.Psi r₁ r₂) (f •ₛ g) = (QuantumSet.Psi r₁ r₂) f * (QuantumSet.Psi r₁ r₂) g
        theorem schurMul_assoc {A : Type u_1} {B : Type u_2} [starAlgebra A] [starAlgebra B] [hA : QuantumSet A] [hB : QuantumSet B] (f : A →ₗ[] B) (g : A →ₗ[] B) (h : A →ₗ[] B) :
        (f •ₛ g) •ₛ h = f •ₛ g •ₛ h
        theorem algHom_comp_mul {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] (f : A →ₐ[R] B) :
        f.toLinearMap ∘ₗ LinearMap.mul' R A = LinearMap.mul' R B ∘ₗ TensorProduct.map f.toLinearMap f.toLinearMap
        theorem comul_comp_algHom_adjoint {A : Type u_1} {B : Type u_2} [starAlgebra A] [starAlgebra B] [hA : QuantumSet A] [hB : QuantumSet B] (f : A →ₐ[] B) :
        Coalgebra.comul ∘ₗ LinearMap.adjoint f.toLinearMap = TensorProduct.map (LinearMap.adjoint f.toLinearMap) (LinearMap.adjoint f.toLinearMap) ∘ₗ Coalgebra.comul
        theorem schurMul_algHom_comp_coalgHom {A : Type u_4} {B : Type u_5} {C : Type u_3} [starAlgebra A] [starAlgebra B] [starAlgebra C] [hA : QuantumSet A] [hB : QuantumSet B] [hC : QuantumSet C] {D : Type u_1} [starAlgebra D] [hD : QuantumSet D] (g : C →ₐ[] D) (f : A →ₗc[] B) (x : B →ₗ[] C) (y : B →ₗ[] C) :
        (g.toLinearMap ∘ₗ x ∘ₗ f.toLinearMap) •ₛ g.toLinearMap ∘ₗ y ∘ₗ f.toLinearMap = g.toLinearMap ∘ₗ (x •ₛ y) ∘ₗ f.toLinearMap
        theorem schurMul_algHom_comp_algHom_adjoint {A : Type u_5} {B : Type u_4} {C : Type u_3} [starAlgebra A] [starAlgebra B] [starAlgebra C] [hA : QuantumSet A] [hB : QuantumSet B] [hC : QuantumSet C] {D : Type u_1} [starAlgebra D] [hD : QuantumSet D] (g : C →ₐ[] D) (f : B →ₐ[] A) (x : B →ₗ[] C) (y : B →ₗ[] C) :
        (g.toLinearMap ∘ₗ x ∘ₗ LinearMap.adjoint f.toLinearMap) •ₛ g.toLinearMap ∘ₗ y ∘ₗ LinearMap.adjoint f.toLinearMap = g.toLinearMap ∘ₗ (x •ₛ y) ∘ₗ LinearMap.adjoint f.toLinearMap
        theorem schurMul_one_iff_one_schurMul_of_isReal {A : Type u_1} {B : Type u_2} [starAlgebra A] [starAlgebra B] [hA : QuantumSet A] [hB : QuantumSet B] {x : A →ₗ[] B} {y : A →ₗ[] B} {z : A →ₗ[] B} (hx : LinearMap.IsReal x) (hy : LinearMap.IsReal y) (hz : LinearMap.IsReal z) :
        x •ₛ y = z y •ₛ x = z
        theorem schurMul_reflexive_of_isReal {A : Type u_1} [starAlgebra A] [hA : QuantumSet A] {x : A →ₗ[] A} (hx : LinearMap.IsReal x) :
        x •ₛ 1 = 1 1 •ₛ x = 1
        theorem schurMul_irreflexive_of_isReal {A : Type u_1} [starAlgebra A] [hA : QuantumSet A] {x : A →ₗ[] A} (hx : LinearMap.IsReal x) :
        x •ₛ 1 = 0 1 •ₛ x = 0
        theorem schurIdempotent_iff_Psi_isIdempotentElem {A : Type u_1} {B : Type u_2} [starAlgebra A] [starAlgebra B] [hA : QuantumSet A] [QuantumSet B] (f : A →ₗ[] B) (t : ) (r : ) :
        f •ₛ f = f IsIdempotentElem ((QuantumSet.Psi t r) f)