# Univariate Polynomial Rings

- [Introduction](introduction.md)

  - [Representation](introduction.md#representation)

- [Creation Functions](creation.md)

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

    - [`PolynomialAlgebra(R): Rng → RngUPol`](creation.md#function-polynomialalgebra-rng)

    - [`PolynomialRing(R): Rng → RngUPol`](creation.md#function-polynomialring-rng)

    - [`Example: Creation`](creation.md#example-ex-2d4846)

  - [Print Options](creation.md#print-options)

    - [`AssignNames(~P, s): RngUPol, [ MonStgElt ])`](creation.md#function-assignnames-rngupol-monstgelt-ref)

    - [`Name(P, i): RngUPol, RngIntElt → RngUPolElt`](creation.md#function-name-rngupol-rngintelt)

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

    - [`P . 1: RngUPol, RngInt → RngPolElt`](creation.md#operation-operation-rngupol-rngint-rngpolelt)

    - [`elt< P | a₀, ..., a_d >: RngUPol, RngElt, ..., RngElt → RngUPolElt`](creation.md#constructor-constructor-elt-rngupol-rngelt-rngelt-rngupolelt)

    - [`P ! s: RngUPol, RngElt → RngPolElt`](creation.md#operation-op-rngupol-rngelt)

    - [`P ! s: RngUPol, [ RngElt ] → RngPolElt`](creation.md#operation-op-rngupol-rngelt-2)

    - [`elt< P | s >: RngUPol, [ RngElt ] → RngUPolElt`](creation.md#constructor-constructor-elt-rngupol-rngelt-rngupolelt)

    - [`Polynomial(Q): [ RngElt ] → RngUPolElt`](creation.md#function-polynomial-rngelt)

    - [`Polynomial(R, Q): Rng, [ RngElt] → RngUPolElt`](creation.md#function-polynomial-rng-rngelt)

    - [`Polynomial(R, f): Rng, RngUPolElt → RngUPolElt`](creation.md#function-polynomial-rng-rngupolelt)

    - [`One(P): RngUPol → RngUPolElt`](creation.md#function-one-rngupol)

    - [`Identity(P): RngUPol → RngUPolElt`](creation.md#function-identity-rngupol)

    - [`Zero(P): RngUPol → RngUPolElt`](creation.md#function-zero-rngupol)

    - [`Representative(P): RngUPol → RngUPolElt`](creation.md#function-representative-rngupol)

    - [`Example: Polynomials`](creation.md#example-ex-365cfe)

- [Structure Operations](operation.md)

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

    - [`BaseRing(P): RngUPol → Rng`](operation.md#function-basering-rngupol)

    - [`CoefficientRing(P): RngUPol → Rng`](operation.md#function-coefficientring-rngupol)

    - [`CoefficientRing(f): RngUPolElt → Rng`](operation.md#function-coefficientring-rngupolelt)

    - [`Category(P): RngUPol → Cat`](operation.md#function-category-rngupol)

    - [`Parent(P): RngUPol → Pow`](operation.md#function-parent-rngupol)

    - [`PrimeRing(P): RngUPol → Rng`](operation.md#function-primering-rngupol)

  - [Changing Rings](operation.md#changing-rings)

    - [`ChangeRing(P, S): RngUPol, Rng → RngUPol, Map`](operation.md#function-changering-rngupol-rng)

    - [`ChangeRing(P, S, f): RngUPol, Rng, Map → RngUPol, Map`](operation.md#function-changering-rngupol-rng-map)

    - [`Example: Change Ring`](operation.md#example-ex-332ea1)

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

    - [`Rank(P): RngUPol → RngIntElt`](operation.md#function-rank-rngupol)

    - [`# P: RngUPolRes → RngIntElt`](operation.md#operation-operation-rngupolres-rngintelt)

    - [`Characteristic(P): RngUPol → RngIntElt`](operation.md#function-characteristic-rngupol)

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

    - [`IsCommutative(P): RngUPol → BoolElt`](operation.md#function-iscommutative-rngupol)

    - [`IsUnitary(P): RngUPol → BoolElt`](operation.md#function-isunitary-rngupol)

    - [`IsFinite(P): RngUPol → BoolElt`](operation.md#function-isfinite-rngupol)

    - [`IsOrdered(P): RngUPol → BoolElt`](operation.md#function-isordered-rngupol)

    - [`IsField(P): RngUPol → BoolElt`](operation.md#function-isfield-rngupol)

    - [`IsEuclideanDomain(P): RngUPol → BoolElt`](operation.md#function-iseuclideandomain-rngupol)

    - [`IsPID(P): RngUPol → BoolElt`](operation.md#function-ispid-rngupol)

    - [`IsUFD(P): RngUPol → BoolElt`](operation.md#function-isufd-rngupol)

    - [`IsDivisionRing(P): RngUPol → BoolElt`](operation.md#function-isdivisionring-rngupol)

    - [`IsEuclideanRing(P): RngUPol → BoolElt`](operation.md#function-iseuclideanring-rngupol)

    - [`IsDomain(P): RngUPol → BoolElt`](operation.md#function-isdomain-rngupol)

    - [`IsPrincipalIdealRing(P): RngUPol → BoolElt`](operation.md#function-isprincipalidealring-rngupol)

    - [`P eq Q: RngUPol, RngUPol → BoolElt`](operation.md#operation-op-eq-rngupol-rngupol)

    - [`P ne Q: RngUPol, RngUPol → BoolElt`](operation.md#operation-op-ne-rngupol-rngupol)

    - [`P lt Q: RngUPol, RngUPol → BoolElt`](operation.md#operation-op-lt-rngupol-rngupol)

    - [`P gt Q: RngUPol, RngUPol → BoolElt`](operation.md#operation-op-gt-rngupol-rngupol)

    - [`P le Q: RngUPol, RngUPol → BoolElt`](operation.md#operation-op-le-rngupol-rngupol)

    - [`P ge Q: RngUPol, RngUPol → BoolElt`](operation.md#operation-op-ge-rngupol-rngupol)

  - [Homomorphisms](operation.md#homomorphisms)

    - [`hom< P -> S | f, y >: RngUPol, Rng, Map, RngElt → Map`](operation.md#constructor-constructor-hom-rngupol-rng-map-rngelt-map)

    - [`hom< P -> S | y >: RngPol, Rng, RngElt → Map`](operation.md#constructor-constructor-hom-rngpol-rng-rngelt-map)

    - [`Example: Homomorphism`](operation.md#example-ex-c83216)

- [Element Operations](operation-element.md)

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

    - [`Parent(p): RngUPolElt → RngUPol`](operation-element.md#function-parent-rngupolelt)

    - [`Category(p): RngUPolElt → Cat`](operation-element.md#function-category-rngupolelt)

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

    - [`+ a: RngUPolElt → RngUPolElt`](operation-element.md#operation-operation-rngupolelt-rngupolelt)

    - [`- a: RngUPolElt → RngUPolElt`](operation-element.md#operation-operation-rngupolelt-rngupolelt-2)

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

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

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

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

    - [`a / b: RngUPolElt, RngElt → FldFunUElt`](operation-element.md#operation-op-div-rngupolelt-rngelt)

    - [`a div b: RngUPolElt, RngUPolElt → RngUPolElt`](operation-element.md#operation-operation-div-rngupolelt-rngupolelt-rngupolelt)

    - [`a mod b: RngUPolElt, RngUPolElt → RngUPolElt`](operation-element.md#operation-operation-mod-rngupolelt-rngupolelt-rngupolelt)

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

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

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

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

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

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

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

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

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

    - [`IsZero(a): RngUPolElt → BoolElt`](operation-element.md#function-iszero-rngupolelt)

    - [`IsOne(a): RngUPolElt → BoolElt`](operation-element.md#function-isone-rngupolelt)

    - [`IsMinusOne(a): RngUPolElt → BoolElt`](operation-element.md#function-isminusone-rngupolelt)

    - [`IsNilpotent(a): RngUPolElt → BoolElt`](operation-element.md#function-isnilpotent-rngupolelt)

    - [`IsIdempotent(a): RngUPolElt → BoolElt`](operation-element.md#function-isidempotent-rngupolelt)

    - [`IsUnit(a): RngUPolElt → BoolElt`](operation-element.md#function-isunit-rngupolelt)

    - [`IsZeroDivisor(a): RngUPolElt → BoolElt`](operation-element.md#function-iszerodivisor-rngupolelt)

    - [`IsRegular(a): RngUPolElt → BoolElt`](operation-element.md#function-isregular-rngupolelt)

    - [`IsIrreducible(a): RngUPolElt → BoolElt`](operation-element.md#function-isirreducible-rngupolelt)

    - [`IsPrime(a): RngUPolElt → BoolElt`](operation-element.md#function-isprime-rngupolelt)

    - [`IsMonic(a): RngUPolElt → BoolElt`](operation-element.md#function-ismonic-rngupolelt)

  - [Coefficients and Terms](operation-element.md#coefficients-and-terms)

    - [`Coefficients(p): RngUPolElt → [ RngElt ]`](operation-element.md#function-coefficients-rngupolelt)

    - [`ElementToSequence(p): RngUPolElt → [ RngElt ]`](operation-element.md#function-elementtosequence-rngupolelt)

    - [`Eltseq(p): RngUPolElt → [ RngElt ]`](operation-element.md#function-eltseq-rngupolelt)

    - [`Coefficient(p, i): RngUPolElt, RngIntElt → RngElt`](operation-element.md#function-coefficient-rngupolelt-rngintelt)

    - [`MonomialCoefficient(p, m): RngUPolElt, RngUPolElt → RngElt`](operation-element.md#function-monomialcoefficient-rngupolelt-rngupolelt)

    - [`LeadingCoefficient(p): RngUPolElt → RngElt`](operation-element.md#function-leadingcoefficient-rngupolelt)

    - [`TrailingCoefficient(p): RngUPolElt → RngElt`](operation-element.md#function-trailingcoefficient-rngupolelt)

    - [`ConstantCoefficient(p): RngUPolElt → RngElt`](operation-element.md#function-constantcoefficient-rngupolelt)

    - [`Terms(p): RngUPolElt → [ RngUPolElt ]`](operation-element.md#function-terms-rngupolelt)

    - [`LeadingTerm(p): RngUPolElt → RngUPolElt`](operation-element.md#function-leadingterm-rngupolelt)

    - [`TrailingTerm(p): RngUPolElt → RngUPolElt`](operation-element.md#function-trailingterm-rngupolelt)

    - [`Monomials(p): RngUPolElt → SeqEnum`](operation-element.md#function-monomials-rngupolelt)

    - [`Support(p): RngUPolElt → [RngIntElt], [RngElt]`](operation-element.md#function-support-rngupolelt)

    - [`Round(p): RngUPolElt → RngUPolElt`](operation-element.md#function-round-rngupolelt)

    - [`Valuation(p): RngUPolElt → RngIntElt`](operation-element.md#function-valuation-rngupolelt)

  - [Degree](operation-element.md#degree)

    - [`Degree(p): RngUPolElt → RngIntElt`](operation-element.md#function-degree-rngupolelt)

  - [Roots](operation-element.md#roots)

    - [`Roots(p): RngUPolElt → [ < RngElt, RngIntElt> ]`](operation-element.md#function-roots-rngupolelt)

    - [`Roots(p, S): RngUPolElt → [ < RngElt, RngIntElt> ]`](operation-element.md#function-roots-rngupolelt-2)

    - [`HasRoot(p): RngUPolElt → BoolElt, RngElt`](operation-element.md#function-hasroot-rngupolelt)

    - [`HasRoot(p, S): RngUPolElt, Rng → BoolElt, RngElt`](operation-element.md#function-hasroot-rngupolelt-rng)

    - [`SmallRoots(p, N, X): RngUPolElt, RngElt, RngElt → [RngElt]`](operation-element.md#function-smallroots-rngupolelt-rngelt-rngelt)

    - [`Example: Small Roots Usage`](operation-element.md#example-ex-2984f7)

    - [`SetVerbose("SmallRoots", v): MonStgElt, RngIntElt`](operation-element.md#function-setverbose-monstgelt-rngintelt)

  - [Derivative, Integral](operation-element.md#derivative-integral)

    - [`Derivative(p): RngUPolElt → RngUPolElt`](operation-element.md#function-derivative-rngupolelt)

    - [`Derivative(p, n): RngUPolElt, RngIntElt → RngUPolElt`](operation-element.md#function-derivative-rngupolelt-rngintelt)

    - [`Integral(p): RngUPolElt → RngUPolElt`](operation-element.md#function-integral-rngupolelt)

  - [Evaluation, Interpolation](operation-element.md#evaluation-interpolation)

    - [`Evaluate(p, r): RngUPolElt, RngElt → RngElt`](operation-element.md#function-evaluate-rngupolelt-rngelt)

    - [`Interpolation(I, V): [ RngElt ], [ RngElt ] → RngUPolElt`](operation-element.md#function-interpolation-rngelt-rngelt)

  - [Decomposition](operation-element.md#decomposition)

    - [`Decomposition(f): RngUPolElt → [[RngUPolElt]]`](operation-element.md#function-decomposition-rngupolelt)

    - [`Example: Decomp Ex`](operation-element.md#example-ex-b0e795)

  - [Quotient and Remainder](operation-element.md#quotient-and-remainder)

    - [`Quotrem(f, g): RngUPolElt, RngUPolElt → RngUPolElt, RngUPolElt`](operation-element.md#function-quotrem-rngupolelt-rngupolelt)

    - [`f div g: RngUPolElt, RngUPolElt → RngUPolElt`](operation-element.md#operation-operation-div-rngupolelt-rngupolelt-rngupolelt-2)

    - [`IsDivisibleBy(f, g): RngUPolElt, RngUPolElt → BoolElt, RngUPolElt`](operation-element.md#function-isdivisibleby-rngupolelt-rngupolelt)

    - [`ExactQuotient(f, g): RngUPolElt, RngUPolElt → RngUPolElt`](operation-element.md#function-exactquotient-rngupolelt-rngupolelt)

    - [`f mod g: RngUPolElt, RngUPolElt → RngUPolElt`](operation-element.md#operation-operation-mod-rngupolelt-rngupolelt-rngupolelt-2)

    - [`Valuation(f, g): RngUPolElt, RngUPolElt → RngIntElt`](operation-element.md#function-valuation-rngupolelt-rngupolelt)

    - [`Reductum(f): RngUPolElt → RngUPolElt`](operation-element.md#function-reductum-rngupolelt)

    - [`PseudoRemainder(f, g): RngUPolElt, RngUPolElt → RngUPolElt`](operation-element.md#function-pseudoremainder-rngupolelt-rngupolelt)

    - [`EuclideanNorm(p): RngUPol → RngIntElt`](operation-element.md#function-euclideannorm-rngupol)

  - [Modular Arithmetic](operation-element.md#modular-arithmetic)

    - [`Modexp(f, n, g): RngUPolElt, RngIntElt, RngUPolElt → RngUPolElt`](operation-element.md#function-modexp-rngupolelt-rngintelt-rngupolelt)

    - [`ChineseRemainderTheorem(X, M): [RngUPolElt], [RngUPolElt] → RngUPolElt`](operation-element.md#function-chineseremaindertheorem-rngupolelt-rngupolelt)

    - [`CRT(X, M): [RngUPolElt], [RngUPolElt] → RngUPolElt`](operation-element.md#function-crt-rngupolelt-rngupolelt)

  - [Other Operations](operation-element.md#other-operations)

    - [`ReciprocalPolynomial(f): RngUPolElt → RngUPolElt`](operation-element.md#function-reciprocalpolynomial-rngupolelt)

    - [`PowerPolynomial(f,n): RngUPolElt, RngIntElt → RngUPolElt`](operation-element.md#function-powerpolynomial-rngupolelt-rngintelt)

    - [`f ^ M: RngUPolElt, Mtrx → RngUPolElt`](operation-element.md#operation-op-pow-rngupolelt-mtrx)

- [Common Divisors and Common Multiples](common.md)

  - [Common Divisors and Common Multiples](common.md#id1)

    - [`GreatestCommonDivisor(f, g): RngUPolElt, RngUPolElt → RngUPolElt`](common.md#function-vpoly-gcd)

    - [`Gcd(f, g): RngUPolElt, RngUPolElt → RngUPolElt`](common.md#function-gcd-rngupolelt-rngupolelt)

    - [`GCD(f, g): RngUPolElt, RngUPolElt → RngUPolElt`](common.md#function-gcd-rngupolelt-rngupolelt-2)

    - [`ExtendedGreatestCommonDivisor(f, g): RngUPolElt, RngUPolElt → RngUPolElt, RngUPolElt, RngUPolElt`](common.md#function-extendedgreatestcommondivisor-rngupolelt-rngupolelt)

    - [`Xgcd(f, g): RngUPolElt, RngUPolElt → RngUPolElt, RngUPolElt, RngUPolElt`](common.md#function-xgcd-rngupolelt-rngupolelt)

    - [`XGCD(f, g): RngUPolElt, RngUPolElt → RngUPolElt, RngUPolElt, RngUPolElt`](common.md#function-xgcd-rngupolelt-rngupolelt-2)

    - [`LeastCommonMultiple(f, g): RngUPolElt, RngUPolElt → RngUPolElt`](common.md#function-leastcommonmultiple-rngupolelt-rngupolelt)

    - [`Lcm(f, g): RngUPolElt, RngUPolElt → RngUPolElt`](common.md#function-lcm-rngupolelt-rngupolelt)

    - [`LCM(f, g): RngUPolElt, RngUPolElt → RngUPolElt`](common.md#function-lcm-rngupolelt-rngupolelt-2)

    - [`Normalize(f): RngUPolElt → RngUPolElt`](common.md#function-vpoly-normalize)

  - [Content and Primitive Part](common.md#content-and-primitive-part)

    - [`Content(p): RngUPolElt → RngIntElt`](common.md#function-content-rngupolelt)

    - [`PrimitivePart(p): RngUPolElt → RngUPolElt`](common.md#function-primitivepart-rngupolelt)

    - [`ContentAndPrimitivePart(p): RngUPolElt → RngIntElt, RngUPolElt`](common.md#function-contentandprimitivepart-rngupolelt)

    - [`Contpp(p): RngUPolElt → RngIntElt, RngUPolElt`](common.md#function-contpp-rngupolelt)

- [Polynomials over the Integers](integer.md)

  - [`Sign(p): RngUPolElt → RngIntElt`](integer.md#function-sign-rngupolelt)

  - [`AbsoluteValue(p): RngUPolElt → RngUPolElt`](integer.md#function-absolutevalue-rngupolelt)

  - [`Abs(p): RngUPolElt → RngUPolElt`](integer.md#function-abs-rngupolelt)

  - [`MaxNorm(p): RngUPolElt → RngIntElt`](integer.md#function-maxnorm-rngupolelt)

  - [`SumNorm(p): RngUPolElt → RngIntElt`](integer.md#function-sumnorm-rngupolelt)

  - [`DedekindTest(p, m): RngUPolElt, RngIntElt → Boolelt`](integer.md#function-dedekindtest-rngupolelt-rngintelt)

- [Polynomials over Finite Fields](finitefields.md)

  - [`PrimePolynomials(R, d): RngUPol, RngIntElt → SeqEnum[ RngUPolElt ]`](finitefields.md#function-primepolynomials-rngupol-rngintelt)

  - [`PrimePolynomials(R, d, n): RngUPol, RngIntElt, RngIntElt → SeqEnum[ RngUPolElt ]`](finitefields.md#function-primepolynomials-rngupol-rngintelt-rngintelt)

  - [`RandomPrimePolynomial(R, d): RngUPol, RngIntElt → RngUPolElt`](finitefields.md#function-randomprimepolynomial-rngupol-rngintelt)

  - [`NumberOfPrimePolynomials(q, d): RngIntElt, RngIntElt → RngIntElt`](finitefields.md#function-numberofprimepolynomials-rngintelt-rngintelt)

  - [`NumberOfPrimePolynomials(K, d): FldFin, RngIntElt → RngIntElt`](finitefields.md#function-numberofprimepolynomials-fldfin-rngintelt)

  - [`NumberOfPrimePolynomials(R, d): RngUPol, RngIntElt → RngIntElt`](finitefields.md#function-numberofprimepolynomials-rngupol-rngintelt)

  - [`JacobiSymbol(a,b): RngUPol, RngUPol → RngIntElt`](finitefields.md#function-jacobisymbol-rngupol-rngupol)

- [Factorization](factorization.md)

  - [Factorization and Irreducibility](factorization.md#factorization-and-irreducibility)

    - [`Factorization(f): RngUPolElt → [ < RngUPolElt, RngIntElt >], RngElt`](factorization.md#function-vpoly-factorization)

    - [`Factorisation(f): RngUPolElt → [ < RngUPolElt, RngIntElt >], RngElt`](factorization.md#function-factorisation-rngupolelt)

    - [`HasPolynomialFactorization(R): Rng → BoolElt`](factorization.md#function-haspolynomialfactorization-rng)

    - [`SetVerbose("PolyFact", v): MonStgElt, RngIntElt`](factorization.md#function-setverbose-monstgelt-rngintelt-2)

    - [`FactorisationToPolynomial(f): [Tup] → BoolElt`](factorization.md#function-factorisationtopolynomial-tup)

    - [`Facpol(f): [Tup] → BoolElt`](factorization.md#function-facpol-tup)

    - [`Example: Swinnerton Dyer Polynomial`](factorization.md#example-ex-d3c652)

    - [`SquarefreeFactorization(f): RngUPolElt → [ <RngUPolElt, RngIntElt> ]`](factorization.md#function-squarefreefactorization-rngupolelt)

    - [`DistinctDegreeFactorization(f): RngUPolElt → [ <RngIntElt, RngUPolElt> ]`](factorization.md#function-distinctdegreefactorization-rngupolelt)

    - [`EqualDegreeFactorization(f, d, g): RngUPolElt, RngIntElt, RngUPolElt → [ RngUPolElt ]`](factorization.md#function-equaldegreefactorization-rngupolelt-rngintelt-rngupolelt)

    - [`IsIrreducible(f): RngUPolElt → BoolElt`](factorization.md#function-isirreducible-rngupolelt-2)

    - [`IsSeparable(f): RngUPolElt → BoolElt`](factorization.md#function-isseparable-rngupolelt)

    - [`QMatrix(f): RngUPolElt → AlgMatElt`](factorization.md#function-qmatrix-rngupolelt)

  - [Sylvester Matrix, Resultant and Discriminant](factorization.md#sylvester-matrix-resultant-and-discriminant)

    - [`SylvesterMatrix(f, g): RngUPolElt, RngUPolElt → Mtrx`](factorization.md#function-sylvestermatrix-rngupolelt-rngupolelt)

    - [`Resultant(f, g): RngUPolElt, RngUPolElt → RngElt`](factorization.md#function-resultant-rngupolelt-rngupolelt)

    - [`Discriminant(f): RngUPolElt → RngIntElt`](factorization.md#function-discriminant-rngupolelt)

    - [`CompanionMatrix(f): RngUPolElt → AlgMatElt`](factorization.md#function-companionmatrix-rngupolelt)

  - [Hensel Lifting](factorization.md#hensel-lifting)

    - [`HenselLift(f, s, P): RngUPolElt, [ RngUPolElt ], RngUPol → [ RngUPolElt ]`](factorization.md#function-hensellift-rngupolelt-rngupolelt-rngupol)

    - [`Example: Hensel`](factorization.md#example-ex-4d71ca)

- [Ideals and Quotient Rings](ideal-quotient.md)

  - [Creation of Ideals and Quotients](ideal-quotient.md#creation-of-ideals-and-quotients)

    - [`ideal< R | a₁, ..., aᵣ >: RngUPol, RngUPolElt, ..., RngUPolElt → RngUPol`](ideal-quotient.md#constructor-constructor-ideal-rngupol-rngupolelt-rngupolelt-rngupol)

    - [`quo< R | I >: RngUPol, RngUPol → RngUPolRes`](ideal-quotient.md#constructor-constructor-quo-rngupol-rngupol-rngupolres)

    - [`quo< R | a₁, ..., aᵣ >: RngUPol, RngUPolElt, ..., RngUPolElt → RngUPolRes, Map`](ideal-quotient.md#constructor-constructor-quo-rngupol-rngupolelt-rngupolelt-rngupolres-map)

  - [Ideal Arithmetic](ideal-quotient.md#ideal-arithmetic)

    - [`I + J: RngUPol, RngUPol → RngUPol`](ideal-quotient.md#operation-op-plus-rngupol-rngupol)

    - [`I * J: RngUPol, RngUPol → RngUPol`](ideal-quotient.md#operation-op-times-rngupol-rngupol)

    - [`I meet J: RngUPol, RngUPol → RngUPol`](ideal-quotient.md#operation-op-meet-rngupol-rngupol)

    - [`a in I: RngUPolElt, RngUPol → BoolElt`](ideal-quotient.md#operation-op-in-rngupolelt-rngupol)

    - [`a notin I: RngUPolElt, RngUPol → BoolElt`](ideal-quotient.md#operation-op-notin-rngupolelt-rngupol)

    - [`I eq J: RngUPol, RngUPol → BoolElt`](ideal-quotient.md#operation-op-eq-rngupol-rngupol-2)

    - [`I ne J: RngUPol, RngUPol → BoolElt`](ideal-quotient.md#operation-op-ne-rngupol-rngupol-2)

    - [`I subset J: RngUPol, RngUPol → BoolElt`](ideal-quotient.md#operation-op-subset-rngupol-rngupol)

    - [`I notsubset J: RngUPol, RngUPol → BoolElt`](ideal-quotient.md#operation-operation-notsubset-rngupol-rngupol-boolelt)

  - [Other Functions on Ideals](ideal-quotient.md#other-functions-on-ideals)

    - [`I . 1: RngUPol → RngUPolElt`](ideal-quotient.md#operation-operation-rngupol-rngupolelt)

  - [Other Functions on Quotients](ideal-quotient.md#other-functions-on-quotients)

    - [`Modulus(Q): RngUPolRes → RngUPolElt`](ideal-quotient.md#function-modulus-rngupolres)

    - [`PreimageRing(Q): RngUPolRes → RngUPol`](ideal-quotient.md#function-preimagering-rngupolres)

- [Special Families of Polynomials](families-polynomials.md)

  - [Orthogonal Polynomials](families-polynomials.md#orthogonal-polynomials)

    - [`ChebyshevFirst(n): RngIntElt → RngUPolElt`](families-polynomials.md#function-chebyshevfirst-rngintelt)

    - [`ChebyshevT(n): RngIntElt → RngUPolElt`](families-polynomials.md#function-chebyshevt-rngintelt)

    - [`ChebyshevSecond(n): RngIntElt → RngUPolElt`](families-polynomials.md#function-chebyshevsecond-rngintelt)

    - [`ChebyshevU(n): RngIntElt → RngUPolElt`](families-polynomials.md#function-chebyshevu-rngintelt)

    - [`LegendrePolynomial(n): RngIntElt → RngUPolElt`](families-polynomials.md#function-legendrepolynomial-rngintelt)

    - [`LaguerrePolynomial(n): RngIntElt → RngUPolElt`](families-polynomials.md#function-laguerrepolynomial-rngintelt)

    - [`LaguerrePolynomial(n, m): RngIntElt, RngElt → RngUPolElt`](families-polynomials.md#function-laguerrepolynomial-rngintelt-rngelt)

    - [`HermitePolynomial(n): RngIntElt → RngUPolElt`](families-polynomials.md#function-hermitepolynomial-rngintelt)

    - [`GegenbauerPolynomial(n, m): RngIntElt, RngElt → RngUPolElt`](families-polynomials.md#function-gegenbauerpolynomial-rngintelt-rngelt)

  - [Permutation Polynomials](families-polynomials.md#permutation-polynomials)

    - [`DicksonFirst(n, a): RngIntElt, RngElt → RngUPolElt`](families-polynomials.md#function-dicksonfirst-rngintelt-rngelt)

    - [`DicksonSecond(n, a): RngIntElt, RngElt → RngUPolElt`](families-polynomials.md#function-dicksonsecond-rngintelt-rngelt)

  - [The Bernoulli Polynomial](families-polynomials.md#the-bernoulli-polynomial)

    - [`BernoulliPolynomial(n): RngIntElt → RngUPolElt`](families-polynomials.md#function-bernoullipolynomial-rngintelt)

  - [Swinnerton-Dyer Polynomials](families-polynomials.md#swinnerton-dyer-polynomials)

    - [`SwinnertonDyerPolynomial(n): RngIntElt → RngUPolElt`](families-polynomials.md#function-swinnertondyerpolynomial-rngintelt)
