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 submonoidSis finitely generated.Monoid.FG M,AddMonoid.FG M: A typeclass indicating a typeMis finitely generated as a monoid.Subgroup.FG S,AddSubgroup.FG S: A subgroupSis finitely generated.Group.FG M,AddGroup.FG M: A typeclass indicating a typeMis 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 = ⊤)