# Invariants of an Abelian Group

## `ElementaryAbelianQuotient(G, p): GrpAb, RngIntElt -> GrpAb, Map`

The maximal $p$-elementary abelian quotient of the group $G$ as `GrpAb`. The natural epimorphism is returned as second value.

## `FreeAbelianQuotient(G): GrpAb -> GrpAb, Map`

The maximal free abelian quotient of the group $G$ as `GrpAb`. The natural epimorphism is returned as second value.

## `PrimaryAbelianInvariants(A): GrpAb -> [ RngIntElt ]`

## `AbelianInvariants(A): GrpAb -> [ RngIntElt ]`

The $p$-primary invariants of the abelian group $A$. Each infinite cyclic factor is represented by zero. The non-primary form gives the Smith form invariants, i.e. each element of the sequence divides the next.

## `PrimaryAbelianBasis(A): GrpAb -> [ GrpAbElt ], [ RngIntElt ]`

## `AbelianBasis(A): GrpAb -> [ GrpAbElt ], [ RngIntElt ]`

Returns sequences $B$ and $I$, where $I$ are the $p$-primary invariants of $A$, and $B$ are generators for $A$ with orders as in $I$. The non-primary form uses the Smith form invariants, i.e. each element of the sequence divides the next.

## `TorsionFreeRank(A): GrpAb -> RngIntElt`

The torsion-free rank of the abelian group $G$.

## `TorsionInvariants(A): GrpAb -> [ RngIntElt ]`

The torsion invariants of the abelian group $G$.

## `pPrimaryInvariants(A, p): GrpAb, RngIntElt -> [ RngIntElt ]`

The $p$-primary invariants of the abelian group $G$.
