Monoid homomorphisms and units #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file allows to lift monoid homomorphisms to group homomorphisms of their units subgroups. It
also contains unrelated results about units that depend on monoid_hom.
Main declarations #
units.map: Turn an homomorphism fromαtoβmonoids into an homomorphism fromαˣtoβˣ.monoid_hom.to_hom_units: Turn an homomorphism from a groupαtoβinto an homomorphism fromαtoβˣ.
TODO #
The results that don't mention homomorphisms should be proved (earlier?) in a different file and be
used to golf the basic group lemmas.
If two homomorphisms from a division monoid to a monoid are equal at a unit x, then they are
equal at x⁻¹.
If two homomorphisms from a subtraction monoid to an additive monoid are equal at an
additive unit x, then they are equal at -x.
The add_group homomorphism on add_units induced by an add_monoid_hom.
Coercion Mˣ → M as a monoid homomorphism.
Equations
- units.coe_hom M = {to_fun := coe coe_to_lift, map_one' := _, map_mul' := _}
Coercion add_units M → M as an add_monoid homomorphism.
Equations
- add_units.coe_hom M = {to_fun := coe coe_to_lift, map_zero' := _, map_add' := _}
If a map g : M → add_units N agrees with a homomorphism f : M →+ N, then this map
is an add_monoid homomorphism too.
If f is a homomorphism from an additive group G to an additive monoid M,
then its image lies in the add_units of M,
and f.to_hom_units is the corresponding homomorphism from G to add_units M.
If a homomorphism f : M →* N sends each element to an is_unit, then it can be lifted
to f : M →* Nˣ. See also units.lift_right for a computable version.
Equations
- is_unit.lift_right f hf = units.lift_right f (λ (x : M), _.unit) _
If a homomorphism f : M →+ N sends each element to an is_add_unit, then it can be
lifted to f : M →+ add_units N. See also add_units.lift_right for a computable version.
Equations
- is_add_unit.lift_right f hf = add_units.lift_right f (λ (x : M), _.add_unit) _
The element of the additive group of additive units, corresponding to an element of
an additive monoid which is an additive unit. As opposed to is_add_unit.add_unit, the negation is
computable and comes from the negation on α. This is useful to transfer properties of negation in
add_units α to α. See also to_add_units.
The element of the group of units, corresponding to an element of a monoid which is a unit. As
opposed to is_unit.unit, the inverse is computable and comes from the inversion on α. This is
useful to transfer properties of inversion in units α to α. See also to_units.
The group version of this lemma is div_mul_cancel'''
The add_group version of this lemma is sub_add_cancel''