# Structure Predicates

## `IsField(R): FldFun -> BoolElt`

## `IsEuclideanDomain(R): FldFun -> BoolElt`

## `IsField(O): RngFunOrd -> BoolElt`

## `IsPID(R): FldFun -> BoolElt`

## `IsUFD(R): FldFun -> BoolElt`

## `IsDivisionRing(R): FldFun -> BoolElt`

## `IsEuclideanRing(R): FldFun -> BoolElt`

## `IsDivisionRing(O): RngFunOrd -> BoolElt`

## `IsPrincipalIdealRing(R): FldFun -> BoolElt`

## `IsDomain(R): FldFun -> BoolElt`

## `IsDomain(O): RngFunOrd -> BoolElt`

## `F eq G: FldFunG, FldFunG -> BoolElt`

## `F ne G: FldFunG, FldFunG -> BoolElt`

## `O1 eq O2: RngFunOrd, Rng -> BoolElt`

## `O1 ne O2: RngFunOrd, Rng -> BoolElt`

## `O1 subset O2: RngFunOrd, RngFunOrd -> BoolElt`

Return whether $O1$ is a subset of $O2$.

## `IsGlobal(F): FldFunG -> BoolElt`

Returns `true` if and only if the algebraic function field $F/k$ is global, i.e. the constant field is a finite field; `false` otherwise.

## `IsRationalFunctionField(F): FldFunG -> BoolElt`

Return `true` if the function field $F$ is isomorphic to a rational function field, (i.e. $F$ is only trivially algebraic).

## `IsFiniteOrder(O): RngFunOrd -> BoolElt`

Given an order $O$ of a function field, return `true` if and only if the bottom coefficient ring of $O$ is a polynomial ring.

## `IsEquationOrder(O): RngFunOrd -> BoolElt`

Given an order $O$ of a function field, return `true` if and only if the order $O$ is an equation order (i.e. it has been defined by a polynomial and so has a power basis).

## `IsAbsoluteOrder(O): RngFunOrd -> BoolElt`

Return `false` if the order $O$ is an extension of another order, otherwise `true`.

## `IsMaximal(O): RngFunOrd -> BoolElt`

Given an order $O$ of a function field, return `true` if and only if the order $O$ is maximal in its field of fractions.

## `IsTamelyRamified(O): RngFunOrd -> BoolElt`

Return whether the order $O$ is tamely ramified, i.e. no prime ideal of $O$ has residue field with characteristic dividing its ramification index.

## `IsTotallyRamified(O): RngFunOrd -> BoolElt`

Return whether there is an ideal of the order $O$ which is totally ramified, i.e. its ramification index is equal to the degree of $O$ over its coefficient ring.

## `IsUnramified(O): RngFunOrd -> BoolElt`

Return whether a finite order $O$ is unramified at the finite places and whether an infinite order $O$ is unramified at the infinite places.

## `IsWildlyRamified(O): RngFunOrd -> BoolElt`

Return whether there is a prime ideal of the order $O$ which is wildly ramified, i.e. its ramification index is divisible by the characteristic of its residue class field.

## `IsInKummerRepresentation(K): FldFun -> BoolElt, FldFunElt`

Tests if the global function field $K$ is, in its current representation, a Kummer extension. More specific, this function tests if the defining polynomial is of the form $x^r-a$ for some $r$ coprime to the characteristic and if $r$ divides the order of the multiplicative group of the constant field, ie. if the coefficient ring of $K$ contains a primitive $r$-th root of unity. In case $K$ is in Kummer representation, the element $a$ is returned as a second return value.

## `IsInArtinSchreierRepresentation(K): FldFun -> BoolElt, FldFunElt`

Tests if a global function field $K$ is, in its current representation, a Artin-Schreier extension, ie. if the defining polynomial of $K$ is of the form $x^p-x-a$ where $p$ is the characteristic of $K$. In this case, the element $a$ is returned as a second return value.
