# Nilpotent groups #

An API for nilpotent groups, that is, groups for which the upper central series
reaches `⊤`

.

## Main definitions #

Recall that if `H K : Subgroup G`

then `⁅H, K⁆ : Subgroup G`

is the subgroup of `G`

generated
by the commutators `hkh⁻¹k⁻¹`

. Recall also Lean's conventions that `⊤`

denotes the
subgroup `G`

of `G`

, and `⊥`

denotes the trivial subgroup `{1}`

.

`upperCentralSeries G : ℕ → Subgroup G`

: the upper central series of a group`G`

. This is an increasing sequence of normal subgroups`H n`

of`G`

with`H 0 = ⊥`

and`H (n + 1) / H n`

is the centre of`G / H n`

.`lowerCentralSeries G : ℕ → Subgroup G`

: the lower central series of a group`G`

. This is a decreasing sequence of normal subgroups`H n`

of`G`

with`H 0 = ⊤`

and`H (n + 1) = ⁅H n, G⁆`

.`IsNilpotent`

: A group G is nilpotent if its upper central series reaches`⊤`

, or equivalently if its lower central series reaches`⊥`

.`nilpotency_class`

: the length of the upper central series of a nilpotent group.`IsAscendingCentralSeries (H : ℕ → Subgroup G) : Prop`

and`IsDescendingCentralSeries (H : ℕ → Subgroup G) : Prop`

: Note that in the literature a "central series" for a group is usually defined to be a*finite*sequence of normal subgroups`H 0`

,`H 1`

, ..., starting at`⊤`

, finishing at`⊥`

, and with each`H n / H (n + 1)`

central in`G / H (n + 1)`

. In this formalisation it is convenient to have two weaker predicates on an infinite sequence of subgroups`H n`

of`G`

: we say a sequence is a*descending central series*if it starts at`G`

and`⁅H n, ⊤⁆ ⊆ H (n + 1)`

for all`n`

. Note that this series may not terminate at`⊥`

, and the`H i`

need not be normal. Similarly a sequence is an*ascending central series*if`H 0 = ⊥`

and`⁅H (n + 1), ⊤⁆ ⊆ H n`

for all`n`

, again with no requirement that the series reaches`⊤`

or that the`H i`

are normal.

## Main theorems #

`G`

is *defined* to be nilpotent if the upper central series reaches `⊤`

.

`nilpotent_iff_finite_ascending_central_series`

:`G`

is nilpotent iff some ascending central series reaches`⊤`

.`nilpotent_iff_finite_descending_central_series`

:`G`

is nilpotent iff some descending central series reaches`⊥`

.`nilpotent_iff_lower`

:`G`

is nilpotent iff the lower central series reaches`⊥`

.- The
`nilpotency_class`

can likeways be obtained from these equivalent definitions, see`least_ascending_central_series_length_eq_nilpotencyClass`

,`least_descending_central_series_length_eq_nilpotencyClass`

and`lowerCentralSeries_length_eq_nilpotencyClass`

. - If
`G`

is nilpotent, then so are its subgroups, images, quotients and preimages. Binary and finite products of nilpotent groups are nilpotent. Infinite products are nilpotent if their nilpotent class is bounded. Corresponding lemmas about the`nilpotency_class`

are provided. - The
`nilpotency_class`

of`G ⧸ center G`

is given explicitly, and an induction principle is derived from that. `IsNilpotent.to_isSolvable`

: If`G`

is nilpotent, it is solvable.

## Warning #

A "central series" is usually defined to be a finite sequence of normal subgroups going
from `⊥`

to `⊤`

with the property that each subquotient is contained within the centre of
the associated quotient of `G`

. This means that if `G`

is not nilpotent, then
none of what we have called `upperCentralSeries G`

, `lowerCentralSeries G`

or
the sequences satisfying `IsAscendingCentralSeries`

or `IsDescendingCentralSeries`

are actually central series. Note that the fact that the upper and lower central series
are not central series if `G`

is not nilpotent is a standard abuse of notation.

