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
- schurMulNotation = Lean.ParserDescr.trailingNode `schurMulNotation 80 81 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " •ₛ ") (Lean.ParserDescr.cat `term 80))
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)
:
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)
:
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₂)
:
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₂)
:
theorem
mul_comp_lid_symm
{R : Type u_1}
[CommSemiring R]
:
LinearMap.mul' R R ∘ₗ ↑(TensorProduct.lid R R).symm = LinearMap.id
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)
:
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)
:
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)
:
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)
:
theorem
schurMul_one_left_rankOne
{B : Type u_1}
[starAlgebra B]
[hB : QuantumSet B]
(a : B)
(b : 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)
:
theorem
schurMul_reflexive_of_isReal
{A : Type u_1}
[starAlgebra A]
[hA : QuantumSet A]
{x : A →ₗ[ℂ] A}
(hx : LinearMap.IsReal x)
:
theorem
schurMul_irreflexive_of_isReal
{A : Type u_1}
[starAlgebra A]
[hA : QuantumSet A]
{x : A →ₗ[ℂ] A}
(hx : LinearMap.IsReal x)
:
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)