Module docstring
{"# Homomorphisms of semirings and rings
This file defines bundled homomorphisms of (non-unital) semirings and rings. As with monoid and
groups, we use the same structure RingHom a β, a.k.a. α →+* β, for both types of homomorphisms.
Main definitions
NonUnitalRingHom: Non-unital (semi)ring homomorphisms. Additive monoid homomorphism which preserve multiplication.RingHom: (Semi)ring homomorphisms. Monoid homomorphisms which are also additive monoid homomorphism.
Notations
→ₙ+*: Non-unital (semi)ring homs→+*: (Semi)ring homs
Implementation notes
There's a coercion from bundled homs to fun, and the canonical notation is to use the bundled hom as a function via this coercion.
There is no
SemiringHom-- the idea is thatRingHomis used. The constructor for aRingHombetween semirings needs a proof ofmap_zero,map_oneandmap_addas well asmap_mul; a separate constructorRingHom.mk'will construct ring homs between rings from monoid homs given only a proof that addition is preserved.
Tags
RingHom, SemiringHom
","Throughout this section, some Semiring arguments are specified with {} instead of [].
See note [implicit instance arguments].
"}