# mathlibdocumentation

group_theory.finiteness

# 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 submonoid S is finitely generated.
• monoid.fg M, add_monoid.fg M : A typeclass indicating a type M is finitely generated as a monoid.
• subgroup.fg S, add_subgroup.fg S : A subgroup S is finitely generated.
• group.fg M, add_group.fg M : A typeclass indicating a type M is finitely generated as a group.

### Monoids and submonoids #

Prop

An additive submonoid of N is finitely generated if it is the closure of a finite subset of M.

Equations
def submonoid.fg {M : Type u_1} [monoid M] (P : submonoid M) :
Prop

A submonoid of M is finitely generated if it is the closure of a finite subset of M.

Equations
theorem submonoid.fg_iff {M : Type u_1} [monoid M] (P : submonoid M) :
P.fg ∃ (S : set M), S.finite

An equivalent expression of submonoid.fg in terms of set.finite instead of finset.

P.fg ∃ (S : set M),

An equivalent expression of add_submonoid.fg in terms of set.finite instead of finset.

theorem submonoid.fg_iff_add_fg {M : Type u_1} [monoid M] (P : submonoid M) :
@[class]
structure monoid.fg (M : Type u_1) [monoid M] :
Prop

A monoid is finitely generated if it is finitely generated as a submonoid of itself.

Instances
@[class]
Prop

An additive monoid is finitely generated if it is finitely generated as an additive submonoid of itself.

Instances
theorem monoid.fg_def {M : Type u_1} [monoid M] :
theorem monoid.fg_iff {M : Type u_1} [monoid M] :
∃ (S : set M),

An equivalent expression of monoid.fg in terms of set.finite instead of finset.

∃ (S : set M),

An equivalent expression of add_monoid.fg in terms of set.finite instead of finset.

theorem monoid.fg_iff_add_fg {M : Type u_1} [monoid M] :
@[protected, instance]
def add_monoid.fg_of_monoid_fg {M : Type u_1} [monoid M] [monoid.fg M] :
@[protected, instance]

### Groups and subgroups #

Prop

An additive subgroup of H is finitely generated if it is the closure of a finite subset of H.

Equations
def subgroup.fg {G : Type u_3} [group G] (P : subgroup G) :
Prop

A subgroup of G is finitely generated if it is the closure of a finite subset of G.

Equations
theorem subgroup.fg_iff {G : Type u_3} [group G] (P : subgroup G) :
P.fg ∃ (S : set G), S.finite

An equivalent expression of subgroup.fg in terms of set.finite instead of finset.

P.fg ∃ (S : set G), S.finite

An equivalent expression of add_subgroup.fg in terms of set.finite instead of finset.

theorem subgroup.fg_iff_submonoid_fg {G : Type u_3} [group G] (P : subgroup G) :

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.

theorem subgroup.fg_iff_add_fg {G : Type u_3} [group G] (P : subgroup G) :
@[class]
structure group.fg (G : Type u_3) [group G] :
Prop

A group is finitely generated if it is finitely generated as a submonoid of itself.

Instances
@[class]
Prop

An additive group is finitely generated if it is finitely generated as an additive submonoid of itself.

Instances
theorem group.fg_def {G : Type u_3} [group G] :
∃ (S : set G),

An equivalent expression of add_group.fg in terms of set.finite instead of finset.

theorem group.fg_iff {G : Type u_3} [group G] :
∃ (S : set G),

An equivalent expression of group.fg in terms of set.finite instead of finset.

theorem group.fg_iff_monoid.fg {G : Type u_3} [group G] :

A group is finitely generated if and only if it is finitely generated as a monoid.