Additively-graded multiplicative action structures #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This module provides a set of heterogeneous typeclasses for defining a multiplicative structure
over the sigma type graded_monoid A
such that (•) : A i → M j → M (i + j)
; that is to say, A
has an additively-graded multiplicative action on M
. The typeclasses are:
With the sigma_graded
locale open, these respectively imbue:
has_smul (graded_monoid A) (graded_monoid M)
mul_action (graded_monoid A) (graded_monoid M)
For now, these typeclasses are primarily used in the construction of direct_sum.gmodule.module
and
the rest of that file.
Internally graded multiplicative actions #
In addition to the above typeclasses, in the most frequent case when A
is an indexed collection of
set_like
subobjects (such as add_submonoid
s, add_subgroup
s, or submodule
s), this file
provides the Prop
typeclasses:
set_like.has_graded_smul A M
(which provides the obviousgraded_monoid.ghas_smul A
instance)
which provides the API lemma
set_like.graded_smul_mem_graded
Note that there is no need for set_like.graded_mul_action
or similar, as all the information it
would contain is already supplied by has_graded_smul
when the objects within A
and M
have
a mul_action
instance.
tags #
graded action
Typeclasses #
A graded version of has_smul
. Scalar multiplication combines grades additively, i.e.
if a ∈ A i
and m ∈ M j
, then a • b
must be in M (i + j)
Instances of this typeclass
Instances of other typeclasses for graded_monoid.ghas_smul
- graded_monoid.ghas_smul.has_sizeof_inst
A graded version of has_mul.to_has_smul
Equations
- graded_monoid.ghas_mul.to_ghas_smul A = {smul := λ (_x _x_1 : ι), graded_monoid.ghas_mul.mul}
Equations
- graded_monoid.ghas_smul.to_has_smul A M = {smul := λ (x : graded_monoid A) (y : graded_monoid M), ⟨x.fst + y.fst, graded_monoid.ghas_smul.smul x.snd y.snd⟩}
- smul : Π {i j : ι}, A i → M j → M (i + j)
- one_smul : ∀ (b : graded_monoid M), 1 • b = b
- mul_smul : ∀ (a a' : graded_monoid A) (b : graded_monoid M), (a * a') • b = a • a' • b
A graded version of mul_action
.
Instances of this typeclass
Instances of other typeclasses for graded_monoid.gmul_action
- graded_monoid.gmul_action.has_sizeof_inst
The graded version of monoid.to_mul_action
.
Equations
- graded_monoid.gmonoid.to_gmul_action A = {smul := graded_monoid.ghas_smul.smul (graded_monoid.ghas_mul.to_ghas_smul (λ (i : ι), A i)), one_smul := _, mul_smul := _}
Equations
- graded_monoid.gmul_action.to_mul_action A M = {to_has_smul := graded_monoid.ghas_smul.to_has_smul A M {smul := graded_monoid.gmul_action.smul _inst_3}, one_smul := _, mul_smul := _}
Shorthands for creating instance of the above typeclasses for collections of subobjects #
A version of graded_monoid.ghas_smul
for internally graded objects.
Instances of this typeclass
Internally graded version of has_mul.to_has_smul
.