Instances on spaces of monoid and group morphisms #
We endow the space of monoid morphisms M →* N
with a CommMonoid
structure when the target is
commutative, through pointwise multiplication, and with a CommGroup
structure when the target
is a commutative group. We also prove the same instances for additive situations.
Since these structures permit morphisms of morphisms, we also provide some composition-like operations.
Finally, we provide the Ring
structure on AddMonoid.End
.
(M →+ N)
is an AddCommMonoid
if N
is commutative.
Equations
- AddMonoidHom.addCommMonoid = AddCommMonoid.mk ⋯
(M →* N)
is a CommMonoid
if N
is commutative.
Equations
- MonoidHom.commMonoid = CommMonoid.mk ⋯
If G
is an additive commutative group, then M →+ G
is an additive commutative
group too.
Equations
- AddMonoidHom.addCommGroup = let __src := AddMonoidHom.addCommMonoid; AddCommGroup.mk ⋯
If G
is a commutative group, then M →* G
is a commutative group too.
Equations
- MonoidHom.commGroup = let __src := MonoidHom.commMonoid; CommGroup.mk ⋯
Equations
- AddMonoid.End.instAddCommMonoid = AddMonoidHom.addCommMonoid
Equations
- AddMonoid.End.instAddCommGroup = AddMonoidHom.addCommGroup
See also AddMonoid.End.intCast_def
.
Morphisms of morphisms #
The structures above permit morphisms that themselves produce morphisms, provided the codomain is commutative.
flip
arguments of f : M →+ N →+ P
Equations
- One or more equations did not get rendered due to their size.
Instances For
flip
arguments of f : M →* N →* P
Equations
- One or more equations did not get rendered due to their size.
Instances For
Evaluation of an AddMonoidHom
at a point as an additive monoid homomorphism.
See also AddMonoidHom.apply
for the evaluation of any function at a point.
Equations
- AddMonoidHom.eval = AddMonoidHom.flip (AddMonoidHom.id (M →+ N))
Instances For
Evaluation of a MonoidHom
at a point as a monoid homomorphism. See also MonoidHom.apply
for the evaluation of any function at a point.
Equations
- MonoidHom.eval = MonoidHom.flip (MonoidHom.id (M →* N))
Instances For
The expression fun g m ↦ g (f m)
as an AddMonoidHom
.
Equivalently, (fun g ↦ AddMonoidHom.comp g f)
as an AddMonoidHom
.
This also exists in a LinearMap
version, LinearMap.lcomp
.
Equations
- AddMonoidHom.compHom' f = AddMonoidHom.flip (AddMonoidHom.comp AddMonoidHom.eval f)
Instances For
The expression fun g m ↦ g (f m)
as a MonoidHom
.
Equivalently, (fun g ↦ MonoidHom.comp g f)
as a MonoidHom
.
Equations
- MonoidHom.compHom' f = MonoidHom.flip (MonoidHom.comp MonoidHom.eval f)
Instances For
Composition of additive monoid morphisms (AddMonoidHom.comp
) as an additive
monoid morphism.
Note that unlike AddMonoidHom.comp_hom'
this requires commutativity of N
.
This also exists in a LinearMap
version, LinearMap.llcomp
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Composition of monoid morphisms (MonoidHom.comp
) as a monoid morphism.
Note that unlike MonoidHom.comp_hom'
this requires commutativity of N
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flipping arguments of additive monoid morphisms (AddMonoidHom.flip
)
as an additive monoid morphism.
Equations
- AddMonoidHom.flipHom = { toZeroHom := { toFun := AddMonoidHom.flip, map_zero' := ⋯ }, map_add' := ⋯ }
Instances For
Flipping arguments of monoid morphisms (MonoidHom.flip
) as a monoid morphism.
Equations
- MonoidHom.flipHom = { toOneHom := { toFun := MonoidHom.flip, map_one' := ⋯ }, map_mul' := ⋯ }
Instances For
The expression fun m q ↦ f m (g q)
as an AddMonoidHom
.
Note that the expression fun q n ↦ f (g q) n
is simply AddMonoidHom.comp
.
This also exists as a LinearMap
version, LinearMap.compl₂
Equations
Instances For
The expression fun m q ↦ f m (g q)
as a MonoidHom
.
Note that the expression fun q n ↦ f (g q) n
is simply MonoidHom.comp
.
Equations
- MonoidHom.compl₂ f g = MonoidHom.comp (MonoidHom.compHom' g) f
Instances For
The expression fun m n ↦ g (f m n)
as an AddMonoidHom
.
This also exists as a LinearMap
version, LinearMap.compr₂
Equations
- AddMonoidHom.compr₂ f g = AddMonoidHom.comp (AddMonoidHom.compHom g) f
Instances For
The expression fun m n ↦ g (f m n)
as a MonoidHom
.
Equations
- MonoidHom.compr₂ f g = MonoidHom.comp (MonoidHom.compHom g) f