Submonoid of units #
Given a submonoid S of a monoid M, we define the subgroup S.units as the units of S as a
subgroup of Mˣ. That is to say, S.units contains all members of S which have a
two-sided inverse within S, as terms of type Mˣ.
We also define, for subgroups S of Mˣ, S.ofUnits, which is S considered as a submonoid
of M. Submonoid.units and Subgroup.ofUnits form a Galois coinsertion.
We also make the equivalent additive definitions.
Implementation details #
There are a number of other constructions which are multiplicatively equivalent to S.units but
which have a different type.
| Definition | Type |
|---|---|
S.units |
Subgroup Mˣ |
Sˣ |
Type u |
IsUnit.submonoid S |
Submonoid S |
S.units.ofUnits |
Submonoid M |
All of these are distinct from S.leftInv, which is the submonoid of M which contains
every member of M with a right inverse in S.
The units of S, packaged as a subgroup of Mˣ.
Equations
- S.units = { toSubmonoid := Submonoid.comap (Units.coeHom M) S ⊓ (Submonoid.comap (Units.coeHom M) S)⁻¹, inv_mem' := ⋯ }
Instances For
The additive units of S, packaged as an additive subgroup of AddUnits M.
Equations
- S.addUnits = { toAddSubmonoid := AddSubmonoid.comap (AddUnits.coeHom M) S ⊓ -AddSubmonoid.comap (AddUnits.coeHom M) S, neg_mem' := ⋯ }
Instances For
A subgroup of units represented as a submonoid of M.
Equations
- S.ofUnits = Submonoid.map (Units.coeHom M) S.toSubmonoid
Instances For
An additive subgroup of additive units represented as an additive submonoid of M.
Equations
Instances For
A Galois coinsertion exists between the coercion from a subgroup of units to a submonoid and the reduction from a submonoid to its unit group.
Equations
Instances For
A Galois coinsertion exists between the coercion from an additive subgroup of additive units to an additive submonoid and the reduction from an additive submonoid to its unit group.
Equations
Instances For
The equivalence between the additive subgroup of additive units of
S and the type of additive units of S.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The equivalence between the subgroup of units of S and the submonoid of unit
elements of S.
Equations
Instances For
The equivalence between the additive subgroup of additive units of
S and the additive submonoid of additive unit elements of S.
Equations
Instances For
Given some x : M which is a member of the submonoid of unit elements corresponding to a
subgroup of units, produce a unit of M whose coercion is equal to x.
Equations
- S.unit_of_mem_ofUnits h = (Classical.choose h).copy x ⋯ ↑(Classical.choose h)⁻¹ ⋯
Instances For
Given some x : M which is a member of the additive submonoid of additive unit
elements corresponding to a subgroup of units, produce a unit of M whose coercion is equal to
x.
Equations
- S.addUnit_of_mem_ofAddUnits h = (Classical.choose h).copy x ⋯ ↑(-Classical.choose h) ⋯
Instances For
The equivalence between the coercion of a subgroup S of Mˣ to a submonoid of M and
the subgroup itself as a type.
Equations
- S.ofUnitsEquivType = { toFun := fun (x : ↥S.ofUnits) => ⟨S.unit_of_mem_ofUnits ⋯, ⋯⟩, invFun := fun (x : ↥S) => ⟨↑↑x, ⋯⟩, left_inv := ⋯, right_inv := ⋯, map_mul' := ⋯ }
Instances For
The equivalence between the coercion of an additive subgroup S of
Mˣ to an additive submonoid of M and the additive subgroup itself as a type.
Equations
- S.ofAddUnitsEquivType = { toFun := fun (x : ↥S.ofAddUnits) => ⟨S.addUnit_of_mem_ofAddUnits ⋯, ⋯⟩, invFun := fun (x : ↥S) => ⟨↑↑x, ⋯⟩, left_inv := ⋯, right_inv := ⋯, map_add' := ⋯ }
Instances For
The equivalence between the top subgroup of Mˣ coerced to a submonoid M and the
units of M.
Instances For
The equivalence between the additive subgroup of additive units of
S and the additive submonoid of additive unit elements of S.
Instances For
The equivalence between the greatest subgroup of units contained within T and T itself.
Equations
Instances For
The equivalence between the greatest subgroup of additive units
contained within T and T itself.