# Rational Field

- [Introduction](introduction.md)

  - [Representation](introduction.md#representation)

  - [Coercion](introduction.md#coercion)

    - [`Example: Coercion`](introduction.md#example-ex-77bb73)

  - [Homomorphisms](introduction.md#homomorphisms)

    - [`hom< Q -> R | >: FldHom, Rng → Map`](introduction.md#constructor-constructor-hom-fldhom-rng-map)

    - [`Example: homomorphism`](introduction.md#example-ex-d98da9)

- [Creation Functions](creation.md)

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

    - [`Rationals() → FldRat`](creation.md#function-rationals)

    - [`RationalField() → FldRat`](creation.md#function-rationalfield)

    - [`MaximalOrder(Q): FldRat → RngInt`](creation.md#function-maximalorder-fldrat)

    - [`IntegerRing(Q): FldRat → RngInt`](creation.md#function-integerring-fldrat)

    - [`IntegerRing() → RngInt`](creation.md#function-integerring)

    - [`Integers() → RngInt`](creation.md#function-integers)

    - [`RingOfIntegers(Q): FldRat → RngInt`](creation.md#function-ringofintegers-fldrat)

    - [`FieldOfFractions(Q): FldRat → FldRat`](creation.md#function-fieldoffractions-fldrat)

    - [`FieldOfFractions(Z): RngInt → FldRat`](creation.md#function-fieldoffractions-rngint)

    - [`Completion(Q, P): FldRat, RngInt → FldLoc, Map`](creation.md#function-completion-fldrat-rngint)

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

    - [`a / b: RngIntElt, RngIntElt → FldRatElt`](creation.md#operation-op-div-rngintelt-rngintelt)

    - [`Q ! [a]: FldRat, RngElt → FldRatElt`](creation.md#operation-op-fldrat-rngelt)

    - [`Q ! [a, b]: FldRat, RngIntElt, RngIntElt → FldRatElt`](creation.md#operation-op-fldrat-rngintelt-rngintelt)

    - [`elt< Q | a, b >: FldRat, RngIntElt, RngIntElt → FldRatElt`](creation.md#constructor-constructor-elt-fldrat-rngintelt-rngintelt-fldratelt)

    - [`Q ! a: FldRat, RngIntElt → FldRatElt`](creation.md#operation-op-fldrat-rngintelt)

    - [`One(Q): FldRat → FldRatElt`](creation.md#function-one-fldrat)

    - [`Identity(Q): FldRat → FldRatElt`](creation.md#function-identity-fldrat)

    - [`Zero(Q): FldRat → FldRatElt`](creation.md#function-zero-fldrat)

    - [`Representative(Q): FldRat → FldRatElt`](creation.md#function-representative-fldrat)

    - [`RootOfUnity(n, Q): RngIntElt, FldRat → FldRatElt`](creation.md#function-rootofunity-rngintelt-fldrat)

    - [`Random(Q, m): FldRat, RngIntElt → FldRatElt`](creation.md#function-random-fldrat-rngintelt)

- [Structure Operations](operation.md)

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

    - [`Category(Q): FldRat → Cat`](operation.md#function-category-fldrat)

    - [`Parent(Q): FldRat → PowerStructure`](operation.md#function-parent-fldrat)

    - [`PrimeField(Q): FldRat → FldRat`](operation.md#function-primefield-fldrat)

    - [`IntegralBasis(Q): FldRat → [ FldRatElt ]`](operation.md#function-integralbasis-fldrat)

    - [`MinimalField(q): FldRatElt → FldRat`](operation.md#function-minimalfield-fldratelt)

    - [`MinimalField(S): SetEnum → FldRat`](operation.md#function-minimalfield-setenum)

    - [`BaseField(Q): FldRat → FldRat`](operation.md#function-basefield-fldrat)

    - [`Basis(Q): FldRat → [FldRatElt]`](operation.md#function-basis-fldrat)

    - [`AbsoluteBasis(Q): FldRat → [FldRatElt]`](operation.md#function-absolutebasis-fldrat)

    - [`UnitGroup(Q): FldRat → GrpAb, Map`](operation.md#function-unitgroup-fldrat)

    - [`ClassGroup(Q): FldRat → GrpAb, Map`](operation.md#function-classgroup-fldrat)

    - [`AutomorphismGroup(Q): FldRat → GrpPerm, PowMapAut, Map`](operation.md#function-automorphismgroup-fldrat)

    - [`AutomorphismGroup(Q, Q): FldRat, FldRat → GrpPerm, PowMapAut, Map`](operation.md#function-automorphismgroup-fldrat-fldrat)

    - [`Algebra(Q, Q): FldRat, Fld → AlgAss, Map`](operation.md#function-algebra-fldrat-fld)

    - [`VectorSpace(Q, Q): FldRat, Fld → ModTupFld, Map`](operation.md#function-vectorspace-fldrat-fld)

    - [`Decomposition(Q, p): FldRat, RngIntElt → []`](operation.md#function-decomposition-fldrat-rngintelt)

    - [`Decomposition(Q, p): FldRat, Infty → []`](operation.md#function-decomposition-fldrat-infty)

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

    - [`Characteristic(Q): FldRat → RngIntElt`](operation.md#function-characteristic-fldrat)

    - [`Conductor(Q): FldRat → RngIntElt`](operation.md#function-conductor-fldrat)

    - [`Degree(Q): FldRat → RngIntElt`](operation.md#function-degree-fldrat)

    - [`AbsoluteDegree(Q): FldRat → RngIntElt`](operation.md#function-absolutedegree-fldrat)

    - [`Discriminant(Q): FldRat → RngIntElt`](operation.md#function-discriminant-fldrat)

    - [`AbsoluteDiscriminant(Q): FldRat → RngIntElt`](operation.md#function-absolutediscriminant-fldrat)

    - [`DefiningPolynomial(Q): FldRat → RngUPolElt`](operation.md#function-definingpolynomial-fldrat)

    - [`Signature(Q): FldRat → RngIntElt, RngIntElt`](operation.md#function-signature-fldrat)

  - [Ring Predicates and Booleans](operation.md#ring-predicates-and-booleans)

    - [`IsCommutative(Q): FldRat → BoolElt`](operation.md#function-iscommutative-fldrat)

    - [`IsUnitary(Q): FldRat → BoolElt`](operation.md#function-isunitary-fldrat)

    - [`IsFinite(Q): FldRat → BoolElt`](operation.md#function-isfinite-fldrat)

    - [`IsOrdered(Q): FldRat → BoolElt`](operation.md#function-isordered-fldrat)

    - [`IsField(Q): FldRat → BoolElt`](operation.md#function-isfield-fldrat)

    - [`IsEuclideanDomain(Q): FldRat → BoolElt`](operation.md#function-iseuclideandomain-fldrat)

    - [`IsPID(Q): FldRat → BoolElt`](operation.md#function-ispid-fldrat)

    - [`IsUFD(Q): FldRat → BoolElt`](operation.md#function-isufd-fldrat)

    - [`IsDivisionRing(Q): FldRat → BoolElt`](operation.md#function-isdivisionring-fldrat)

    - [`IsEuclideanRing(Q): FldRat → BoolElt`](operation.md#function-iseuclideanring-fldrat)

    - [`IsPrincipalIdealRing(Q): FldRat → BoolElt`](operation.md#function-isprincipalidealring-fldrat)

    - [`IsDomain(Q): FldRat → BoolElt`](operation.md#function-isdomain-fldrat)

    - [`Q eq R: FldRat, FldRat → BoolElt`](operation.md#operation-op-eq-fldrat-fldrat)

    - [`Q eq R: FldRat, RngInt → BoolElt`](operation.md#operation-op-eq-fldrat-rngint)

    - [`Q ne R: FldRat, FldRat → BoolElt`](operation.md#operation-op-ne-fldrat-fldrat)

    - [`Q ne R: FldRat, RngInt → BoolElt`](operation.md#operation-op-ne-fldrat-rngint)

- [Element Operations](element.md)

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

    - [`Parent(r): FldRatElt → FldRat`](element.md#function-parent-fldratelt)

    - [`Category(r): FldRatElt → Cat`](element.md#function-category-fldratelt)

  - [Arithmetic Operators](element.md#arithmetic-operators)

    - [`+ a: FldRatElt → FldRatElt`](element.md#operation-operation-fldratelt-fldratelt)

    - [`- a: FldRatElt → FldRatElt`](element.md#operation-operation-fldratelt-fldratelt-2)

    - [`a + b: FldRatElt, FldRatElt → FldRatElt`](element.md#operation-op-plus-fldratelt-fldratelt)

    - [`a - b: FldRatElt, FldRatElt → FldRatElt`](element.md#operation-op-minus-fldratelt-fldratelt)

    - [`a * b: FldRatElt, FldRatElt → FldRatElt`](element.md#operation-op-times-fldratelt-fldratelt)

    - [`a ^ k: FldRatElt, RngIntElt → FldRatElt`](element.md#operation-op-pow-fldratelt-rngintelt)

    - [`a / b: FldRatElt, FldRatElt → FldRatElt`](element.md#operation-op-div-fldratelt-fldratelt)

    - [`a +:= b: FldRatElt, FldRatElt → FldRatElt`](element.md#operation-operation-fldratelt-fldratelt-fldratelt)

    - [`a -:= b: FldRatElt, FldRatElt → FldRatElt`](element.md#operation-operation-fldratelt-fldratelt-fldratelt-2)

    - [`a *:= b: FldRatElt, FldRatElt → FldRatElt`](element.md#operation-operation-fldratelt-fldratelt-fldratelt-3)

    - [`a /:= b: FldRatElt, FldRatElt → FldRatElt`](element.md#operation-operation-fldratelt-fldratelt-fldratelt-4)

    - [`a ^:= k: FldRatElt, RngIntElt → FldRatElt`](element.md#operation-operation-fldratelt-rngintelt-fldratelt)

  - [Numerator and Denominator](element.md#numerator-and-denominator)

    - [`Numerator(q): FldRatElt → RngIntElt`](element.md#function-numerator-fldratelt)

    - [`Denominator(q): FldRatElt → RngIntElt`](element.md#function-denominator-fldratelt)

    - [`Example: numerator`](element.md#example-ex-da083f)

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

    - [`a eq b: FldRatElt, FldRatElt → BoolElt`](element.md#operation-op-eq-fldratelt-fldratelt)

    - [`a ne b: FldRatElt, FldRatElt → BoolElt`](element.md#operation-op-ne-fldratelt-fldratelt)

    - [`a in R: FldRatElt, Rng → BoolElt`](element.md#operation-op-in-fldratelt-rng)

    - [`a notin R: FldRatElt, Rng → BoolElt`](element.md#operation-op-notin-fldratelt-rng)

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

    - [`IsIntegral(q): FldRatElt → BoolElt`](element.md#function-isintegral-fldratelt)

    - [`IsZero(a): FldRatElt → BoolElt`](element.md#function-iszero-fldratelt)

    - [`IsOne(a): FldRatElt → BoolElt`](element.md#function-isone-fldratelt)

    - [`IsMinusOne(a): FldRatElt → BoolElt`](element.md#function-isminusone-fldratelt)

    - [`IsNilpotent(a): FldRatElt → BoolElt`](element.md#function-isnilpotent-fldratelt)

    - [`IsIdempotent(a): FldRatElt → BoolElt`](element.md#function-isidempotent-fldratelt)

    - [`IsUnit(a): FldRatElt → BoolElt`](element.md#function-isunit-fldratelt)

    - [`IsZeroDivisor(a): FldRatElt → BoolElt`](element.md#function-iszerodivisor-fldratelt)

    - [`IsRegular(a): FldRatElt → BoolElt`](element.md#function-isregular-fldratelt)

    - [`IsIrreducible(a): FldRatElt → BoolElt`](element.md#function-isirreducible-fldratelt)

    - [`IsPrime(a): FldRatElt → BoolElt`](element.md#function-isprime-fldratelt)

  - [Comparison](element.md#comparison)

    - [`a gt b: FldRatElt, FldRatElt → BoolElt`](element.md#operation-op-gt-fldratelt-fldratelt)

    - [`a ge b: FldRatElt, FldRatElt → BoolElt`](element.md#operation-op-ge-fldratelt-fldratelt)

    - [`a lt b: FldRatElt, FldRatElt → BoolElt`](element.md#operation-op-lt-fldratelt-fldratelt)

    - [`a le b: FldRatElt, FldRatElt → BoolElt`](element.md#operation-op-le-fldratelt-fldratelt)

    - [`Maximum(a, b): FldRatElt, FldRatElt → FldRatElt`](element.md#function-maximum-fldratelt-fldratelt)

    - [`Maximum(Q): [FldRatElt] → FldRatElt`](element.md#function-maximum-fldratelt)

    - [`Minimum(a, b): FldRatElt, FldRatElt → FldRatElt`](element.md#function-minimum-fldratelt-fldratelt)

    - [`Minimum(Q): [FldRatElt] → FldRatElt`](element.md#function-minimum-fldratelt)

  - [Conjugates, Norm and Trace](element.md#conjugates-norm-and-trace)

    - [`ComplexConjugate(q): FldRatElt → FldRatElt`](element.md#function-complexconjugate-fldratelt)

    - [`Conjugate(q): FldRatElt → FldRatElt`](element.md#function-conjugate-fldratelt)

    - [`Norm(q): FldRatElt → FldRatElt`](element.md#function-norm-fldratelt)

    - [`Trace(q): FldRatElt → FldRatElt`](element.md#function-trace-fldratelt)

    - [`MinimalPolynomial(q): FldRatElt → RngUPolElt`](element.md#function-minimalpolynomial-fldratelt)

  - [Absolute Value and Sign](element.md#absolute-value-and-sign)

    - [`AbsoluteValue(q): FldRatElt → FldRatElt`](element.md#function-absolutevalue-fldratelt)

    - [`Abs(q): FldRatElt → FldRatElt`](element.md#function-abs-fldratelt)

    - [`Sign(q): FldRatElt → RngIntElt`](element.md#function-sign-fldratelt)

    - [`Height(q): FldRatElt → RngIntElt`](element.md#function-height-fldratelt)

  - [Rounding and Truncating](element.md#rounding-and-truncating)

    - [`Ceiling(q): FldRatElt → RngIntElt`](element.md#function-ceiling-fldratelt)

    - [`Floor(q): FldRatElt → RngIntElt`](element.md#function-floor-fldratelt)

    - [`Round(q): FldRatElt → RngIntElt`](element.md#function-round-fldratelt)

    - [`Truncate(q): FldRatElt → RngIntElt`](element.md#function-truncate-fldratelt)

    - [`Qround(q, M): FldRatElt, RngIntElt → FldRatElt`](element.md#function-qround-fldratelt-rngintelt)

  - [Continued Fractions](element.md#continued-fractions)

    - [`ContinuedFraction(r): FldRatElt → [ RngIntElt ]`](element.md#function-continuedfraction-fldratelt)

    - [`ContinuedFractionValue(C): [ RngIntElt ] → FldRatElt`](element.md#function-continuedfractionvalue-rngintelt)

    - [`HirzebruchJungContinuedFraction(r): FldRatElt → [ RngIntElt ]`](element.md#function-hirzebruchjungcontinuedfraction-fldratelt)

    - [`HJContinuedFraction(r): FldRatElt → [ RngIntElt ]`](element.md#function-hjcontinuedfraction-fldratelt)

    - [`HirzebruchJungContinuedFractionValue(C): [ RngIntElt ] → FldRatElt`](element.md#function-hirzebruchjungcontinuedfractionvalue-rngintelt)

    - [`HJContinuedFractionValue(C): [ RngIntElt ] → FldRatElt`](element.md#function-hjcontinuedfractionvalue-rngintelt)

  - [Rational Reconstruction](element.md#rational-reconstruction)

    - [`RationalReconstruction(s): RngIntResElt → BoolElt, FldRatElt`](element.md#function-rationalreconstruction-rngintreselt)

    - [`RationalReconstruction(s): FldFinElt → BoolElt, FldRatElt`](element.md#function-rationalreconstruction-fldfinelt)

  - [Valuation](element.md#valuation)

    - [`Valuation(x, p): FldRatElt, RngIntElt → RngIntElt, FldRatElt`](element.md#function-valuation-fldratelt-rngintelt)

    - [`Valuation(x, I): FldRatElt, RngIntElt → RngIntElt, FldRatElt`](element.md#function-valuation-fldratelt-rngintelt-2)

  - [Sequence Conversions](element.md#sequence-conversions)

    - [`ElementToSequence(a): FldRatElt → [FldRatElt]`](element.md#function-elementtosequence-fldratelt)

    - [`Eltseq(a): FldRatElt → [FldRatElt]`](element.md#function-fldrat-eltseq)
