# Factorization and Primes

## `Factorization(I): AlgEtQIdl -> Tup`

Given an integral $S$-ideal $I$ coprime with the conductor of $S$ (hence invertible in $S$), returns its factorization into a product of primes of $S$.

## `PrimesAbove(I): AlgEtQIdl -> SeqEnum[AlgAssEtOrdIdl]`

Given an integral $S$-ideal $I$, returns the sequence of maximal ideals $P$ of $S$ above $I$.

## `SingularPrimes(R): AlgEtQOrd -> SeqEnum[AlgAssEtOrdIdl]`

Returns the non-invertible primes of the order $R$.

## `PlacesAboveRationalPrime(E, p): AlgEtQ, RngIntElt -> SeqEnum[AlgEtQIdl]`

Given an étale algebra and a rational prime, returns the primes of the maximal order of the algebra containing the rational prime.

## `NonInvertiblePrimes(R): AlgEtQOrd -> SetIndx`

Returns the non-invertible primes of the order $R$.

## `IsPrime(I): AlgEtQIdl -> BoolElt`

## `IsMaximal(I): AlgEtQIdl -> BoolElt`

## `IsMaximalIdeal(I): AlgEtQIdl -> BoolElt`

Given an integral $S$-ideal $I$, returns if the ideal is a prime fractional ideal of $S$, that is a maximal $S$ ideal.

## `Valuation(x, P): AlgEtQElt, AlgEtQIdl -> RngIntElt`

## `Valuation(I, P): AlgEtQIdl, AlgEtQIdl -> RngIntElt`

Valuation at the prime $P$ of an element $x$ or of a fractional ideal $I$ of the maximal order.

## `InertiaDegree(P): AlgEtQIdl -> RngIntElt`

## `RamificationIndex(P): AlgEtQIdl -> RngIntElt`

For a prime $P$ of the maximal order ${\cal O}$, returns its inertia degree and ramification index.

## `IsBassAtPrime(S, P): AlgEtQOrd, AlgEtQIdl -> BoolElt`

Check if the order is Bass at the prime ideal $P$, that is, if every overorder of $S$ is Gorenstein at the primes above $P$.

## `IsBass(S): AlgEtQOrd -> BoolElt`

Check if the order $S$ is Bass, that is, if every overorder of $S$ is Gorenstein.

## `IsGorensteinAtPrime(S, P): AlgEtQOrd, AlgEtQIdl -> BoolElt`

Check if the order $S$ is Gorenstein at the prime ideal $P$, that is, if every fractional ideal $I$ with $(I:I)=S$ is locally principal at $P$.

## `IsGorenstein(O): AlgEtQOrd -> BoolElt`

Checks if the order $O$ is Gorenstein, that is if the `TraceDualIdeal` of $O$ is invertible, or equivalently, if all fractional ideals $I$ with $(I:I)=O$ are invertible.

## `Uniformizers(PPs): SeqEnum[AlgEtQIdl] -> SeqEnum`

Given a sequence of primes $P$ of the maximal order, returns a sequence of elements $t_P$ such that $t_P$ is a uniformizer at $P$ and a unit at every other prime in the sequence.
