Macaulay2 » Documentation
Packages » OIGroebnerBases :: OIGroebnerBases
next | previous | forward | backward | up | index | toc

# OIGroebnerBases -- OI-modules over Noetherian polynomial OI-algebras

## Description

OIGroebnerBases is a package for Gröbner bases, syzygies and free resolutions for submodules of free OI-modules over Noetherian polynomial OI-algebras. For an introduction to the theory of OI-modules, see [3].

Given a Noetherian polynomial OI-algebra $\mathbf{P} := (\mathbf{X}^{\text{OI},1})^{\otimes c}$ for some integer $c > 0$, one can consider free OI-modules $\mathbf{F} := \bigoplus_{i=1}^s\mathbf{F}^{\text{OI}, d_i}$ over $\mathbf{P}$ for integers $d_i\geq 0$.

Gröbner bases for submodules of $\mathbf{F}$ were introduced in [3]. Free resolutions and homological aspects of submodules have been studied in [2,3]. Using the methods of [1], Gröbner bases, syzygy modules, and free resolutions for submodules can be computed with oiGB, oiSyz and oiRes respectively.

References:

[1] M. Morrow and U. Nagel, Computing Gröbner Bases and Free Resolutions of OI-Modules, Preprint, arXiv:2303.06725, 2023.

[2] N. Fieldsteel and U. Nagel, Minimal and cellular free resolutions over polynomial OI-algebras, Preprint, arXiv:2105.08603, 2021.

[3] U. Nagel and T. Römer, FI- and OI-modules with varying coefficients, J. Algebra 535 (2019), 286-322.

### Menu

#### Polynomial OI-algebras

- PolynomialOIAlgebra -- the class of all Noetherian polynomial OI-algebras over a field
- makePolynomialOIAlgebra -- make a PolynomialOIAlgebra object
- VariableOrder -- variable ordering for polynomial OI-algebras
- ColUpRowUp -- column up row up variable order
- ColUpRowDown -- column up row down variable order
- ColDownRowUp -- column down row up variable order
- ColDownRowDown -- column down row down variable order
- RowUpColUp -- row up column up variable order
- RowUpColDown -- row up column down variable order
- RowDownColUp -- row up column up variable order
- RowDownColDown -- row down column down variable order
- net(PolynomialOIAlgebra) -- display a polynomial OI-algebra
- toString(PolynomialOIAlgebra) -- display a polynomial OI-algebra in condensed form
- PolynomialOIAlgebra _ ZZ -- get the $K$-algebra in a specified width of a polynomial OI-algebra

#### Free OI-modules

- FreeOIModule -- the class of all free OI-modules over a polynomial OI-algebra
- FreeOIModuleMap -- the class of all maps between free OI-modules
- ModuleInWidth -- the class of all modules that appear as a component of a free OI-module
- VectorInWidth -- the class of all elements of a free OI-module
- makeFreeOIModule -- make a FreeOIModule object
- DegreeShifts -- grading shifts for free OI-modules
- OIMonomialOrder -- monomial order option for free OI-modules
- installGeneratorsInWidth -- install the generators for a component of a free OI-module in a specified width
- isZero -- check if a free OI-module is zero
- getBasisElements -- get the basis elements of a free OI-module
- getFreeOIModule -- get the free OI-module of an element
- getSchreyerMap -- get the Schreyer map of a free OI-module if it exists
- getWidth -- get the width of an element of a free OI-module
- getRank -- get the rank of a free OI-module
- oiOrbit -- compute the n-orbit of a list of elements of a free OI-module
- isZero(FreeOIModuleMap) -- check if a free OI-module map is zero
- isZero(VectorInWidth) -- check if an element of a free OI-module is zero
- FreeOIModuleMap VectorInWidth -- apply a free OI-module map to an element
- net(FreeOIModule) -- display a free OI-module
- net(FreeOIModuleMap) -- display a free OI-module map source and target
- net(ModuleInWidth) -- display a component of a free OI-module in a specified width
- net(VectorInWidth) -- display an element of a free OI-module
- image(FreeOIModuleMap) -- get the basis element images of a free OI-module map
- toString(FreeOIModule) -- display a free OI-module in condensed form
- FreeOIModule _ ZZ -- get the width n component of a free OI-module
- degree(VectorInWidth) -- get the degree of an element of a free OI-module
- use(ModuleInWidth) -- use a component of a free OI-module
- terms(VectorInWidth) -- get the terms of an element of a free OI-module
- leadTerm(VectorInWidth) -- get the lead term of an element of a free OI-module
- leadMonomial(VectorInWidth) -- get the lead monomial of an element of a free OI-module
- leadCoefficient(VectorInWidth) -- get the lead coefficient of an element of a free OI-module
- Number * VectorInWidth -- multiply an element of a free OI-module by a number
- VectorInWidth + VectorInWidth -- add two elements of a free OI-module
- RingElement * VectorInWidth -- multiply an element of a free OI-module by a ring element
- - VectorInWidth -- multiply an element of a free OI-module by -1
- VectorInWidth - VectorInWidth -- subtract an element of a free OI-module from another
- describe(FreeOIModuleMap) -- display a free OI-module map
- isHomogeneous(FreeOIModuleMap) -- checks if a free OI-module map is homogeneous
- isHomogeneous(VectorInWidth) -- check if an element of a free OI-module is homogeneous

