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.instSemiring = let __src := AddMonoid.End.monoid M; let __src_1 := AddMonoidHom.addCommMonoid; Semiring.mk ⋯ ⋯ ⋯ ⋯ Monoid.npow ⋯ ⋯
See also AddMonoid.End.natCast_def
.
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
Instances For
Miscellaneous definitions #
Due to the fact this file imports Algebra.GroupPower.Basic
, it is not possible to import it in
some of the lower-level files like Algebra.Ring.Basic
. The following lemmas should be rehomed
if the import structure permits them to be.
Multiplication of an element of a (semi)ring is an AddMonoidHom
in both arguments.
This is a more-strongly bundled version of AddMonoidHom.mulLeft
and AddMonoidHom.mulRight
.
Stronger versions of this exists for algebras as LinearMap.mul
, NonUnitalAlgHom.mul
and Algebra.lmul
.
Equations
- AddMonoidHom.mul = { toZeroHom := { toFun := AddMonoidHom.mulLeft, map_zero' := ⋯ }, map_add' := ⋯ }
Instances For
An AddMonoidHom
preserves multiplication if pre- and post- composition with
AddMonoidHom.mul
are equivalent. By converting the statement into an equality of
AddMonoidHom
s, this lemma allows various specialized ext
lemmas about →+
to then be applied.
The left multiplication map: (a, b) ↦ a * b
. See also AddMonoidHom.mulLeft
.
Equations
- AddMonoid.End.mulLeft = AddMonoidHom.mul
Instances For
The right multiplication map: (a, b) ↦ b * a
. See also AddMonoidHom.mulRight
.
Equations
- AddMonoid.End.mulRight = AddMonoidHom.flip AddMonoidHom.mul