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, 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, Submonoid.closure ↑S = P
Instances For
Equations
- AddSubmonoid.fg_iff.match_1 P motive x h_1 = Exists.casesOn x fun w h => h_1 w h
Instances For
An equivalent expression of AddSubmonoid.FG
in terms of Set.Finite
instead of
Finset
.
Equations
- AddSubmonoid.fg_iff.match_2 P motive x h_1 = Exists.casesOn x fun w h => And.casesOn h fun left right => h_1 w left right
Instances For
An equivalent expression of Submonoid.FG
in terms of Set.Finite
instead of Finset
.
- out : AddSubmonoid.FG ⊤
An additive monoid is finitely generated if it is finitely generated as an additive submonoid of itself.
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
Equations
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, 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, Subgroup.closure ↑S = P
Instances For
Equations
- AddSubgroup.fg_iff.match_1 P motive x h_1 = Exists.casesOn x fun w h => h_1 w h
Instances For
An equivalent expression of AddSubgroup.fg
in terms of Set.Finite
instead of
Finset
.
Equations
- AddSubgroup.fg_iff.match_2 P motive x h_1 = Exists.casesOn x fun w h => And.casesOn h fun left right => h_1 w left right
Instances For
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.
- out : AddSubgroup.FG ⊤
An additive group is finitely generated if it is finitely generated as an additive submonoid of itself.
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
- AddGroup.fg_iff'.match_1 motive x h_1 = Exists.casesOn x fun w h => h_1 w h
Instances For
Equations
- AddGroup.fg_iff'.match_2 motive x h_1 = Exists.casesOn x fun w h => Exists.casesOn h fun w_1 h => And.casesOn h fun left right => h_1 w w_1 left right
Instances For
An additive group is finitely generated if and only if it is finitely generated as an additive monoid.
Equations
The minimum number of generators of an additive group
Equations
- AddGroup.rank G = Nat.find (_ : ∃ n S, Finset.card S = n ∧ AddSubgroup.closure ↑S = ⊤)
Instances For
The minimum number of generators of a group.
Equations
- Group.rank G = Nat.find (_ : ∃ n S, Finset.card S = n ∧ Subgroup.closure ↑S = ⊤)