#### OI-Gröbner bases

- oiGB -- compute a Gröbner basis for a submodule of a free OI-module
- minimizeOIGB -- minimize an OI-Gröbner basis
- reduceOIGB -- reduce an OI-Gröbner basis
- isOIGB -- check if a list of elements of a free OI-module forms a Gröbner basis

#### OI-syzygies

- oiSyz -- compute a Gröbner basis for the syzygy module of a submodule of a free OI-module

#### OI-resolutions

- OIResolution -- the class of all resolutions of submodules of free OI-modules
- oiRes -- compute an OI-resolution
- ranks -- display the ranks of an OI-resolution
- restrictedRanks -- display the ranks of an OI-resolution restricted to a given width
- TopNonminimal -- option for minimizing the top Gröbner basis of an OI-resolution
- isComplex -- verify that an OI-resolution is a complex
- describeFull -- describe an OI-resolution and the maps
- describe(OIResolution) -- describe an OI-resolution
- net(OIResolution) -- display an OI-resolution
- OIResolution _ ZZ -- get a module of an OI-resolution is specified homological degree

## Author

- Michael Morrow <michaelhmorrow98@gmail.com>

## Version

This documentation describes version 1.0.0 of OIGroebnerBases, released September 6, 2023.

## Citation

If you have used this package in your research, please cite it as follows:

    @misc{OIGroebnerBasesSource,
      title = {{OIGroebnerBases: OI-modules over Noetherian polynomial OI-algebras. Version~1.0.0}},
      author = {Michael Morrow},
      howpublished = {A \emph{Macaulay2} package available at
        "https://github.com/morrowmh/OIGroebnerBases"}
    }

## Exports

- Types
  - FreeOIModule -- the class of all free OI-modules over a polynomial OI-algebra
  - FreeOIModuleMap -- the class of all maps between free OI-modules
  - ModuleInWidth -- the class of all modules that appear as a component of a free OI-module
  - OIResolution -- the class of all resolutions of submodules of free OI-modules
  - PolynomialOIAlgebra -- the class of all Noetherian polynomial OI-algebras over a field
  - VectorInWidth -- the class of all elements of a free OI-module
- Functions and commands
  - describeFull -- describe an OI-resolution and the maps
  - getBasisElements -- get the basis elements of a free OI-module
  - getFreeOIModule -- get the free OI-module of an element
  - getRank -- get the rank of a free OI-module
  - getSchreyerMap -- get the Schreyer map of a free OI-module if it exists
  - getWidth -- get the width of an element of a free OI-module
  - installGeneratorsInWidth -- install the generators for a component of a free OI-module in a specified width
  - isComplex -- verify that an OI-resolution is a complex
  - isOIGB -- check if a list of elements of a free OI-module forms a Gröbner basis
  - isZero -- check if a free OI-module is zero
  - makeFreeOIModule -- make a FreeOIModule object
  - makePolynomialOIAlgebra -- make a PolynomialOIAlgebra object
  - minimizeOIGB -- minimize an OI-Gröbner basis
  - oiGB -- compute a Gröbner basis for a submodule of a free OI-module
  - oiOrbit -- compute the n-orbit of a list of elements of a free OI-module
  - oiRes -- compute an OI-resolution
  - oiSyz -- compute a Gröbner basis for the syzygy module of a submodule of a free OI-module
  - ranks -- display the ranks of an OI-resolution
  - reduceOIGB -- reduce an OI-Gröbner basis
  - restrictedRanks -- display the ranks of an OI-resolution restricted to a given width
