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 additive units of S, packaged as an additive subgroup of AddUnits M.
Equations
- AddSubmonoid.addUnits S = { toAddSubmonoid := AddSubmonoid.comap (AddUnits.coeHom M) S ⊓ -AddSubmonoid.comap (AddUnits.coeHom M) S, neg_mem' := ⋯ }
Instances For
The units of S, packaged as a subgroup of Mˣ.
Equations
- Submonoid.units S = { toSubmonoid := Submonoid.comap (Units.coeHom M) S ⊓ (Submonoid.comap (Units.coeHom M) S)⁻¹, inv_mem' := ⋯ }
Instances For
A additive subgroup of additive units represented as a additive submonoid of M.
Equations
- AddSubgroup.ofAddUnits S = AddSubmonoid.map (AddUnits.coeHom M) S.toAddSubmonoid
Instances For
A subgroup of units represented as a submonoid of M.
Equations
- Subgroup.ofUnits S = Submonoid.map (Units.coeHom M) S.toSubmonoid
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- ⋯ = ⋯
Instances For
A Galois coinsertion exists between the coercion from a additive subgroup of additive units to a additive submonoid and the reduction from a additive submonoid to its unit group.
Equations
- ofAddUnits_addUnits_gci = GaloisCoinsertion.monotoneIntro ⋯ ⋯ ⋯ ⋯
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
- ofUnits_units_gci = GaloisCoinsertion.monotoneIntro ⋯ ⋯ ⋯ ⋯
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
Equations
- AddSubmonoid.addUnitsEquivAddUnitsType.match_1 S motive x h_1 = Subtype.casesOn x fun (val : AddUnits M) (property : val ∈ AddSubmonoid.addUnits S) => h_1 val property
Instances For
The equivalence between the subgroup of units of S and the type of units of S.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The equivalence between the additive subgroup of additive units of
S and the additive submonoid of additive unit elements of S.
Equations
- AddSubmonoid.addUnitsEquivIsAddUnitAddSubmonoid S = AddEquiv.trans (AddSubmonoid.addUnitsEquivAddUnitsType S) AddSubmonoid.addUnitsTypeEquivIsAddUnitAddSubmonoid
Instances For
The equivalence between the subgroup of units of S and the submonoid of unit
elements of S.
Equations
- Submonoid.unitsEquivIsUnitSubmonoid S = MulEquiv.trans (Submonoid.unitsEquivUnitsType S) Submonoid.unitsTypeEquivIsUnitSubmonoid
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- ⋯ = ⋯
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
- AddSubgroup.addUnit_of_mem_ofAddUnits S h = AddUnits.copy (Classical.choose h) x ⋯ ↑(-Classical.choose h) ⋯
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
- Subgroup.unit_of_mem_ofUnits S h = Units.copy (Classical.choose h) x ⋯ ↑(Classical.choose h)⁻¹ ⋯
Instances For
Equations
- ⋯ = ⋯
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
- One or more equations did not get rendered due to their size.
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
- One or more equations did not get rendered due to their size.
Instances For
The equivalence between the additive subgroup of additive units of
S and the additive submonoid of additive unit elements of S.
Equations
- AddSubgroup.ofAddUnitsTopEquiv = AddEquiv.trans (AddSubgroup.ofAddUnitsEquivType ⊤) AddSubgroup.topEquiv
Instances For
The equivalence between the top subgroup of Mˣ coerced to a submonoid M and the
units of M.
Equations
- Subgroup.ofUnitsTopEquiv = MulEquiv.trans (Subgroup.ofUnitsEquivType ⊤) Subgroup.topEquiv
Instances For
The equivalence between the greatest subgroup of additive units
contained within T and T itself.
Equations
- AddSubgroup.addUnitsEquivSelf H = AddEquiv.trans (AddSubmonoid.addUnitsEquivAddUnitsType H.toAddSubmonoid) (AddEquiv.symm toAddUnits)
Instances For
The equivalence between the greatest subgroup of units contained within T and T itself.
Equations
- Subgroup.unitsEquivSelf H = MulEquiv.trans (Submonoid.unitsEquivUnitsType H.toSubmonoid) (MulEquiv.symm toUnits)