Finitely generated monoids and groups #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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
.
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.
Instances of this typeclass
An additive monoid is finitely generated if it is finitely generated as an additive submonoid of itself.
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
.
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.
Instances of this typeclass
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 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 _