Finitely generated monoids and groups #
We define finitely generated monoids and groups. See also Submodule.FG
and Module.Finite
for
finitely-generated modules.
Main definition #
Submonoid.FG S
,AddSubmonoid.FG S
: A submonoidS
is finitely generated.Monoid.FG M
,AddMonoid.FG M
: A typeclass indicating a typeM
is finitely generated as a monoid.Subgroup.FG S
,AddSubgroup.FG S
: A subgroupS
is finitely generated.Group.FG M
,AddGroup.FG M
: A typeclass indicating a typeM
is finitely generated as a group.
Monoids and submonoids #
An additive submonoid of N
is finitely generated if it is the closure of a finite subset of
M
.
Equations
- AddSubmonoid.FG P = ∃ (S : Finset M), AddSubmonoid.closure ↑S = P
Instances For
A submonoid of M
is finitely generated if it is the closure of a finite subset of M
.
Equations
- Submonoid.FG P = ∃ (S : Finset M), Submonoid.closure ↑S = P
Instances For
Equations
- (_ : motive x) = (_ : motive x)
Instances For
Equations
- (_ : motive x) = (_ : motive x)
Instances For
An equivalent expression of AddSubmonoid.FG
in terms of Set.Finite
instead of
Finset
.
An equivalent expression of Submonoid.FG
in terms of Set.Finite
instead of Finset
.
An additive monoid is finitely generated if it is finitely generated as an additive submonoid of itself.
- out : AddSubmonoid.FG ⊤
Instances
An equivalent expression of AddMonoid.FG
in terms of Set.Finite
instead of Finset
.
An equivalent expression of Monoid.FG
in terms of Set.Finite
instead of Finset
.
Equations
- (_ : AddMonoid.FG (Additive M)) = (_ : AddMonoid.FG (Additive M))
Equations
- (_ : Monoid.FG (Multiplicative N)) = (_ : Monoid.FG (Multiplicative N))
Equations
- (_ : AddMonoid.FG M) = (_ : AddMonoid.FG M)
Equations
- (_ : AddMonoid.FG ↥(AddMonoidHom.mrange f)) = (_ : AddMonoid.FG ↥(AddMonoidHom.mrange f))
Equations
- (_ : Monoid.FG ↥(MonoidHom.mrange f)) = (_ : Monoid.FG ↥(MonoidHom.mrange f))
Equations
- (_ : AddMonoid.FG ↥(AddSubmonoid.multiples r)) = (_ : AddMonoid.FG ↥(AddSubmonoid.multiples r))
Equations
- (_ : Monoid.FG ↥(Submonoid.powers r)) = (_ : Monoid.FG ↥(Submonoid.powers r))
Equations
- (_ : AddMonoid.FG ↥(AddSubmonoid.closure ↑s)) = (_ : AddMonoid.FG ↥(AddSubmonoid.closure ↑s))
Equations
- (_ : Monoid.FG ↥(Submonoid.closure ↑s)) = (_ : Monoid.FG ↥(Submonoid.closure ↑s))
Equations
- (_ : AddMonoid.FG ↥(AddSubmonoid.closure s)) = (_ : AddMonoid.FG ↥(AddSubmonoid.closure s))
Equations
- (_ : Monoid.FG ↥(Submonoid.closure s)) = (_ : Monoid.FG ↥(Submonoid.closure s))
Groups and subgroups #
An additive subgroup of H
is finitely generated if it is the closure of a finite subset of
H
.
Equations
- AddSubgroup.FG P = ∃ (S : Finset G), AddSubgroup.closure ↑S = P
Instances For
A subgroup of G
is finitely generated if it is the closure of a finite subset of G
.
Equations
- Subgroup.FG P = ∃ (S : Finset G), Subgroup.closure ↑S = P
Instances For
Equations
- (_ : motive x) = (_ : motive x)
Instances For
Equations
- (_ : motive x) = (_ : motive x)
Instances For
An equivalent expression of AddSubgroup.fg
in terms of Set.Finite
instead of
Finset
.
An equivalent expression of Subgroup.FG
in terms of Set.Finite
instead of Finset
.
An additive subgroup is finitely generated if and only if it is finitely generated as an additive submonoid.
A subgroup is finitely generated if and only if it is finitely generated as a submonoid.
An additive group is finitely generated if it is finitely generated as an additive submonoid of itself.
- out : AddSubgroup.FG ⊤
Instances
An equivalent expression of AddGroup.fg
in terms of Set.Finite
instead of Finset
.
An equivalent expression of Group.FG
in terms of Set.Finite
instead of Finset
.
Equations
- (_ : motive x) = (_ : motive x)
Instances For
An additive group is finitely generated if and only if it is finitely generated as an additive monoid.
Equations
- (_ : AddGroup.FG (Additive G)) = (_ : AddGroup.FG (Additive G))
Equations
- (_ : Group.FG (Multiplicative H)) = (_ : Group.FG (Multiplicative H))
Equations
- (_ : AddGroup.FG G) = (_ : AddGroup.FG G)
Equations
- (_ : AddGroup.FG ↥(AddMonoidHom.range f)) = (_ : AddGroup.FG ↥(AddMonoidHom.range f))
Equations
- (_ : Group.FG ↥(MonoidHom.range f)) = (_ : Group.FG ↥(MonoidHom.range f))
Equations
- (_ : AddGroup.FG ↥(AddSubgroup.closure ↑s)) = (_ : AddGroup.FG ↥(AddSubgroup.closure ↑s))
Equations
- (_ : Group.FG ↥(Subgroup.closure ↑s)) = (_ : Group.FG ↥(Subgroup.closure ↑s))
Equations
- (_ : AddGroup.FG ↥(AddSubgroup.closure s)) = (_ : AddGroup.FG ↥(AddSubgroup.closure s))
Equations
- (_ : Group.FG ↥(Subgroup.closure s)) = (_ : Group.FG ↥(Subgroup.closure s))
The minimum number of generators of an additive group
Equations
- AddGroup.rank G = Nat.find (_ : ∃ (n : ℕ) (S : Finset G), S.card = n ∧ AddSubgroup.closure ↑S = ⊤)
Instances For
Equations
- (_ : AddGroup.FG (G ⧸ N)) = (_ : AddGroup.FG (G ⧸ N))