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
,add_submonoid.fg S
: A submonoidS
is finitely generated.monoid.fg M
,add_monoid.fg M
: A typeclass indicating a typeM
is finitely generated as a monoid.subgroup.fg S
,add_subgroup.fg S
: A subgroupS
is finitely generated.group.fg M
,add_group.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
.
A submonoid of M
is finitely generated if it is the closure of a finite subset of M
.
An equivalent expression of submonoid.fg
in terms of set.finite
instead of finset
.
An equivalent expression of add_submonoid.fg
in terms of set.finite
instead of
finset
.
A monoid is finitely generated if it is finitely generated as a submonoid of itself.
An additive monoid is finitely generated if it is finitely generated as an additive submonoid of itself.
An equivalent expression of monoid.fg
in terms of set.finite
instead of finset
.
An equivalent expression of add_monoid.fg
in terms of set.finite
instead of
finset
.
Groups and subgroups #
An additive subgroup of H
is finitely generated if it is the closure of a finite subset of
H
.
A subgroup of G
is finitely generated if it is the closure of a finite subset of G
.
An equivalent expression of subgroup.fg
in terms of set.finite
instead of finset
.
An equivalent expression of add_subgroup.fg
in terms of set.finite
instead of
finset
.
A subgroup is finitely generated if and only if it is finitely generated as a submonoid.
An additive subgroup is finitely generated if and only if it is finitely generated as an additive submonoid.
A group is finitely generated if it is finitely generated as a submonoid of itself.
An additive group is finitely generated if it is finitely generated as an additive submonoid of itself.
An equivalent expression of add_group.fg
in terms of set.finite
instead of
finset
.
An equivalent expression of group.fg
in terms of set.finite
instead of finset
.
An additive group is finitely generated if and only if it is finitely generated as an additive monoid.
The minimum number of generators of an additive group
Equations
- add_group.rank G = nat.find _
The minimum number of generators of a group.
Equations
- group.rank G = nat.find _