El siguiente algoritmo determina la máxima abelian subgrupos de un finitely generado nilpotent grupo $G$:
- Calcular el centro de $C$ $G$ y establezca $A := C$.
- Calcular $C_G(A)$
- Si $C_G(A)=A$ $A$ es máxima abelian. En caso contrario, seleccione cualquier $a \in C_G(A)\setminus A$ y establezca $A := \langle A,a\rangle$ y repita los pasos 2, 3.
Nota:
- Máxima abelian subgrupos $A$ se caracterizan por $A$ abelian y $C_G(A)=A$
- El algoritmo termina: a, que se define de forma ascendente en la cadena de abelian subgrupos $$C = A_0 \subsetneqq A_1 \subsetneqq A_2 \subsetneqq \ldots \subsetneqq G$$
Desde subgrupos de f.g. nilpotent grupos f.g., la cadena se hace estacionario, digamos, a $A_n$, es decir, el algoritmo se detiene después de $n$ pasos.
- Por el contrario, es claro, que cualquier máxima abelian subgrupo puede ser construido de esta manera ya que es f.g.
Vamos a aplicar el algoritmo a la discreta Heisenberg grupo $G$: Aquí $C=\langle c\rangle$ donde$c=[x,y]$, y para todos los enteros $(i,j)\neq (0,0)$ tenemos $C_G(\langle c,x^iy^j\rangle)=\langle c,x^{i/d}y^{j/d}\rangle$ donde $d=gcd(i,j)$. En particular, la máxima abelian subgrupos de $G$ son exactamente los grupos de $\langle c,x^iy^j\rangle$ donde $(i,j)\neq (0,0)$ son coprime.