# Polynomial Ring Ideal Operations

- [Introduction](introduction.md)

- [Creation of Polynomial Rings and their Ideals](dpoly_ideal_create.md)

- [First Operations on Ideals](ideal-operation.md)

  - [Simple Ideal Constructions](ideal-operation.md#simple-ideal-constructions)

    - [`I + J: RngMPol, RngMPol → RngMPol`](ideal-operation.md#operation-op-plus-rngmpol-rngmpol)

    - [`I * J: RngMPol, RngMPol → RngMPol`](ideal-operation.md#operation-op-times-rngmpol-rngmpol)

    - [`I ^ k: RngMPol, RngIntElt → RngMPol`](ideal-operation.md#operation-op-pow-rngmpol-rngintelt)

    - [`I / J: RngMPol, RngMPol → RngMPolRes`](ideal-operation.md#operation-op-div-rngmpol-rngmpol)

  - [Basic Commutative Algebra Operations](ideal-operation.md#basic-commutative-algebra-operations)

    - [`QuotientDimension(I): RngMPol → RngIntElt`](ideal-operation.md#function-quotientdimension-rngmpol)

    - [`ColonIdeal(I, J): RngMPol, RngMPol → RngMPol`](ideal-operation.md#function-colonideal-rngmpol-rngmpol)

    - [`IdealQuotient(I, J): RngMPol, RngMPol → RngMPol`](ideal-operation.md#function-idealquotient-rngmpol-rngmpol)

    - [`ColonIdeal(I, f): RngMPol, RngMPolElt → RngMPol, RngIntElt`](ideal-operation.md#function-colonideal-rngmpol-rngmpolelt)

    - [`IdealQuotient(I, f): RngMPol, RngMPolElt → RngMPol, RngIntElt`](ideal-operation.md#function-idealquotient-rngmpol-rngmpolelt)

    - [`ColonIdealEquivalent(I, f): RngMPol, RngMPolElt → RngMPol, RngMPolElt`](ideal-operation.md#function-colonidealequivalent-rngmpol-rngmpolelt)

    - [`Saturation(I, f): RngMPol, RngMPolElt → RngMPol, RngMPolElt`](ideal-operation.md#function-saturation-rngmpol-rngmpolelt)

    - [`Saturation(I, J): RngMPol, RngMPol → RngMPol`](ideal-operation.md#function-saturation-rngmpol-rngmpol)

    - [`Saturation(I): RngMPol → RngMPol`](ideal-operation.md#function-saturation-rngmpol)

    - [`Generic(I): RngMPol → RngMPol`](ideal-operation.md#function-generic-rngmpol)

    - [`LeadingMonomialIdeal(I): RngMPol → RngMPol`](ideal-operation.md#function-leadingmonomialideal-rngmpol)

    - [`I meet J: RngMPol, RngMPol → RngMPol`](ideal-operation.md#operation-op-meet-rngmpol-rngmpol)

    - [`&meet S: [ RngMPol ] → RngMPol`](ideal-operation.md#operation-operation-meet-rngmpol-rngmpol)

    - [`RegularSequence(I): RngMPol → SeqEnum`](ideal-operation.md#function-regularsequence-rngmpol)

    - [`ReesIdeal(P, I): RngMPol, RngMPol → RngMPol, Map`](ideal-operation.md#function-comm-rees-ideal)

    - [`ReesIdeal(P, J, I): RngMPol, RngMPol, RngMPol → RngMPol, Map`](ideal-operation.md#function-reesideal-rngmpol-rngmpol-rngmpol)

    - [`ReesIdeal(R, I): RngMPolRes, RngMPol → RngMPol, Map`](ideal-operation.md#function-reesideal-rngmpolres-rngmpol)

  - [Ideal Predicates](ideal-operation.md#ideal-predicates)

    - [`I eq J: RngMPol, RngMPol → BoolElt`](ideal-operation.md#operation-op-eq-rngmpol-rngmpol)

    - [`I ne J: RngMPol, RngMPol → BoolElt`](ideal-operation.md#operation-op-ne-rngmpol-rngmpol)

    - [`I notsubset J: RngMPol, RngMPol → BoolElt`](ideal-operation.md#operation-operation-notsubset-rngmpol-rngmpol-boolelt)

    - [`I subset J: RngMPol, RngMPol → BoolElt`](ideal-operation.md#operation-op-subset-rngmpol-rngmpol)

    - [`IsZero(I): RngMPol → BoolElt`](ideal-operation.md#function-iszero-rngmpol)

    - [`IsProper(I): RngMPol → BoolElt`](ideal-operation.md#function-isproper-rngmpol)

    - [`IsHomogeneous(I): RngMPol → BoolElt`](ideal-operation.md#function-ishomogeneous-rngmpol)

    - [`IsPrincipal(I): RngMPol → BoolElt, RngMPolElt`](ideal-operation.md#function-isprincipal-rngmpol)

    - [`IsPrimary(I): RngMPol → BoolElt`](ideal-operation.md#function-dpoly-ideal-isprimary)

    - [`IsPrime(I): RngMPol → BoolElt`](ideal-operation.md#function-isprime-rngmpol)

    - [`IsMaximal(I): RngMPol → BoolElt`](ideal-operation.md#function-ismaximal-rngmpol)

    - [`IsRadical(I): RngMPol → BoolElt`](ideal-operation.md#function-isradical-rngmpol)

    - [`IsZeroDimensional(I): RngMPol → BoolElt`](ideal-operation.md#function-iszerodimensional-rngmpol)

    - [`HasGrevlexOrder(I): RngMPol → BoolElt`](ideal-operation.md#function-hasgrevlexorder-rngmpol)

    - [`Example: Ideal Arithmetic`](ideal-operation.md#example-ex-d1b8ee)

  - [Element Operations with Ideals](ideal-operation.md#element-operations-with-ideals)

    - [`f in I: RngMPolElt, RngMPol → BoolElt`](ideal-operation.md#operation-op-in-rngmpolelt-rngmpol)

    - [`f notin I: RngMPolElt, RngMPol → BoolElt`](ideal-operation.md#operation-op-notin-rngmpolelt-rngmpol)

    - [`IsInRadical(f, I): RngMPolElt, RngMPol → BoolElt`](ideal-operation.md#function-isinradical-rngmpolelt-rngmpol)

    - [`JacobianIdeal(f): RngMPolElt → RngMPol`](ideal-operation.md#function-jacobianideal-rngmpolelt)

    - [`Example: Element Operations`](ideal-operation.md#example-ex-273d4e)

- [Computation of Varieties](variety.md)

  - [`Variety(I): RngMPol → [ ModTupFldElt ]`](variety.md#function-variety-rngmpol)

  - [`Variety(I, L): RngMPol, Rng → [ ModTupFldElt ]`](variety.md#function-variety-rngmpol-rng)

  - [`VarietySequence(I): RngMPol → [ [ RngElt ] ]`](variety.md#function-varietysequence-rngmpol)

  - [`VarietySequence(I, L): RngMPol, Rng → [ [ RngElt ] ]`](variety.md#function-varietysequence-rngmpol-rng)

  - [`VarietySize(I): RngMPol → RngIntElt`](variety.md#function-varietysize-rngmpol)

  - [`Example: Variety`](variety.md#example-ex-eb5dde)

- [Multiplicities](multiplicities.md)

  - [`MilnorNumber(f): RngMPolElt → RngElt`](multiplicities.md#function-milnornumber-rngmpolelt)

  - [`TjurinaNumber(f): RngMPolElt → RngElt`](multiplicities.md#function-tjurinanumber-rngmpolelt)

  - [`Example: Variety`](multiplicities.md#example-ex-e4a04f)

- [Elimination](elimination.md)

  - [Construction of Elimination Ideals](elimination.md#construction-of-elimination-ideals)

    - [`EliminationIdeal(I, k: parameters): RngMPol, RngIntElt → RngMPol`](elimination.md#function-eliminationideal-rngmpol-rngintelt)

    - [`EliminationIdeal(I, S): RngMPol, { RngIntElt } → RngMPol`](elimination.md#function-eliminationideal-rngmpol-rngintelt-2)

    - [`EliminationIdeal(I, S): RngMPol, { RngMPolElt } → RngMPol`](elimination.md#function-eliminationideal-rngmpol-rngmpolelt)

    - [`Example: Quadratic Order Elim`](elimination.md#example-ex-0217ea)

  - [Univariate Elimination Ideal Generators](elimination.md#univariate-elimination-ideal-generators)

    - [`UnivariateEliminationIdealGenerator(I, i): RngMPol, RngIntElt → RngMPolElt`](elimination.md#function-univariateeliminationidealgenerator-rngmpol-rngintelt)

    - [`UnivariateEliminationIdealGenerators(I): RngMPol → [ RngMPolElt ]`](elimination.md#function-univariateeliminationidealgenerators-rngmpol)

    - [`Example: Elimination Ideal`](elimination.md#example-ex-09af2f)

    - [`Example: Z Radical`](elimination.md#example-ex-84cd6f)

  - [Relation Ideals](elimination.md#relation-ideals)

    - [`RelationIdeal(Q): [ RngMPol ] → RngMPol`](elimination.md#function-dpoly-ideal-relationideal)

    - [`RelationIdeal(Q, T): [ RngMPol ], RngMPol → RngMPol`](elimination.md#function-relationideal-rngmpol-rngmpol)

    - [`Example: Relation Ideal`](elimination.md#example-ex-d17522)

- [Variable Extension of Ideals](variable-extension.md)

  - [`VariableExtension(I, k, b): RngMPol, RngIntElt, BoolElt → RngMPol, Map`](variable-extension.md#function-dpoly-ideal-variableextension)

  - [`VariableExtension(I, k, b, order): RngMPol, RngIntElt, BoolElt, ... → RngMPol, Map`](variable-extension.md#function-variableextension-rngmpol-rngintelt-boolelt)

- [Homogenization of Ideals](homogenization.md)

  - [`Homogenization(I, b): RngMPol, RngIntElt, BoolElt → RngMPol, Map`](homogenization.md#function-homogenization-rngmpol-rngintelt-boolelt)

  - [`Homogenization(I, b, order): RngMPol, RngIntElt, BoolElt, ... → RngMPol, Map`](homogenization.md#function-homogenization-rngmpol-rngintelt-boolelt-2)

  - [`Homogenization(I): RngMPol, RngIntElt, BoolElt → RngMPol, Map`](homogenization.md#function-homogenization-rngmpol-rngintelt-boolelt-3)

  - [`Homogenization(I, order): RngMPol, RngIntElt, BoolElt, ... → RngMPol, Map`](homogenization.md#function-homogenization-rngmpol-rngintelt-boolelt-4)

- [Extension and Contraction of Ideals](extension-contraction.md)

  - [`Extension(I, U): RngMPol, [ RngIntElt ] → RngMPol, Map`](extension-contraction.md#function-extension-rngmpol-rngintelt)

- [Dimension of Ideals](dimension.md)

  - [`Dimension(I): RngMPol → RngIntElt, [ RngIntElt ]`](dimension.md#function-dpoly-ideal-dimension)

- [Radical and Decomposition of Ideals](radical-decomposition.md)

  - [Radical](radical-decomposition.md#radical)

    - [`Radical(I): RngMPol → RngMPol`](radical-decomposition.md#function-dpoly-ideal-radical)

    - [`Example: Radical`](radical-decomposition.md#example-ex-964567)

  - [Primary Decomposition](radical-decomposition.md#primary-decomposition)

    - [`PrimaryDecomposition(I): RngMPol → [ RngMPol ], [ RngMPol ]`](radical-decomposition.md#function-dpoly-ideal-primarydecomposition)

    - [`RadicalDecomposition(I): RngMPol → [ RngMPol ]`](radical-decomposition.md#function-dpoly-ideal-radicaldecomposition)

    - [`ProbableRadicalDecomposition(I): RngMPol → [ RngMPol ]`](radical-decomposition.md#function-probableradicaldecomposition-rngmpol)

    - [`MinimalDecomposition(S): [ RngMPol ] → [ RngMPol ]`](radical-decomposition.md#function-minimaldecomposition-rngmpol)

    - [`SetVerbose("Decomposition", v): MonStgElt, RngIntElt`](radical-decomposition.md#function-setverbose-monstgelt-rngintelt)

    - [`Example: Primary Decomposition`](radical-decomposition.md#example-ex-5b6487)

  - [Triangular Decomposition](radical-decomposition.md#triangular-decomposition)

    - [`TriangularDecomposition(I): RngMPol → [ RngMPol ], BoolElt`](radical-decomposition.md#function-triangulardecomposition-rngmpol)

    - [`Example: Triangular Decomposition`](radical-decomposition.md#example-ex-765e71)

  - [Equidimensional Decomposition](radical-decomposition.md#equidimensional-decomposition)

    - [`EquidimensionalPart(I): RngMPol → RngMPol`](radical-decomposition.md#function-equidimensionalpart-rngmpol)

    - [`EquidimensionalDecomposition(I): RngMPol → [ RngMPol ]`](radical-decomposition.md#function-equidimensionaldecomposition-rngmpol)

    - [`FineEquidimensionalDecomposition(I): RngMPol → SeqEnum`](radical-decomposition.md#function-fineequidimensionaldecomposition-rngmpol)

    - [`Example: Equidimensional Decomposition`](radical-decomposition.md#example-ex-1ff599)

- [Normalisation and Noether Normalisation](normalisations.md)

  - [Noether Normalisation](normalisations.md#noether-normalisation)

    - [`NoetherNormalisation(I): RngMPol → [RngMPolElt], Map, Map`](normalisations.md#function-noethernormalisation-rngmpol)

    - [`NoetherNormalization(I): RngMPol → [RngMPolElt], Map, Map`](normalisations.md#function-noethernormalization-rngmpol)

    - [`Example: Noether Normalisation`](normalisations.md#example-ex-998b7c)

  - [Normalisation](normalisations.md#normalisation)

    - [`Normalisation(I): RngMPol → List`](normalisations.md#function-normalisation-rngmpol)

    - [`Normalization(I): RngMPol → List`](normalisations.md#function-normalization-rngmpol)

    - [`Example: Normalisation`](normalisations.md#example-ex-7977fa)

- [Hilbert Series and Hilbert Polynomial](hilbert.md)

  - [`HilbertSeries(I): RngMPol → FldFunUElt`](hilbert.md#function-dpoly-ideal-hilbertseries)

  - [`HilbertSeries(I, p): RngMPol, RngIntElt → RngSerLaurElt`](hilbert.md#function-hilbertseries-rngmpol-rngintelt)

  - [`HilbertDenominator(I): RngMPol → RngUPol`](hilbert.md#function-dpoly-ideal-hilbertdenominator)

  - [`HilbertNumerator(I): RngMPol → RngUPol`](hilbert.md#function-hilbertnumerator-rngmpol)

  - [`HilbertPolynomial(I): RngMPol → RngUPolElt, RngIntElt`](hilbert.md#function-hilbertpolynomial-rngmpol)

  - [`Example: Hilbert`](hilbert.md#example-ex-d1966b)

- [Syzygies](syzygy-matrix.md)

  - [`SyzygyMatrix(Q): [ RngMPolElt ] → ModMatRngElt`](syzygy-matrix.md#function-syzygymatrix-rngmpolelt)

  - [`Example: Syzygy Matrix`](syzygy-matrix.md#example-ex-41f6f0)

- [Maps between Rings](maps.md)

  - [`PolyMapKernel(f): Map → RngMPol`](maps.md#function-polymapkernel-map)

  - [`IsInImage(f, p): Map, RngMPolElt → [ BoolElt ]`](maps.md#function-isinimage-map-rngmpolelt)

  - [`IsSurjective(f): Map → [ BoolElt ]`](maps.md#function-issurjective-map)

  - [`Extension(phi, I): Map, RngMPol → RngMPol`](maps.md#function-extension-map-rngmpol)

  - [`Implicitization(phi): Map → RngMPol`](maps.md#function-implicitization-map)

  - [`Example: Map1`](maps.md#example-ex-a72e07)

- [Symmetric Polynomials](symmetric.md)

  - [`ElementarySymmetricPolynomial(P, k): RngMPol, RngIntElt → RngMPolElt`](symmetric.md#function-elementarysymmetricpolynomial-rngmpol-rngintelt)

  - [`IsSymmetric(f): RngMPolElt → BoolElt, RngMPolElt`](symmetric.md#function-issymmetric-rngmpolelt)

  - [`IsSymmetric(f, S): RngMPolElt, RngMPol → BoolElt, RngMPolElt`](symmetric.md#function-issymmetric-rngmpolelt-rngmpol)

  - [`Example: Is Symmetric`](symmetric.md#example-ex-6e4642)

- [Functions for Polynomial Algebra and Module Generators](algebra-module.md)

  - [`MinimalAlgebraGenerators(L): [ RngMPol ] → [ RngMPol ]`](algebra-module.md#function-minimalalgebragenerators-rngmpol)

  - [`MinimalAlgebraGenerators(L): { RngMPol } → [ RngMPol ]`](algebra-module.md#function-minimalalgebragenerators-rngmpol-2)

  - [`HomogeneousModuleTest(P, S, F): [ RngMPol ], [ RngMPol ], RngMPol → BoolElt, [ RngMPol ]`](algebra-module.md#function-homogeneousmoduletest-rngmpol-rngmpol-rngmpol)

  - [`HomogeneousModuleTest(P, S, L): [ RngMPol ], [ RngMPol ], [ RngMPol ] → [ BoolElt ], [ [ RngMPol ] ]`](algebra-module.md#function-homogeneousmoduletest-rngmpol-rngmpol-rngmpol-2)

  - [`HomogeneousModuleTestBasis(P, S, L): [ RngMPol ], [ RngMPol ], [ RngMPol ] → [ BoolElt ], [ [ RngMPol ] ]`](algebra-module.md#function-homogeneousmoduletestbasis-rngmpol-rngmpol-rngmpol)

  - [`Example: Homogeneous Module Test1`](algebra-module.md#example-ex-882819)
