@@ -16,8 +16,9 @@ public import Mathlib.Tactic.SuppressCompilation
1616/-!
1717# Convolution product on linear maps from a coalgebra to an algebra
1818
19- This file constructs the ring structure on linear maps `C → A` where `C` is a coalgebra and `A` an
20- algebra, where multiplication is given by `(f * g)(x) = ∑ f x₍₁₎ * g x₍₂₎` in Sweedler notation or
19+ This file constructs the ring and algebra structure on linear maps `C → A` where `C` is a
20+ coalgebra and `A` an algebra, where multiplication is given by
21+ `(f * g)(x) = ∑ f x₍₁₎ * g x₍₂₎` in Sweedler notation or
2122```
2223 |
2324 μ
@@ -43,7 +44,7 @@ suppress_compilation
4344open Coalgebra TensorProduct WithConv
4445open scoped RingTheory.LinearMap
4546
46- variable {R A B C ι : Type *} [CommSemiring R]
47+ variable {R S A B C ι : Type *} [CommSemiring R]
4748
4849namespace LinearMap
4950section NonUnitalNonAssocSemiring
@@ -74,6 +75,14 @@ instance convNonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring (WithConv (C
7475 zero_mul f := by ext; simp
7576 mul_zero f := by ext; simp
7677
78+ instance [Monoid S] [DistribMulAction S A] [SMulCommClass R S A] [IsScalarTower S A A] :
79+ IsScalarTower S (WithConv (C →ₗ[R] A)) (WithConv (C →ₗ[R] A)) where
80+ smul_assoc s f g := by ext c; simp [(ℛ R c).convMul_apply, Finset.smul_sum, smul_mul_assoc]
81+
82+ instance [Monoid S] [DistribMulAction S A] [SMulCommClass R S A] [SMulCommClass S A A] :
83+ SMulCommClass S (WithConv (C →ₗ[R] A)) (WithConv (C →ₗ[R] A)) where
84+ smul_comm s f g := by ext c; simp [(ℛ R c).convMul_apply, Finset.smul_sum, mul_smul_comm]
85+
7786@[simp] lemma toSpanSingleton_convMul_toSpanSingleton (x y : A) :
7887 toConv (toSpanSingleton R A x) * toConv (toSpanSingleton R A y) =
7988 toConv (toSpanSingleton R A (x * y)) := by ext; simp
@@ -174,6 +183,15 @@ instance convSemiring : Semiring (WithConv (C →ₗ[R] A)) where
174183 one_mul f := by ext; simp [convOne_def, ← map_comp_rTensor]
175184 mul_one f := by ext; simp [convOne_def, ← map_comp_lTensor]
176185
186+ /-- Convolution algebra structure on linear maps from a coalgebra to an algebra. -/
187+ instance convAlgebra [CommSemiring S] [Algebra S A] [SMulCommClass R S A] :
188+ Algebra S (WithConv (C →ₗ[R] A)) :=
189+ .ofModule smul_mul_assoc mul_smul_comm
190+
191+ @[simp]
192+ lemma convAlgebraMap_apply [CommSemiring S] [Algebra S A] [SMulCommClass R S A] (s : S) (c : C) :
193+ algebraMap S (WithConv (C →ₗ[R] A)) s c = s • algebraMap R A (counit c) := rfl
194+
177195end Semiring
178196
179197section CommSemiring
0 commit comments