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_unit
s 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''