- Methods
  - - VectorInWidth -- multiply an element of a free OI-module by -1
  - degree(VectorInWidth) -- get the degree of an element of a free OI-module
  - describe(FreeOIModuleMap) -- display a free OI-module map
  - describe(OIResolution) -- describe an OI-resolution
  - `describeFull(OIResolution)` -- see describeFull -- describe an OI-resolution and the maps
  - FreeOIModule _ ZZ -- get the width n component of a free OI-module
  - FreeOIModuleMap VectorInWidth -- apply a free OI-module map to an element
  - `getBasisElements(FreeOIModule)` -- see getBasisElements -- get the basis elements of a free OI-module
  - `getFreeOIModule(VectorInWidth)` -- see getFreeOIModule -- get the free OI-module of an element
  - `getRank(FreeOIModule)` -- see getRank -- get the rank of a free OI-module
  - `getSchreyerMap(FreeOIModule)` -- see getSchreyerMap -- get the Schreyer map of a free OI-module if it exists
  - `getWidth(VectorInWidth)` -- see getWidth -- get the width of an element of a free OI-module
  - image(FreeOIModuleMap) -- get the basis element images of a free OI-module map
  - `installGeneratorsInWidth(FreeOIModule,ZZ)` -- see installGeneratorsInWidth -- install the generators for a component of a free OI-module in a specified width
  - `isComplex(OIResolution)` -- see isComplex -- verify that an OI-resolution is a complex
  - isHomogeneous(FreeOIModuleMap) -- checks if a free OI-module map is homogeneous
  - isHomogeneous(VectorInWidth) -- check if an element of a free OI-module is homogeneous
  - `isOIGB(List)` -- see isOIGB -- check if a list of elements of a free OI-module forms a Gröbner basis
  - `isZero(FreeOIModule)` -- see isZero -- check if a free OI-module is zero
  - isZero(FreeOIModuleMap) -- check if a free OI-module map is zero
  - isZero(VectorInWidth) -- check if an element of a free OI-module is zero
  - leadCoefficient(VectorInWidth) -- get the lead coefficient of an element of a free OI-module
  - leadMonomial(VectorInWidth) -- get the lead monomial of an element of a free OI-module
  - leadTerm(VectorInWidth) -- get the lead term of an element of a free OI-module
  - `makeFreeOIModule(Symbol,List,PolynomialOIAlgebra)` -- see makeFreeOIModule -- make a FreeOIModule object
  - `makePolynomialOIAlgebra(ZZ,Symbol,Ring)` -- see makePolynomialOIAlgebra -- make a PolynomialOIAlgebra object
  - `minimizeOIGB(List)` -- see minimizeOIGB -- minimize an OI-Gröbner basis
  - net(FreeOIModule) -- display a free OI-module
  - net(FreeOIModuleMap) -- display a free OI-module map source and target
  - net(ModuleInWidth) -- display a component of a free OI-module in a specified width
  - net(OIResolution) -- display an OI-resolution
  - net(PolynomialOIAlgebra) -- display a polynomial OI-algebra
  - net(VectorInWidth) -- display an element of a free OI-module
  - Number * VectorInWidth -- multiply an element of a free OI-module by a number
  - `oiGB(List)` -- see oiGB -- compute a Gröbner basis for a submodule of a free OI-module
  - `oiOrbit(List,ZZ)` -- see oiOrbit -- compute the n-orbit of a list of elements of a free OI-module
  - `oiRes(List,ZZ)` -- see oiRes -- compute an OI-resolution
  - OIResolution _ ZZ -- get a module of an OI-resolution is specified homological degree
  - `oiSyz(List,Symbol)` -- see oiSyz -- compute a Gröbner basis for the syzygy module of a submodule of a free OI-module
  - PolynomialOIAlgebra _ ZZ -- get the $K$-algebra in a specified width of a polynomial OI-algebra
  - `ranks(OIResolution)` -- see ranks -- display the ranks of an OI-resolution
  - `reduceOIGB(List)` -- see reduceOIGB -- reduce an OI-Gröbner basis
  - `restrictedRanks(OIResolution,ZZ)` -- see restrictedRanks -- display the ranks of an OI-resolution restricted to a given width
  - RingElement * VectorInWidth -- multiply an element of a free OI-module by a ring element
  - terms(VectorInWidth) -- get the terms of an element of a free OI-module
  - toString(FreeOIModule) -- display a free OI-module in condensed form
  - toString(PolynomialOIAlgebra) -- display a polynomial OI-algebra in condensed form
  - use(ModuleInWidth) -- use a component of a free OI-module
  - VectorInWidth + VectorInWidth -- add two elements of a free OI-module
  - VectorInWidth - VectorInWidth -- subtract an element of a free OI-module from another
- Symbols
  - ColDownRowDown -- column down row down variable order
  - ColDownRowUp -- column down row up variable order
  - ColUpRowDown -- column up row down variable order
  - ColUpRowUp -- column up row up variable order
  - DegreeShifts -- grading shifts for free OI-modules
  - OIMonomialOrder -- monomial order option for free OI-modules
  - RowDownColDown -- row down column down variable order
  - RowDownColUp -- row up column up variable order
  - RowUpColDown -- row up column down variable order
  - RowUpColUp -- row up column up variable order
  - TopNonminimal -- option for minimizing the top Gröbner basis of an OI-resolution
  - VariableOrder -- variable ordering for polynomial OI-algebras

## For the programmer

The object OIGroebnerBases is a package, defined in OIGroebnerBases.m2.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/OIGroebnerBases.m2:1338:0.