Submonoid of inverses #
Given a submonoid N
of a monoid M
, we define the submonoid N.leftInv
as the submonoid of
left inverses of N
. When M
is commutative, we may define fromCommLeftInv : N.leftInv →* N
since the inverses are unique. When N ≤ IsUnit.Submonoid M
, this is precisely
the pointwise inverse of N
, and we may define leftInvEquiv : S.leftInv ≃* S
.
For the pointwise inverse of submonoids of groups, please refer to the file
Mathlib.Algebra.Group.Submonoid.Pointwise
.
N.leftInv
is distinct from N.units
, which is the subgroup of Mˣ
containing all units that are
in N
. See the implementation notes of Mathlib.GroupTheory.Submonoid.Units
for more details on
related constructions.
TODO #
Define the submonoid of right inverses and two-sided inverses. See the comments of #10679 for a possible implementation.
Equations
- AddSubmonoid.instAddGroupSubtypeMemAddSubmonoid = let __src := inferInstanceAs (AddMonoid ↥(IsAddUnit.addSubmonoid M)); AddGroup.mk ⋯
Equations
- Submonoid.instGroupSubtypeMemSubmonoid = let __src := inferInstanceAs (Monoid ↥(IsUnit.submonoid M)); Group.mk ⋯
Equations
- AddSubmonoid.instAddCommGroupSubtypeMemAddSubmonoid = let __src := inferInstanceAs (AddGroup ↥(IsAddUnit.addSubmonoid M)); AddCommGroup.mk ⋯
Equations
- Submonoid.instCommGroupSubtypeMemSubmonoid = let __src := inferInstanceAs (Group ↥(IsUnit.submonoid M)); CommGroup.mk ⋯
S.leftNeg
is the additive submonoid containing all the left additive inverses of S
.
Instances For
The function from S.leftAdd
to S
sending an element to its right additive
inverse in S
. This is an AddMonoidHom
when M
is commutative.
Equations
- S.fromLeftNeg x = Exists.choose ⋯
Instances For
The function from S.leftInv
to S
sending an element to its right inverse in S
.
This is a MonoidHom
when M
is commutative.
Equations
- S.fromLeftInv x = Exists.choose ⋯
Instances For
Equations
- ⋯ = ⋯
Instances For
The AddMonoidHom
from S.leftNeg
to S
sending an element to its
right additive inverse in S
.
Equations
- S.fromCommLeftNeg = { toFun := S.fromLeftNeg, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The MonoidHom
from S.leftInv
to S
sending an element to its right inverse in S
.
Equations
- S.fromCommLeftInv = { toFun := S.fromLeftInv, map_one' := ⋯, map_mul' := ⋯ }
Instances For
The additive submonoid of pointwise additive inverse of S
is
AddEquiv
to S
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The submonoid of pointwise inverse of S
is MulEquiv
to S
.
Equations
- One or more equations did not get rendered due to their size.