Monoid homomorphisms and units #
This file allows to lift monoid homomorphisms to group homomorphisms of their units subgroups. It
also contains unrelated results about Units that depend on MonoidHom.
Main declarations #
- Units.map: Turn a homomorphism from- αto- βmonoids into a homomorphism from- αˣto- βˣ.
- MonoidHom.toHomUnits: Turn a homomorphism from a group- αto- βinto a homomorphism from- αto- βˣ.
If two homomorphisms from a subtraction monoid to an additive monoid are equal at an
additive unit x, then they are equal at -x.
If two homomorphisms from a division monoid to a monoid are equal at a unit x, then they are
equal at x⁻¹.
If a map g : M → AddUnits N agrees with a homomorphism f : M →+ N, then this map
is an AddMonoid homomorphism too.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If a map g : M → Nˣ agrees with a homomorphism f : M →* N, then
this map is a monoid homomorphism too.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If f is a homomorphism from an additive group G to an additive monoid M,
then its image lies in the AddUnits of M,
and f.toHomUnits is the corresponding homomorphism from G to AddUnits M.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If f is a homomorphism from a group G to a monoid M,
then its image lies in the units of M,
and f.toHomUnits is the corresponding monoid homomorphism from G to Mˣ.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If a homomorphism f : M →+ N sends each element to an IsAddUnit, then it can be
lifted to f : M →+ AddUnits N. See also AddUnits.liftRight for a computable version.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If a homomorphism f : M →* N sends each element to an IsUnit, then it can be lifted
to f : M →* Nˣ. See also Units.liftRight for a computable version.
Equations
- IsUnit.liftRight f hf = Units.liftRight f (fun (x : M) => IsUnit.unit (_ : IsUnit (f x))) (_ : ∀ (x : M), ↑(IsUnit.unit (_ : IsUnit (f x))) = ↑(IsUnit.unit (_ : IsUnit (f x))))