# Invariants

Several invariants of an abelian extension can easily be obtained from the ideal groups without first computing defining equations for the field.

## `Discriminant(A): FldAb -> RngOrdIdl, [RngIntElt]`

Let $A$ be an abelian extension. Based on the conductor-discriminant relation made explicit by [[Cohen, 2000](../../references.md#cite-cohen2), Section 3.5.2], the discriminant of the class field $A$ is computed. This does not involve the computation of defining equations. The second return value is the signature of the resulting field.

## `AbsoluteDiscriminant(A): FldAb -> RngIntElt`

The absolute discriminant of $A$ as a number field over ${\mathbb{Q}}$.

## `Conductor(A): FldAb -> RngOrdIdl, [RngIntElt]`

Computes the conductor of the abelian extension $A$, i.e. the smallest ideal and the smallest set of infinite places that are necessary to define $A$. The algorithm used is based on [[Heß *et al.*, 1997](../../references.md#cite-pau2), [Pauli, 1996](../../references.md#cite-pau1)].

## `Degree(A): FldAb -> RngIntElt`

The degree of the abelian extension $A$.

## `AbsoluteDegree(A): FldAb -> RngIntElt`

The degree of the abelian extension $A$ over ${\mathbb{Q}}$.

## `CoefficientRing(A): FldAb -> Fld`

## `CoefficientField(A): FldAb -> Fld`

## `BaseField(A): FldAb -> Fld`

The base field of the abelian extension $A$, that is `FieldOfFractions(BaseRing(A))`.

## `BaseRing(A): FldAb -> Rng`

## `CoefficientRing(A): FldAb -> Rng`

The base ring of the abelian extension $A$, that is the maximal order used to define the underlying ray class group.

## `NormGroup(A): FldAb -> Map, RngOrdIdl, [RngIntElt]`

The norm group (see the definition of FldAb:norm_group) used to define the abelian extension $A$.

## `DecompositionField(p, A): RngOrdIdl, FldAb -> FldAb`

The decomposition field of the finite prime $p$ in the abelian extension $A$ as an abelian (sub)extension.

## `DecompositionField(p, A): PlcNumElt, FldAb -> FldAb`

The decomposition field of the place $p$ in the abelian extension $A$ as an abelian extension.

## `DecompositionGroup(p, A): RngIntElt, FldAb -> GrpAb`

## `DecompositionGroup(p, A): RngOrdIdl, FldAb -> GrpAb`

The decomposition group of the finite prime $p$ in the abelian extension $A$. The abelian group returned is a subgroup of the norm group.

## `DecompositionGroup(p, A): PlcNumElt, FldAb -> GrpAb`

The decomposition group of the place $p$ in the abelian extension $A$. The abelian group returned is a subgroup of the `NormGroup`.

## `DecompositionType(A, p): FldAb, RngOrdIdl -> [Tpl]`

The “type” of the decomposition of the finite prime ideal $p$ in the abelian extension $A$ as a sequence of pairs $\langle f, e\rangle$ giving the degrees and the ramification indices.

## `DecompositionType(A, p): FldAb, PlcNumElt -> [Tpl]`

The “type” of the decomposition of the place $p$ in the abelian extension $A$ as a sequence of pairs $\langle f, e\rangle$ giving the degrees and the ramification indices.

## `DecompositionType(A, p): FldAb, RngIntElt -> [Tpl]`

```magma
Normal: BoolElt                    Default: false
```

The “type” of the decomposition over ${\mathbb{Q}}$ of the prime number $p$ in the abelian extension $A$ as a sequence of pairs $\langle f, e\rangle$ giving the degrees and the ramification indices. If `Normal` is set to `true` then the algorithm assumes that the base field of $A$ is normal. This is used to speed up the computations.

## `DecompositionTypeFrequency(A, l): FldAb, [ ] -> Mset`

```magma
Normal: BoolElt                    Default: false
```

Computes the decomposition type of all elements in $l$ and returns them as a multi-set. The list $l$ must only contain objects for which `DecompositionType` is defined. If `Normal eq true` then the underlying `DecompositionType` function must be able to deal with it too. If `Normal` is set to `true` then the algorithm assumes that the base field of the abelian extension $A$ is normal. This is used to speed up the computations.

## `DecompositionTypeFrequency(A, a, b): FldAb, RngIntElt, RngIntElt -> Mset`

```magma
Normal: BoolElt                    Default: false
```

Computes the decomposition type over ${\mathbb{Q}}$ in the abelian extension $A$ of all prime numbers $a \leq p \leq b$ and returns them as a multi set.

If `Normal` is set to `true` then the algorithm assumes that the base field of $A$ is normal. This is used to speed up the computations.
