@@ -36,8 +36,12 @@ open Coalgebra
3636 `x •ₛ y := m ∘ (x ⊗ y) ∘ comul` -/
3737@[simps]
3838noncomputable def schurMul {B C : Type _}
39- [starAlgebra B] [starAlgebra C]
40- [hB : QuantumSet B] [hC : QuantumSet C] :
39+ [AddCommMonoid B] [NonUnitalNonAssocSemiring C]
40+ [Module ℂ B] [Module ℂ C]
41+ [CoalgebraStruct ℂ B]
42+ [SMulCommClass ℂ C C]
43+ [IsScalarTower ℂ C C]
44+ :
4145 (B →ₗ[ℂ] C) →ₗ[ℂ] (B →ₗ[ℂ] C) →ₗ[ℂ] (B →ₗ[ℂ] C)
4246 where
4347 toFun x :=
@@ -65,9 +69,15 @@ notation3:80 (name := schurMulNotation) x:81 " •ₛ " y:80 => schurMul x y
6569-- open scoped schurMul
6670
6771variable {A B C : Type _}
68- [starAlgebra A] [starAlgebra B] [starAlgebra C]
69- [hA : QuantumSet A] [hB : QuantumSet B] [hC : QuantumSet C]
70-
72+ [NormedAddCommGroupOfRing A] [NormedAddCommGroupOfRing B] [NormedAddCommGroupOfRing C]
73+ [InnerProductSpace ℂ A] [InnerProductSpace ℂ B] [InnerProductSpace ℂ C]
74+ [SMulCommClass ℂ A A] [SMulCommClass ℂ B B]
75+ [SMulCommClass ℂ C C] [IsScalarTower ℂ A A]
76+ [IsScalarTower ℂ B B] [IsScalarTower ℂ C C]
77+ [FiniteDimensional ℂ A] [FiniteDimensional ℂ B]
78+ [FiniteDimensional ℂ C]
79+
80+ omit [FiniteDimensional ℂ B] in
7181theorem schurMul.apply_rankOne
7282 (a : B) (b : C) (c : B) (d : C) : (↑|a⟩⟨b|) •ₛ (↑|c⟩⟨d|) = (|a * c⟩⟨b * d| : C →ₗ[ℂ] B) :=
7383 by
@@ -83,6 +93,7 @@ theorem schurMul.apply_rankOne
8393 LinearMap.mul'_apply, smul_mul_smul_comm, ← TensorProduct.inner_tmul, ← Finset.sum_smul, ← inner_sum,
8494 h, comul_eq_mul_adjoint, LinearMap.adjoint_inner_right, LinearMap.mul'_apply]
8595
96+ omit [FiniteDimensional ℂ B] in
8697theorem schurMul.apply_ket
8798 (a b : B) :
8899 (ket ℂ a) •ₛ (ket ℂ b) = (ket ℂ (a * b)).toLinearMap :=
@@ -175,14 +186,15 @@ theorem mul_comp_lid_symm {R : Type*} [CommSemiring R] :
175186by aesop
176187
177188theorem schurMul.apply_bra
178- (a b : B ) :
189+ (a b : C ) :
179190 (bra ℂ a) •ₛ (bra ℂ b) = (bra ℂ (a * b)).toLinearMap :=
180191by
181192 rw [schurMul_apply_apply, bra_map_bra, LinearMap.comp_assoc, bra_comp_linearMap,
182193 Coalgebra.comul_eq_mul_adjoint, LinearMap.adjoint_adjoint, LinearMap.mul'_apply,
183194 ← LinearMap.comp_assoc, mul_comp_lid_symm]
184195 rfl
185196
197+ omit [FiniteDimensional ℂ B] in
186198theorem schurMul.comp_apply_of
187199 (δ : ℂ)
188200 (hAδ : Coalgebra.comul ∘ₗ LinearMap.mul' ℂ A = δ • LinearMap.id)
@@ -218,7 +230,10 @@ theorem schurMul_adjoint (x y : B →ₗ[ℂ] C) :
218230 simp only [LinearMap.coe_mk, AddHom.coe_mk, LinearMap.adjoint_comp, LinearMap.adjoint_adjoint,
219231 TensorProduct.map_adjoint, LinearMap.comp_assoc]
220232
221- theorem schurMul_real (x y : A →ₗ[ℂ] B) :
233+ theorem schurMul_real
234+ {A B : Type *} [starAlgebra A] [starAlgebra B]
235+ [QuantumSet A] [QuantumSet B]
236+ (x y : A →ₗ[ℂ] B) :
222237 LinearMap.real (x •ₛ y : A →ₗ[ℂ] B) = (LinearMap.real y) •ₛ (LinearMap.real x) :=
223238 by
224239 obtain ⟨α, β, rfl⟩ := x.exists_sum_rankOne
@@ -227,7 +242,9 @@ theorem schurMul_real (x y : A →ₗ[ℂ] B) :
227242 simp_rw [rankOne_real, schurMul.apply_rankOne, ← map_mul, ← StarMul.star_mul]
228243 rw [Finset.sum_comm]
229244
230- theorem schurMul_one_right_rankOne (a b : B) :
245+ theorem schurMul_one_right_rankOne
246+ {B : Type *} [starAlgebra B] [hB : QuantumSet B]
247+ (a b : B) :
231248 (↑|a⟩⟨b|) •ₛ 1 = lmul a * (LinearMap.adjoint (lmul b : l(B))) :=
232249 by
233250 simp_rw [LinearMap.ext_iff_inner_map]
@@ -239,7 +256,9 @@ theorem schurMul_one_right_rankOne (a b : B) :
239256 hB.inner_star_left,
240257 inner_conj_symm, OrthonormalBasis.sum_inner_mul_inner, lmul_adjoint, lmul_apply]
241258
242- theorem schurMul_one_left_rankOne (a b : B) :
259+ theorem schurMul_one_left_rankOne
260+ {B : Type *} [starAlgebra B] [hB : QuantumSet B]
261+ (a b : B) :
243262 (1 : l(B)) •ₛ (|a⟩⟨b|) = (rmul a : l(B)) * (LinearMap.adjoint (rmul b : l(B))) :=
244263 by
245264 simp_rw [← ext_inner_map]
@@ -252,7 +271,10 @@ theorem schurMul_one_left_rankOne (a b : B) :
252271 OrthonormalBasis.sum_inner_mul_inner, ← QuantumSet.inner_conj_left,
253272 rmul_adjoint, rmul_apply]
254273
255- theorem Psi.schurMul (r₁ r₂ : ℝ)
274+ theorem Psi.schurMul
275+ {A B : Type *} [starAlgebra A] [starAlgebra B]
276+ [hA : QuantumSet A] [QuantumSet B]
277+ (r₁ r₂ : ℝ)
256278 (f g : A →ₗ[ℂ] B) :
257279 hA.Psi r₁ r₂ (f •ₛ g) = hA.Psi r₁ r₂ f * hA.Psi r₁ r₂ g :=
258280 by
@@ -268,7 +290,10 @@ theorem Psi.schurMul (r₁ r₂ : ℝ)
268290 hA.Psi_toFun_apply, Algebra.TensorProduct.tmul_mul_tmul,
269291 ← MulOpposite.op_mul, ← StarMul.star_mul, ← map_mul]
270292
271- theorem schurMul_assoc (f g h : A →ₗ[ℂ] B) :
293+ theorem schurMul_assoc {A B : Type *}
294+ [starAlgebra A] [starAlgebra B]
295+ [hA : QuantumSet A] [QuantumSet B]
296+ (f g h : A →ₗ[ℂ] B) :
272297 (f •ₛ g) •ₛ h = f •ₛ (g •ₛ h) :=
273298by
274299 apply_fun hA.Psi 0 0 using LinearEquiv.injective _
@@ -290,22 +315,27 @@ theorem algHom_comp_mul {R A B : Type*} [CommSemiring R] [Semiring A]
290315 f.toLinearMap ∘ₗ LinearMap.mul' R A = (LinearMap.mul' R B) ∘ₗ (f.toLinearMap ⊗ₘ f.toLinearMap) :=
291316nonUnitalAlgHom_comp_mul f.toNonUnitalAlgHom
292317
318+ attribute [local instance ] Algebra.ofIsScalarTowerSmulCommClass
319+
293320set_option linter.deprecated false in
294321theorem comul_comp_nonUnitalAlgHom_adjoint (f : A →ₙₐ[ℂ] B) :
295322 Coalgebra.comul ∘ₗ (LinearMap.adjoint f.toLinearMap)
296323 = ((LinearMap.adjoint f.toLinearMap) ⊗ₘ (LinearMap.adjoint f.toLinearMap)) ∘ₗ Coalgebra.comul :=
297324by
298325 simp_rw [comul_eq_mul_adjoint, ← TensorProduct.map_adjoint, ← LinearMap.adjoint_comp,
299- nonUnitalAlgHom_comp_mul]
326+ nonUnitalAlgHom_comp_mul f ]
300327
301328theorem comul_comp_algHom_adjoint (f : A →ₐ[ℂ] B) :
302329 Coalgebra.comul ∘ₗ (LinearMap.adjoint f.toLinearMap)
303330 = ((LinearMap.adjoint f.toLinearMap) ⊗ₘ (LinearMap.adjoint f.toLinearMap)) ∘ₗ Coalgebra.comul :=
304331comul_comp_nonUnitalAlgHom_adjoint f.toNonUnitalAlgHom
305332
333+ omit [FiniteDimensional ℂ C] in
306334set_option linter.deprecated false in
307- theorem schurMul_nonUnitalAlgHom_comp_coalgHom {D : Type *} [starAlgebra D]
308- [hD : QuantumSet D] (g : C →ₙₐ[ℂ] D) (f : A →ₗc[ℂ] B) (x y : B →ₗ[ℂ] C) :
335+ theorem schurMul_nonUnitalAlgHom_comp_coalgHom {D : Type *}
336+ [Semiring D] [Module ℂ D]
337+ [SMulCommClass ℂ D D] [IsScalarTower ℂ D D]
338+ (g : C →ₙₐ[ℂ] D) (f : A →ₗc[ℂ] B) (x y : B →ₗ[ℂ] C) :
309339 (g.toLinearMap ∘ₗ x ∘ₗ f.toLinearMap) •ₛ (g.toLinearMap ∘ₗ y ∘ₗ f.toLinearMap)
310340 = g.toLinearMap ∘ₗ (x •ₛ y) ∘ₗ f.toLinearMap :=
311341by
316346 congr 1
317347 simp_rw [TensorProduct.map_comp]
318348
319- theorem schurMul_algHom_comp_coalgHom {D : Type *} [starAlgebra D]
320- [hD : QuantumSet D] (g : C →ₐ[ℂ] D) (f : A →ₗc[ℂ] B) (x y : B →ₗ[ℂ] C) :
349+ omit [FiniteDimensional ℂ C] in
350+ theorem schurMul_algHom_comp_coalgHom {D : Type *}
351+ [Semiring D] [Module ℂ D]
352+ [SMulCommClass ℂ D D] [IsScalarTower ℂ D D]
353+ (g : C →ₐ[ℂ] D) (f : A →ₗc[ℂ] B) (x y : B →ₗ[ℂ] C) :
321354 (g.toLinearMap ∘ₗ x ∘ₗ f.toLinearMap) •ₛ (g.toLinearMap ∘ₗ y ∘ₗ f.toLinearMap)
322355 = g.toLinearMap ∘ₗ (x •ₛ y) ∘ₗ f.toLinearMap :=
323356schurMul_nonUnitalAlgHom_comp_coalgHom (g.toNonUnitalAlgHom) f x y
324357
358+ omit [FiniteDimensional ℂ C] in
325359set_option linter.deprecated false in
326- theorem schurMul_nonUnitalAlgHom_comp_nonUnitalAlgHom_adjoint {D : Type *} [starAlgebra D]
327- [hD : QuantumSet D] (g : C →ₙₐ[ℂ] D) (f : B →ₙₐ[ℂ] A) (x y : B →ₗ[ℂ] C) :
360+ theorem schurMul_nonUnitalAlgHom_comp_nonUnitalAlgHom_adjoint {D : Type *}
361+ [Semiring D] [Module ℂ D]
362+ [SMulCommClass ℂ D D] [IsScalarTower ℂ D D]
363+ (g : C →ₙₐ[ℂ] D) (f : B →ₙₐ[ℂ] A) (x y : B →ₗ[ℂ] C) :
328364 (g.toLinearMap ∘ₗ x ∘ₗ (LinearMap.adjoint f.toLinearMap))
329365 •ₛ (g.toLinearMap ∘ₗ y ∘ₗ LinearMap.adjoint f.toLinearMap)
330366 = g.toLinearMap ∘ₗ (x •ₛ y) ∘ₗ LinearMap.adjoint f.toLinearMap :=
336372 congr 1
337373 simp_rw [TensorProduct.map_comp]
338374
339- theorem schurMul_algHom_comp_algHom_adjoint {D : Type *} [starAlgebra D]
340- [hD : QuantumSet D] (g : C →ₐ[ℂ] D) (f : B →ₐ[ℂ] A) (x y : B →ₗ[ℂ] C) :
375+ omit [FiniteDimensional ℂ C] in
376+ theorem schurMul_algHom_comp_algHom_adjoint {D : Type *}
377+ [Semiring D] [Module ℂ D]
378+ [SMulCommClass ℂ D D] [IsScalarTower ℂ D D]
379+ (g : C →ₐ[ℂ] D) (f : B →ₐ[ℂ] A) (x y : B →ₗ[ℂ] C) :
341380 (g.toLinearMap ∘ₗ x ∘ₗ (LinearMap.adjoint f.toLinearMap))
342381 •ₛ (g.toLinearMap ∘ₗ y ∘ₗ LinearMap.adjoint f.toLinearMap)
343382 = g.toLinearMap ∘ₗ (x •ₛ y) ∘ₗ LinearMap.adjoint f.toLinearMap :=
344383schurMul_nonUnitalAlgHom_comp_nonUnitalAlgHom_adjoint g.toNonUnitalAlgHom f.toNonUnitalAlgHom x y
345384
346- theorem schurMul_one_iff_one_schurMul_of_isReal {x y z : A →ₗ[ℂ] B}
385+ theorem schurMul_one_iff_one_schurMul_of_isReal
386+ {A B : Type *} [starAlgebra A] [starAlgebra B]
387+ [QuantumSet A] [QuantumSet B]
388+ {x y z : A →ₗ[ℂ] B}
347389 (hx : LinearMap.IsReal x) (hy : LinearMap.IsReal y) (hz : LinearMap.IsReal z) :
348390 x •ₛ y = z ↔ y •ₛ x = z :=
349391by
350392 rw [LinearMap.real_inj_eq, schurMul_real, x.isReal_iff.mp hx, y.isReal_iff.mp hy,
351393 z.isReal_iff.mp hz]
352394
353- theorem schurMul_reflexive_of_isReal {x : A →ₗ[ℂ] A} (hx : LinearMap.IsReal x) :
395+ theorem schurMul_reflexive_of_isReal
396+ {A : Type *} [starAlgebra A] [QuantumSet A]
397+ {x : A →ₗ[ℂ] A} (hx : LinearMap.IsReal x) :
354398 x •ₛ 1 = 1 ↔ 1 •ₛ x = 1 :=
355399schurMul_one_iff_one_schurMul_of_isReal hx LinearMap.isRealOne LinearMap.isRealOne
356400
357- theorem schurMul_irreflexive_of_isReal {x : A →ₗ[ℂ] A} (hx : LinearMap.IsReal x) :
401+ theorem schurMul_irreflexive_of_isReal
402+ {A : Type *} [starAlgebra A] [QuantumSet A]
403+ {x : A →ₗ[ℂ] A} (hx : LinearMap.IsReal x) :
358404 x •ₛ 1 = 0 ↔ 1 •ₛ x = 0 :=
359405schurMul_one_iff_one_schurMul_of_isReal hx LinearMap.isRealOne LinearMap.isRealZero
360406
0 commit comments