Module docstring
{"# Equivariant homomorphisms
Main definitions
MulActionHom φ X Y, the type of equivariant functions fromXtoY, whereφ : M → Nis a map,Macting on the typeXandNacting on the type ofY.AddActionHom φ X Yis its additive version.DistribMulActionHom φ A B, the type of equivariant additive monoid homomorphisms fromAtoB, whereφ : M → Nis a morphism of monoids,Macting on the additive monoidAandNacting on the additive monoid ofBSMulSemiringHom φ R S, the type of equivariant ring homomorphisms fromRtoS, whereφ : M → Nis a morphism of monoids,Macting on the ringRandNacting on the ringS.
The above types have corresponding classes:
* MulActionHomClass F φ X Y states that F is a type of bundled X → Y homs
which are φ-equivariant;
AddActionHomClass F φ X Y is its additive version.
* DistribMulActionHomClass F φ A B states that F is a type of bundled A → B homs
preserving the additive monoid structure and φ-equivariant
* SMulSemiringHomClass F φ R S states that F is a type of bundled R → S homs
preserving the ring structure and φ-equivariant
Notation
We introduce the following notation to code equivariant maps
(the subscript index ₑ is for equivariant) :
* X →ₑ[φ] Y is MulActionHom φ X Y and AddActionHom φ X Y
* A →ₑ+[φ] B is DistribMulActionHom φ A B.
* R →ₑ+*[φ] S is MulSemiringActionHom φ R S.
When M = N and φ = MonoidHom.id M, we provide the backward compatible notation :
* X →[M] Y is MulActionHom (@id M) X Y and AddActionHom (@id M) X Y
* A →+[M] B is DistribMulActionHom (MonoidHom.id M) A B
* R →+*[M] S is MulSemiringActionHom (MonoidHom.id M) R S
The notation for MulActionHom and AddActionHom is the same, because it is unlikely
that it could lead to confusion — unless one needs types M and X with simultaneous
instances of Mul M, Add M, SMul M X and VAdd M X…
"}