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_submonoids, add_subgroups, or submodules), this file
provides the Prop typeclasses:
set_like.has_graded_smul A M(which provides the obviousgraded_monoid.ghas_smul Ainstance)
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.