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 = AddCommGroup.mk ⋯
If G
is a commutative group, then M →* G
is a commutative group too.
Equations
- MonoidHom.commGroup = CommGroup.mk ⋯
Equations
- AddMonoid.End.instAddCommMonoid = AddMonoidHom.addCommMonoid
Equations
- AddMonoid.End.instAddCommGroup = AddMonoidHom.addCommGroup
See also AddMonoid.End.intCast_def
.
Alias of AddMonoid.End.intCast_apply
.
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
- f.flip = { toFun := fun (y : N) => { toFun := fun (x : M) => (f x) y, map_zero' := ⋯, map_add' := ⋯ }, map_zero' := ⋯, map_add' := ⋯ }
Instances For
flip
arguments of f : M →* N →* P
Equations
- f.flip = { toFun := fun (y : N) => { toFun := fun (x : M) => (f x) y, map_one' := ⋯, map_mul' := ⋯ }, map_one' := ⋯, map_mul' := ⋯ }
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.id (M →+ N)).flip
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.id (M →* N)).flip
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
- f.compHom' = (AddMonoidHom.eval.comp f).flip
Instances For
The expression fun g m ↦ g (f m)
as a MonoidHom
.
Equivalently, (fun g ↦ MonoidHom.comp g f)
as a MonoidHom
.
Equations
- f.compHom' = (MonoidHom.eval.comp f).flip
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
Instances For
Composition of monoid morphisms (MonoidHom.comp
) as a monoid morphism.
Note that unlike MonoidHom.comp_hom'
this requires commutativity of N
.
Equations
Instances For
Flipping arguments of additive monoid morphisms (AddMonoidHom.flip
)
as an additive monoid morphism.
Equations
- AddMonoidHom.flipHom = { toFun := AddMonoidHom.flip, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Flipping arguments of monoid morphisms (MonoidHom.flip
) as a monoid morphism.
Equations
- MonoidHom.flipHom = { 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
- f.compl₂ g = g.compHom'.comp f
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
- f.compl₂ g = g.compHom'.comp 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
- f.compr₂ g = (AddMonoidHom.compHom g).comp f
Instances For
The expression fun m n ↦ g (f m n)
as a MonoidHom
.
Equations
- f.compr₂ g = (MonoidHom.compHom g).comp f