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 #
IsAddFG: A type with addition is finitely generated if there is a finite subset such that every element of the type can be written as a finite sum of elements from this finite subset.IsMulFG: A type with multiplication is finitely generated if there is a finite subset such that every element of the type can be written as a finite product of elements from this finite subset.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.
TODO #
The declarations Group.FG, Subgroup.FG, Monoid.FG and Submonoid.FG are all special cases
of the newly added IsMulFG. The plan is to deprecate all four of these definitions in favor of
the more general IsMulFG.
Previously the subobject predicates Submonoid.FG and Subgroup.FG were used to define the more
general Monoid.FG and Group.FG, but the new IsMulFG defines the general predicate directly.
A type with addition is finitely generated if there is a finite subset such that every element of the type can be written as a finite sum of elements from this finite subset.
This generalizes and will eventually replace the four existing definitions
AddSubmonoid.FG, AddMonoid.FG, AddSubgroup.FG, and AddGroup.FG.
- out : ∃ (S : Finset M), AddSubsemigroup.closure ↑S = ⊤
Instances
A type with multiplication is finitely generated if there is a finite subset such that every element of the type can be written as a finite product of elements from this finite subset.
This generalizes and will eventually replace the four existing definitions
Submonoid.FG, Monoid.FG, Subgroup.FG, and Group.FG.
- out : ∃ (S : Finset M), Subsemigroup.closure ↑S = ⊤
Instances
Monoids and submonoids #
An additive submonoid of N is finitely generated if it is the closure of a
finite subset of M.
Instances For
An equivalent expression of Submonoid.FG in terms of Set.Finite instead of Finset.
An equivalent expression of AddSubmonoid.FG in terms of Set.Finite instead of
Finset.
The product of two finitely generated additive submonoids is finitely generated.
Finite product of finitely generated additive submonoids is finitely generated.
An additive monoid is finitely generated if it is finitely generated as an additive submonoid of itself.
Equations
- AddMonoid.FG M = IsAddFG M
Instances For
An equivalent expression of Monoid.FG in terms of Set.Finite instead of Finset.
An equivalent expression of AddMonoid.FG in terms of Set.Finite instead of Finset.
A monoid is finitely generated iff there exists a surjective homomorphism from a FreeMonoid
on finitely many generators.
An additive monoid is finitely generated iff there exists a surjective
homomorphism from a FreeAddMonoid on finitely many generators.
A monoid if finitely generated if and only if there exists a surjective homomorphism from a
FreeMonoid on an arbitrary finite type α to the monoid.
An additive monoid is finitely generated iff there exists a surjective
homomorphism from a FreeAddMonoid on an arbitrary finite type α to the monoid.
Groups and subgroups #
An additive subgroup of H is finitely generated if it is the closure of a finite subset of
H.
Instances For
An equivalent expression of Subgroup.FG in terms of Set.Finite instead of Finset.
An equivalent expression of AddSubgroup.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.
The product of two finitely generated additive subgroups is finitely generated.
Finite product of finitely generated additive subgroups is finitely generated.
An additive group is finitely generated if it is finitely generated as an additive subgroup of itself.
Equations
- AddGroup.FG G = IsAddFG G
Instances For
An equivalent expression of Group.FG in terms of Set.Finite instead of Finset.
An equivalent expression of AddGroup.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.
An additive group is finitely generated iff there exists a surjective homomorphism
from a FreeAddGroup on finitely many generators.
A group if finitely generated if and only if there exists a surjective homomorphism from a
FreeGroup on an arbitrary finite type α to the group.
An additive group is finitely generated iff there exists a surjective homomorphism
from a FreeAddGroup on an arbitrary finite type α to the group.
In a canonically ordered and well-quasi-ordered monoid, any divisive submonoid is finitely generated.
In a canonically ordered and well-quasi-ordered additive monoid
(typical example is ℕ ^ k), any subtractive submonoid is finitely generated.
A canonically ordered and well-quasi-ordered monoid must be finitely generated.
A canonically ordered and well-quasi-ordered additive monoid must be finitely generated.
If f g are homomorphisms from a canonically ordered and well-quasi-ordered monoid M to a
cancellative monoid N, the submonoid of M on which f and g agree is finitely generated.
If f g are homomorphisms from a canonically ordered and well-quasi-ordered
additive monoid M to a cancellative additive monoid N, the submonoid of M on which f and g
agree is finitely generated. When M and N are ℕ ^ k, this is also known as a version of
Gordan's lemma.