# Modules over Multivariate Rings

- [Introduction](introduction.md)

- [Module Basics: Embedded and Reduced Modules](embedded-reduced.md)

- [Monomial Orders](order.md)

  - [Term Over Position: TOP](order.md#term-over-position-top)

  - [Term Over Position (Weighted): TOPW](order.md#term-over-position-weighted-topw)

  - [Position Over Term: POT](order.md#position-over-term-pot)

  - [Position Over Term (Permutation): POTPERM](order.md#position-over-term-permutation-potperm)

  - [Block TOP-TOP: TOPTOP](order.md#block-top-top-toptop)

  - [Block TOP-POT: TOPPOT](order.md#block-top-pot-toppot)

- [Basic Creation and Access](creation-access.md)

  - [Creation of Ambient Embedded Modules](creation-access.md#creation-of-ambient-embedded-modules)

    - [`EModule(R, k): Rng, RngIntElt → ModMPol`](creation-access.md#function-pmod-emodule)

    - [`EModule(R, k, order): Rng, RngIntElt, MonStgElt, ... → ModMPol`](creation-access.md#function-emodule-rng-rngintelt-monstgelt)

    - [`EModule(R, W): Rng, [ RngIntElt ] → ModMPol`](creation-access.md#function-emodule-rng-rngintelt)

    - [`EModule(R, W, order): Rng, [ RngIntElt ], MonStgElt, ... → ModMPol`](creation-access.md#function-emodule-rng-rngintelt-monstgelt-2)

  - [Creation of Reduced Modules](creation-access.md#creation-of-reduced-modules)

    - [`RModule(R, k): Rng, RngIntElt → ModMPol`](creation-access.md#function-pmod-rmodule)

    - [`RModule(R, W): Rng, [ RngIntElt ] → ModMPol`](creation-access.md#function-rmodule-rng-rngintelt)

    - [`GradedModule(R, k): Rng, RngIntElt → ModMPol`](creation-access.md#function-gradedmodule-rng-rngintelt)

    - [`GradedModule(R, W): Rng, [ RngIntElt ] → ModMPol`](creation-access.md#function-gradedmodule-rng-rngintelt-2)

  - [Localization](creation-access.md#localization)

    - [`Localization(M): ModMPol → ModMPol`](creation-access.md#function-localization-modmpol)

  - [Basic Invariants](creation-access.md#basic-invariants)

    - [`Ambient(M): ModMPol → ModMPol`](creation-access.md#function-ambient-modmpol)

    - [`Generic(M): ModMPol → ModMPol`](creation-access.md#function-generic-modmpol)

    - [`IsAmbient(M): ModMPol → BoolElt`](creation-access.md#function-isambient-modmpol)

    - [`IsEmbedded(M): ModMPol → BoolElt`](creation-access.md#function-isembedded-modmpol)

    - [`IsReduced(M): ModMPol → BoolElt`](creation-access.md#function-isreduced-modmpol)

    - [`IsRoot(M): ModMPol → BoolElt`](creation-access.md#function-isroot-modmpol)

    - [`CoefficientRing(M): ModMPol → ModMPol`](creation-access.md#function-coefficientring-modmpol)

    - [`BaseRing(M): ModMPol → Rng`](creation-access.md#function-basering-modmpol)

    - [`Degree(M): ModMPol → RngIntElt`](creation-access.md#function-degree-modmpol)

    - [`ColumnWeights(M): ModMPol → [ RngIntElt ]`](creation-access.md#function-columnweights-modmpol)

    - [`Grading(M): ModMPol → [ RngIntElt ]`](creation-access.md#function-grading-modmpol)

    - [`RelationModule(M): ModMPol → [ ModMPol ]`](creation-access.md#function-relationmodule-modmpol)

    - [`Relations(M): ModMPol → [ ModMPol ]`](creation-access.md#function-relations-modmpol)

    - [`RelationMatrix(M): ModMPol → ModMatRngElt`](creation-access.md#function-relationmatrix-modmpol)

    - [`Presentation(M): ModMPol → [ ModMPol ]`](creation-access.md#function-presentation-modmpol)

    - [`IsGraded(M): ModMPol → BoolElt`](creation-access.md#function-isgraded-modmpol)

    - [`IsHomogeneous(M): ModMPol → BoolElt`](creation-access.md#function-ishomogeneous-modmpol)

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

    - [`M ! Q: ModMPol, [ RngElt ] → ModMPolElt`](creation-access.md#operation-op-modmpol-rngelt)

    - [`M ! v: ModMPol, ModTupRngElt → ModMPolElt`](creation-access.md#operation-op-modmpol-modtuprngelt)

    - [`M ! 0: ModMPol, RngIntElt → ModMPolElt`](creation-access.md#operation-op-modmpol-rngintelt)

    - [`Zero(M): ModMPol → ModMPolElt`](creation-access.md#function-zero-modmpol)

    - [`UnitVector(M, i): ModMPol, RngIntElt → ModMPolElt`](creation-access.md#function-unitvector-modmpol-rngintelt)

  - [Element Operations](creation-access.md#element-operations)

    - [Access](creation-access.md#access)

      - [`Eltseq(f): ModMPolElt → [ RngMPolElt ]`](creation-access.md#function-eltseq-modmpolelt)

      - [`Vector(f): ModMPolElt → ModTupRngElt`](creation-access.md#function-vector-modmpolelt)

      - [`f[i]: ModMPolElt, RngIntElt → RngMPolElt`](creation-access.md#indexed-indexed-f-modmpolelt-rngintelt-rngmpolelt)

    - [Arithmetic](creation-access.md#arithmetic)

      - [`f + g: ModMPolElt, ModMPolElt → ModMPolElt`](creation-access.md#operation-op-plus-modmpolelt-modmpolelt)

      - [`f - g: ModMPolElt, ModMPolElt → ModMPolElt`](creation-access.md#operation-op-minus-modmpolelt-modmpolelt)

      - [`- f: ModMPolElt → ModMPolElt`](creation-access.md#operation-operation-modmpolelt-modmpolelt)

      - [`r * f: RngElt, ModMPolElt → ModMPolElt`](creation-access.md#operation-op-times-rngelt-modmpolelt)

      - [`f * r: ModMPolElt, RngElt → ModMPolElt`](creation-access.md#operation-op-times-modmpolelt-rngelt)

      - [`f div s: ModMPolElt, RngMPolElt → ModMPolElt`](creation-access.md#operation-operation-div-modmpolelt-rngmpolelt-modmpolelt)

      - [`SPolynomial(f, g): ModMPolElt, ModMPolElt → ModMPolElt`](creation-access.md#function-spolynomial-modmpolelt-modmpolelt)

      - [`Normalize(f): ModMPolElt → ModMPolElt`](creation-access.md#function-normalize-modmpolelt)

      - [`NormalForm(f, S): ModMPolElt, ModMPol → ModMPolElt`](creation-access.md#function-normalform-modmpolelt-modmpol)

      - [`Coordinates(M, f): ModMPolElt, ModMPol → [ RngMPolElt ]`](creation-access.md#function-coordinates-modmpolelt-modmpol)

    - [Accessing the Underlying Representation](creation-access.md#accessing-the-underlying-representation)

      - [`Coefficients(f): ModMPolElt → [RngElt]`](creation-access.md#function-coefficients-modmpolelt)

      - [`Monomials(f): ModMPolElt → [ModMPolElt]`](creation-access.md#function-monomials-modmpolelt)

      - [`Terms(f): ModMPolElt → [ModMPolElt]`](creation-access.md#function-terms-modmpolelt)

      - [`LeadingCoefficient(f): ModMPolElt → RngElt`](creation-access.md#function-leadingcoefficient-modmpolelt)

      - [`LeadingMonomial(f): ModMPolElt → ModMPolElt`](creation-access.md#function-leadingmonomial-modmpolelt)

      - [`LeadingTerm(f): ModMPolElt → ModMPolElt`](creation-access.md#function-leadingterm-modmpolelt)

      - [`CoefficientsAndMonomials(f): ModMPolElt → [RngElt], [ModMPolElt]`](creation-access.md#function-coefficientsandmonomials-modmpolelt)

      - [`Column(f): ModMPolElt → RngIntElt`](creation-access.md#function-column-modmpolelt)

      - [`Degree(f): ModMPolElt → RngIntElt`](creation-access.md#function-degree-modmpolelt)

      - [`WeightedDegree(f): ModMPolElt → RngIntElt`](creation-access.md#function-weighteddegree-modmpolelt)

      - [`IsHomogeneous(f): ModMPolElt → BoolElt`](creation-access.md#function-ishomogeneous-modmpolelt)

    - [Predicates](creation-access.md#predicates)

      - [`IsZero(f): ModMPolElt → BoolElt`](creation-access.md#function-iszero-modmpolelt)

      - [`f eq g: ModMPolElt, ModMPolElt → BoolElt`](creation-access.md#operation-op-eq-modmpolelt-modmpolelt)

      - [`f lt g: ModMPolElt, ModMPolElt → BoolElt`](creation-access.md#operation-op-lt-modmpolelt-modmpolelt)

      - [`f in M: ModMPolElt, ModMPol → BoolElt`](creation-access.md#operation-op-in-modmpolelt-modmpol)

      - [`Example: Create Embedded`](creation-access.md#example-ex-ce53cf)

- [The Homomorphism Type](homomorphism-type.md)

  - [`Homomorphism(M, N, A): ModMPol, ModMPol, Mtrx → ModMPolHom`](homomorphism-type.md#function-homomorphism-modmpol-modmpol-mtrx)

  - [`Domain(f): ModMPolHom → ModMPol`](homomorphism-type.md#function-domain-modmpolhom)

  - [`Codomain(f): ModMPolHom → ModMPol`](homomorphism-type.md#function-codomain-modmpolhom)

  - [`PresentationMatrix(f): ModMPolHom → ModMatRngElt`](homomorphism-type.md#function-presentationmatrix-modmpolhom)

  - [`Matrix(f): ModMPolHom → ModMatRngElt`](homomorphism-type.md#function-matrix-modmpolhom)

  - [`AmbientMatrix(f): ModMPolHom → ModMatRngElt`](homomorphism-type.md#function-ambientmatrix-modmpolhom)

  - [`Matrix(f): ModMPolHom → ModMatRngElt`](homomorphism-type.md#function-matrix-modmpolhom-2)

  - [`f(v): ModMPolHom, RngMPolElt → RngMPolElt`](homomorphism-type.md#literal-f-modmpolhom-rngmpolelt)

  - [`v * f: ModMPolHom, RngMPolElt → RngMPolElt`](homomorphism-type.md#operation-op-times-modmpolhom-rngmpolelt)

  - [`f[i]: ModMPolHom, RngIntElt → RngMPolElt`](homomorphism-type.md#indexed-indexed-f-modmpolhom-rngintelt-rngmpolelt)

  - [`Image(f): ModMPolHom → ModMPol`](homomorphism-type.md#function-image-modmpolhom)

  - [`Kernel(f): ModMPolHom → ModMPol`](homomorphism-type.md#function-kernel-modmpolhom)

  - [`Cokernel(f): ModMPolHom → ModMPol`](homomorphism-type.md#function-cokernel-modmpolhom)

  - [`IsZero(f): ModMPolHom → BoolElt`](homomorphism-type.md#function-iszero-modmpolhom)

  - [`IsInjective(f): ModMPolHom → BoolElt`](homomorphism-type.md#function-isinjective-modmpolhom)

  - [`IsSurjective(f): ModMPolHom → BoolElt`](homomorphism-type.md#function-issurjective-modmpolhom)

  - [`IsBijective(f): ModMPolHom → BoolElt`](homomorphism-type.md#function-isbijective-modmpolhom)

  - [`IsGraded(f): ModMPolHom → BoolElt`](homomorphism-type.md#function-isgraded-modmpolhom)

  - [`IsHomogeneous(f): ModMPolHom → BoolElt`](homomorphism-type.md#function-ishomogeneous-modmpolhom)

  - [`Degree(f): ModMPolHom → RngIntElt`](homomorphism-type.md#function-degree-modmpolhom)

  - [`Example: Homomorphism Embedded`](homomorphism-type.md#example-ex-ce742b)

- [Submodules and Quotient Modules](sub-quo.md)

  - [Creation](sub-quo.md#creation)

    - [`sub<M | L>: ModMPol, List → ModMPol`](sub-quo.md#constructor-constructor-sub-modmpol-list-modmpol)

    - [`quo<M | L>: ModMPol, List → ModMPol`](sub-quo.md#constructor-constructor-quo-modmpol-list-modmpol)

    - [`Morphism(M, N): ModMPol, ModMPol → ModMPolHom`](sub-quo.md#function-pmod-morphism)

    - [`Submodule(I): RngMPol → ModMPol`](sub-quo.md#function-submodule-rngmpol)

    - [`QuotientModule(I): RngMPol → ModMPol`](sub-quo.md#function-quotientmodule-rngmpol)

    - [`GradedModule(I): RngMPol → ModMPol`](sub-quo.md#function-gradedmodule-rngmpol)

  - [Module Bases](sub-quo.md#module-bases)

    - [`Basis(M): ModMPol → RngMPolElt`](sub-quo.md#function-basis-modmpol)

    - [`BasisElement(M, i): ModMPol, RngIntElt → RngMPolElt`](sub-quo.md#function-basiselement-modmpol-rngintelt)

    - [`BasisMatrix(M): ModMPol → ModMatRngElt`](sub-quo.md#function-basismatrix-modmpol)

    - [`Groebner(M): ModMPol`](sub-quo.md#function-groebner-modmpol)

    - [`Example: Sub Quo Embedded`](sub-quo.md#example-ex-df76cb)

    - [`Example: Sub Quo Reduced`](sub-quo.md#example-ex-c177b3)

- [Basic Module Constructions](basic_mod_cons.md)

  - [`M + N: ModMPol, ModMPol → ModMPol`](basic_mod_cons.md#operation-op-plus-modmpol-modmpol)

  - [`M meet N: ModMPol, ModMPol → ModMPol`](basic_mod_cons.md#operation-op-meet-modmpol-modmpol)

  - [`f * M: ModMPol, RngElt → ModMPol`](basic_mod_cons.md#operation-op-times-modmpol-rngelt)

  - [`M * f: ModMPol, RngElt → ModMPol`](basic_mod_cons.md#operation-op-times-modmpol-rngelt-2)

  - [`I * M: RngMPol, ModMPol → ModMPol`](basic_mod_cons.md#operation-op-times-rngmpol-modmpol)

  - [`M * I: ModMPol, RngMPol → ModMPol`](basic_mod_cons.md#operation-op-times-modmpol-rngmpol)

  - [`M / N: ModMPol, ModMPol → ModMPol`](basic_mod_cons.md#operation-op-div-modmpol-modmpol)

  - [`DirectSum(M, N): ModMPol, ModMPol → ModMPol, [ModMPolHom], [ModMPolHom]`](basic_mod_cons.md#function-directsum-modmpol-modmpol)

  - [`DirectSum(S): [ModMPol] → ModMPol, [ModMPolHom], [ModMPolHom]`](basic_mod_cons.md#function-directsum-modmpol)

  - [`DirectSum(S): [* ModMPol *] → ModMPol, [ModMPolHom], [ModMPolHom]`](basic_mod_cons.md#function-directsum-modmpol-2)

  - [`Twist(M, d): ModMPol, RngIntElt → [ ModMPolElt ], ModMPolHom`](basic_mod_cons.md#function-twist-modmpol-rngintelt)

- [Predicates](predicates.md)

  - [`IsZero(M): ModMPol → ModMPol`](predicates.md#function-iszero-modmpol)

  - [`M subset N: ModMPol, ModMPol → BoolElt`](predicates.md#operation-op-subset-modmpol-modmpol)

  - [`M eq N: ModMPol, ModMPol → BoolElt`](predicates.md#operation-op-eq-modmpol-modmpol)

  - [`IsFree(M): ModMPol → BoolElt`](predicates.md#function-isfree-modmpol)

- [Module Operations](operations.md)

  - [`MinimalBasis(M): ModMPol → [ ModMPolElt ]`](operations.md#function-minimalbasis-modmpol)

  - [`MinimalBasis(S): [ ModMPolElt ] → [ ModMPolElt ]`](operations.md#function-minimalbasis-modmpolelt)

  - [`MinimalBasis(S): { ModMPolElt } → [ ModMPolElt ]`](operations.md#function-minimalbasis-modmpolelt-2)

  - [`Rank(M): ModMPol → RngIntElt`](operations.md#function-pmod-rank)

  - [`ColonModule(M, J): ModMPol, RngMPol → ModMPol`](operations.md#function-colonmodule-modmpol-rngmpol)

  - [`ColonIdeal(M, N): ModMPol, ModMPol → RngMPol`](operations.md#function-colonideal-modmpol-modmpol)

  - [`Annihilator(M): ModMPol → RngMPol`](operations.md#function-annihilator-modmpol)

  - [`FittingIdeal(M, i): ModMPol, RngIntElt → RngMPol`](operations.md#function-fittingideal-modmpol-rngintelt)

  - [`FittingIdeals(M): ModMPol → RngMPol`](operations.md#function-fittingideals-modmpol)

  - [`SyzygyModule(M): ModMPol → [ ModMPolElt ]`](operations.md#function-syzygymodule-modmpol)

  - [`MinimalSyzygyModule(M): ModMPol → [ ModMPolElt ]`](operations.md#function-minimalsyzygymodule-modmpol)

  - [`SyzygyModule(Q): [ RngMPolElt ] → ModTupRng`](operations.md#function-syzygymodule-rngmpolelt)

  - [`Example: Rank`](operations.md#example-ex-e30655)

- [Changing Ring](change-ring.md)

  - [`ChangeRing(M, S): RngMPol, Rng → RngMPol`](change-ring.md#function-pmod-changering)

- [Hilbert Series](hilbert.md)

  - [`HilbertSeries(M): ModMPol → FldFunElt`](hilbert.md#function-pmod-hilbertseries)

  - [`HilbertSeries(M, p): ModMPol, RngIntElt → RngSerLaurElt`](hilbert.md#function-hilbertseries-modmpol-rngintelt)

  - [`HilbertDenominator(M): ModMPol → RngUPol`](hilbert.md#function-hilbertdenominator-modmpol)

  - [`HilbertNumerator(M): ModMPol → RngUPolElt, RngIntElt`](hilbert.md#function-hilbertnumerator-modmpol)

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

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

- [Free Resolutions](free-resolution.md)

  - [Constructing Free Resolutions](free-resolution.md#constructing-free-resolutions)

    - [`FreeResolution(M): ModMPol → ModCpx, ModMPolHom`](free-resolution.md#function-pmod-freeresolution)

    - [`SetVerbose("Resolution", v): MonStgElt, RngIntElt`](free-resolution.md#function-setverbose-monstgelt-rngintelt)

    - [`Example: Free Resolution`](free-resolution.md#example-ex-2a8a2e)

    - [`Example: Free Resolution1`](free-resolution.md#example-ex-999f8c)

  - [Betti Numbers and Related Invariants](free-resolution.md#betti-numbers-and-related-invariants)

    - [`BettiNumbers(M): ModMPol → [ RngIntElt ]`](free-resolution.md#function-bettinumbers-modmpol)

    - [`BettiNumber(M, i, j): ModMPol, RngIntElt, RngIntElt → RngIntElt`](free-resolution.md#function-bettinumber-modmpol-rngintelt-rngintelt)

    - [`MaximumBettiDegree(M, i): ModMPol, RngIntElt → RngIntElt`](free-resolution.md#function-maximumbettidegree-modmpol-rngintelt)

    - [`BettiTable(M): ModMPol → [[ RngIntElt ]], RngIntElt`](free-resolution.md#function-bettitable-modmpol)

    - [`Regularity(M): ModMPol → RngInt`](free-resolution.md#function-regularity-modmpol)

    - [`HomologicalDimension(M): ModMPol → RngInt`](free-resolution.md#function-homologicaldimension-modmpol)

    - [`Example: Koszul`](free-resolution.md#example-ex-289091)

    - [`Example: Exterior Algebra`](free-resolution.md#example-ex-7b4771)

    - [`Example: Free Resolution Local`](free-resolution.md#example-ex-af7b7b)

    - [`Example: Hilbert Series Betti`](free-resolution.md#example-ex-ebeb1e)

    - [`Example: Regularity`](free-resolution.md#example-ex-0f654c)

    - [`Example: Genus11Curve`](free-resolution.md#example-ex-8c6c7c)

- [The Hom Module and Ext](hom-module-and-ext.md)

  - [`Hom(M, N): ModMPol, ModMPol → ModMPol, Map`](hom-module-and-ext.md#function-hom-modmpol-modmpol)

  - [`Hom(C, N): ModCpx, ModMPol → ModMPol`](hom-module-and-ext.md#function-hom-modcpx-modmpol)

  - [`Ext(i, M, N): RngIntElt, ModMPol, ModMPol → ModMPol`](hom-module-and-ext.md#function-ext-rngintelt-modmpol-modmpol)

  - [`Example: Hom`](hom-module-and-ext.md#example-ex-7c5089)

- [Tensor Products and Tor](Tensor.md)

  - [`TensorProduct(M, N): ModMPol, ModMPol → ModMPol, Map`](Tensor.md#function-tensorproduct-modmpol-modmpol)

  - [`TensorProduct(C, N): ModCpx, ModMPol → ModMPol`](Tensor.md#function-tensorproduct-modcpx-modmpol)

  - [`Tor(i, M, N): RngIntElt, ModMPol, ModMPol → ModMPol`](Tensor.md#function-tor-rngintelt-modmpol-modmpol)

  - [`Example: Hom`](Tensor.md#example-ex-ff1e8f)

- [Cohomology Of Coherent Sheaves](cohomology.md)

  - [`CohomologyDimension(M,r,n): ModMPolGrd, RngIntElt, RngIntElt → RngIntElt`](cohomology.md#function-cohomologydimension-modmpolgrd-rngintelt-rngintelt)

  - [`Example: cohom`](cohomology.md#example-ex-f9ee7a)
