Skew monoid algebras #
This file presents a skewed version of Mathlib.Algebra.MonoidAlgebra.Basic
with an
irreducible definition.
The definition is separated from Finsupp
by wrapping it with a structure.
For https://github.com/leanprover-community/mathlib4/pull/15878, the goal is only to get this separation right. This means that
most of what makes these objects skewed is currently missing from this PR.
The goal will then be to define a skewed convolution product on SkewMonoidAlgebra k G
.
Here, the product of two elements f g : SkewMonoidAlgebra k G
is the finitely supported
function whose value at a
is the sum of f x * (x • g y)
over all pairs x, y
such that x * y = a
. (See https://github.com/leanprover-community/mathlib4/pull/10541 at line 558 for an implementation.)
The associativity of the skewed multiplication depends on the [MulSemiringAction G k]
instance.
In particular, this means that unlike in Mathlib.Algebra.MonoidAlgebra.Basic
, G
will
need to be a monoid for most of our uses.
The skew monoid algebra over a semiring k
generated by the monoid G
.
It is the type of finite formal k
-linear combinations of terms of G
,
endowed with a skewed convolution product.
- ofFinsupp :: (
- toFinsupp : G →₀ k
The natural map from
SkewMonoidAlgebra k G
toG →₀ k
. - )
Instances For
Equations
- SkewMonoidAlgebra.instZero = { zero := { toFinsupp := 0 } }
Equations
- SkewMonoidAlgebra.instAdd = { add := SkewMonoidAlgebra.add✝ }
Equations
- SkewMonoidAlgebra.instSMulZeroClass = SMulZeroClass.mk ⋯
A more convenient spelling of SkewMonoidAlgebra.ofFinsupp.injEq
in terms of Iff
.
Equations
- SkewMonoidAlgebra.instInhabited = { default := 0 }
Equations
- SkewMonoidAlgebra.instAddCommMonoid = AddCommMonoid.mk ⋯
For f : SkewMonoidAlgebra k G
, f.support
is the set of all a ∈ G
such that
f a ≠ 0
.
Equations
- { toFinsupp := p }.support = p.support