# Valuation Rings

- [Introduction](introduction.md)

- [Creation Functions](creation.md)

  - [Creation of Structures](creation.md#creation-of-structures)

    - [`ValuationRing(Q, p): FldRat, RngIntElt → RngVal`](creation.md#function-valuationring-fldrat-rngintelt)

    - [`ValuationRing(F, f): FldFunRat, RngUPolElt → RngVal`](creation.md#function-valuationring-fldfunrat-rngupolelt)

    - [`ValuationRing(F): FldFunRat → RngVal`](creation.md#function-valuationring-fldfunrat)

    - [`ValuationRing(K, p): FldNum, RngOrdIdl → RngVal`](creation.md#function-valuationring-fldnum-rngordidl)

    - [`ValuationRing(K, p): FldFun, RngFunOrdIdl → RngVal`](creation.md#function-valuationring-fldfun-rngfunordidl)

  - [Creation of Elements](creation.md#creation-of-elements)

    - [`V ! r: RngVal, FldFunElt → RngValElt`](creation.md#operation-op-rngval-fldfunelt)

    - [`V ! r: RngVal, FldRatElt → RngValElt`](creation.md#operation-op-rngval-fldratelt)

- [Structure Operations](structure.md)

  - [Related Structures](structure.md#related-structures)

    - [`Category(V): RngVal → Cat`](structure.md#function-category-rngval)

    - [`Parent(V): RngVal → Pow`](structure.md#function-parent-rngval)

    - [`PrimeRing(V): RngVal → RngVal`](structure.md#function-primering-rngval)

    - [`Center(V): RngVal → RngVal`](structure.md#function-center-rngval)

    - [`FieldOfFractions(V): RngVal → Rng`](structure.md#function-fieldoffractions-rngval)

  - [Numerical Invariants](structure.md#numerical-invariants)

    - [`Characteristic(V): RngVal → RngIntElt`](structure.md#function-characteristic-rngval)

- [Element Operations](element.md)

  - [Arithmetic Operations](element.md#arithmetic-operations)

    - [`+ v: RngValElt → RngValElt`](element.md#operation-operation-rngvalelt-rngvalelt)

    - [`- v: RngValElt → RngValElt`](element.md#operation-operation-rngvalelt-rngvalelt-2)

    - [`v + w: RngValElt, RngValElt → RngValElt`](element.md#operation-op-plus-rngvalelt-rngvalelt)

    - [`v - w: RngValElt, RngValElt → RngValElt`](element.md#operation-op-minus-rngvalelt-rngvalelt)

    - [`v * w: RngValElt, RngValElt → RngValElt`](element.md#operation-op-times-rngvalelt-rngvalelt)

    - [`v ^ k: RngValElt, RngIntElt → RngValElt`](element.md#operation-op-pow-rngvalelt-rngintelt)

    - [`v / w: RngValElt, RngValElt → RngValElt`](element.md#operation-op-div-rngvalelt-rngvalelt)

    - [`v +:= w: RngValElt, RngValElt → RngValElt`](element.md#operation-operation-rngvalelt-rngvalelt-rngvalelt)

    - [`v -:= w: RngValElt, RngValElt → RngValElt`](element.md#operation-operation-rngvalelt-rngvalelt-rngvalelt-2)

    - [`v *:= w: RngValElt, RngValElt → RngValElt`](element.md#operation-operation-rngvalelt-rngvalelt-rngvalelt-3)

    - [`v div w: RngValElt, RngValElt → RngValElt`](element.md#operation-operation-div-rngvalelt-rngvalelt-rngvalelt)

  - [Equality and Membership](element.md#equality-and-membership)

    - [`v eq w: RngValElt, RngValElt → BoolElt`](element.md#operation-op-eq-rngvalelt-rngvalelt)

    - [`v ne w: RngValElt, RngValElt → BoolElt`](element.md#operation-op-ne-rngvalelt-rngvalelt)

    - [`v in V: RngValElt, Rng → BoolElt`](element.md#operation-op-in-rngvalelt-rng)

    - [`v notin V: RngValElt, Rng → BoolElt`](element.md#operation-op-notin-rngvalelt-rng)

  - [Parent and Category](element.md#parent-and-category)

    - [`Parent(v): RngValElt → RngVal`](element.md#function-parent-rngvalelt)

    - [`Category(v): RngValElt → Cat`](element.md#function-category-rngvalelt)

  - [Predicates on Ring Elements](element.md#predicates-on-ring-elements)

    - [`IsZero(n): RngValElt → BoolElt`](element.md#function-iszero-rngvalelt)

    - [`IsOne(n): RngValElt → BoolElt`](element.md#function-isone-rngvalelt)

    - [`IsMinusOne(n): RngValElt → BoolElt`](element.md#function-isminusone-rngvalelt)

    - [`IsNilpotent(n): RngValElt → BoolElt`](element.md#function-isnilpotent-rngvalelt)

    - [`IsIdempotent(n): RngValElt → BoolElt`](element.md#function-isidempotent-rngvalelt)

    - [`IsUnit(n): RngValElt → BoolElt`](element.md#function-isunit-rngvalelt)

    - [`IsZeroDivisor(n): RngValElt → BoolElt`](element.md#function-iszerodivisor-rngvalelt)

    - [`IsRegular(n): RngVal → BoolElt`](element.md#function-isregular-rngval)

  - [Other Element Functions](element.md#other-element-functions)

    - [`EuclideanNorm(v): RngValElt → RngIntElt`](element.md#function-euclideannorm-rngvalelt)

    - [`Valuation(v): RngValElt → RngIntElt`](element.md#function-valuation-rngvalelt)

    - [`Quotrem(v, w): RngValElt, RngValElt → RngValElt, RngValElt`](element.md#function-quotrem-rngvalelt-rngvalelt)

    - [`GreatestCommonDivisor(v, w): RngValElt, RngValElt → RngValElt`](element.md#function-greatestcommondivisor-rngvalelt-rngvalelt)

    - [`Gcd(v, w): RngValElt, RngValElt → RngValElt`](element.md#function-gcd-rngvalelt-rngvalelt)

    - [`GCD(v, w): RngValElt, RngValElt → RngValElt`](element.md#function-gcd-rngvalelt-rngvalelt-2)

    - [`ExtendedGreatestCommonDivisor(v, w): RngValElt, RngValElt → RngValElt, RngValElt, RngValElt`](element.md#function-extendedgreatestcommondivisor-rngvalelt-rngvalelt)

    - [`Xgcd(v, w): RngValElt, RngValElt → RngValElt, RngValElt, RngValElt`](element.md#function-xgcd-rngvalelt-rngvalelt)

    - [`XGCD(v, w): RngValElt, RngValElt → RngValElt, RngValElt, RngValElt`](element.md#function-xgcd-rngvalelt-rngvalelt-2)