If `H`

is a normal subgroup of `G`

, then the set `{x : G | ∀ y : G, x*y*x⁻¹*y⁻¹ ∈ H}`

is a subgroup of `G`

(because it is the preimage in `G`

of the centre of the
quotient group `G/H`

.)

## Instances For

The proof that `upperCentralSeriesStep H`

is the preimage of the centre of `G/H`

under
the canonical surjection.

An auxiliary type-theoretic definition defining both the upper central series of a group, and a proof that it is normal, all in one go.

## Equations

- One or more equations did not get rendered due to their size.
- upperCentralSeriesAux G 0 = { fst := ⊥, snd := (_ : Subgroup.Normal ⊥) }

## Instances For

`upperCentralSeries G n`

is the `n`

th term in the upper central series of `G`

.

## Instances For

- nilpotent' : ∃ n, upperCentralSeries G n = ⊤

A group `G`

is nilpotent if its upper central series is eventually `G`

.

## Instances

Any ascending central series for a group is bounded above by the upper central series.

The upper central series of a group is an ascending central series.

A group `G`

is nilpotent iff there exists an ascending central series which reaches `G`

in
finitely many steps.

A group `G`

is nilpotent iff there exists a descending central series which reaches the
trivial group in a finite time.

The lower central series of a group `G`

is a sequence `H n`

of subgroups of `G`

, defined
by `H 0`

is all of `G`

and for `n≥1`

, `H (n + 1) = ⁅H n, G⁆`

## Equations

- lowerCentralSeries G 0 = ⊤
- lowerCentralSeries G (Nat.succ n) = ⁅lowerCentralSeries G n, ⊤⁆

## Instances For

The lower central series of a group is a descending central series.

Any descending central series for a group is bounded below by the lower central series.

A group is nilpotent if and only if its lower central series eventually reaches the trivial subgroup.

The nilpotency class of a nilpotent group is the smallest natural `n`

such that
the `n`

'th term of the upper central series is `G`

.

## Instances For

The nilpotency class of a nilpotent `G`

is equal to the smallest `n`

for which an ascending
central series reaches `G`

in its `n`

'th term.

The nilpotency class of a nilpotent `G`

is equal to the smallest `n`

for which the descending
central series reaches `⊥`

in its `n`

'th term.

The nilpotency class of a nilpotent `G`

is equal to the length of the lower central series.

A subgroup of a nilpotent group is nilpotent

The nilpotency class of a subgroup is less or equal to the nilpotency class of the group

The preimage of a nilpotent group is nilpotent if the kernel of the homomorphism is contained in the center

The range of a surjective homomorphism from a nilpotent group is nilpotent

The nilpotency class of the range of a surjective homomorphism from a nilpotent group is less or equal the nilpotency class of the domain

Nilpotency respects isomorphisms

A quotient of a nilpotent group is nilpotent

The nilpotency class of a quotient of `G`

is less or equal the nilpotency class of `G`

Quotienting the `center G`

reduces the nilpotency class by 1

The nilpotency class of a non-trivial group is one more than its quotient by the center

If the quotient by `center G`

is nilpotent, then so is G.

A custom induction principle for nilpotent groups. The base case is a trivial group
(`subsingleton G`

), and in the induction step, one can assume the hypothesis for
the group quotiented by its center.

Abelian groups are nilpotent

Abelian groups have nilpotency class at most one

Groups with nilpotency class at most one are abelian

## Instances For

Products of nilpotent groups are nilpotent

The nilpotency class of a product is the max of the nilpotency classes of the factors

products of nilpotent groups are nilpotent if their nilpotency class is bounded

n-ary products of nilpotent groups are nilpotent

The nilpotency class of an n-ary product is the sup of the nilpotency classes of the factors

A nilpotent subgroup is solvable

If a finite group is the direct product of its Sylow groups, it is nilpotent

A finite group is nilpotent iff the normalizer condition holds, and iff all maximal groups are normal and iff all sylow groups are normal and iff the group is the direct product of its sylow groups.