next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
QuillenSuslin :: QuillenSuslin

QuillenSuslin -- computes a free basis of a projective module over a polynomial ring

Description

Using the algorithms in Logar-Sturmfels and Fabianska-Quadrat, this package computes a free basis of a projective module over a polynomial ring with coefficients in the rationals, integers, or a finite field. It also provides methods to solve related problems involving completing a unimodular matrix to a square invertible matrix over a polynomial ring with coefficients in the rationals, integers, or a finite field, or a Laurent polynomial ring with coefficients in the rationals or a finite field.

For mathematical background and applications, see

  • A. Fabianska. Algorithmic analysis of presentations of groups and modules. http://darwin.bth.rwth-aachen.de/opus/volltexte/2009/2950/, Jan 2009.
  • T. Y. Lam. Serre's problem on projective modules. Springer Monographs in Mathematics. Springer-Verlag, Berlin, 2006.
  • A. Logar and B. Sturmfels. Algorithms for the Quillen-Suslin theorem. J. Algebra, 145(1):231-239, 1992.
  • A. Fabianska and A. Quadrat. Applications of the Quillen-Suslin theorem to multidimensional systems theory. Grobner bases in control theory and signal processing. Radon Series Comp. Appl. Math (3):23-106, 2007.

Authors

Certification a gold star

Version 1.7 of this package was accepted for publication in volume 5 of the journal The Journal of Software for Algebra and Geometry on 2013-09-18, in the article Computing free bases for projective modules. That version can be obtained from the journal or from the Macaulay2 source code repository, http://github.com/Macaulay2/M2/blob/master/M2/Macaulay2/packages/GraphicalModels.m2, commit number 8a3b2962b97153977eeaf6f92b5f48e246dd8e69.

Version

This documentation describes version 1.7 of QuillenSuslin.

Source code

The source code from which this documentation is derived is in the file QuillenSuslin.m2.

Exports

  • Functions and commands
    • changeVar -- computes a change of variables which make the first entry of a unimodular row monic in a specified variable
    • completeMatrix -- completes a unimodular matrix over a polynomial ring or Laurent polynomial ring to a square invertible matrix
    • computeFreeBasis -- computes a free basis of a projective module
    • getMaxIdeal -- computes a maximal ideal containing a given ideal in a polynomial ring
    • horrocks -- computes a local solution to the unimodular row problem over a localization at a maximal ideal
    • isProjective -- determines if a given module is projective with constant rank over a Noetherian ring
    • isUnimodular -- determines if a given matrix is unimodular
    • maxMinors -- computes the ideal generated by the maximal non-vanishing minors of a given matrix
    • patch -- patch together local solutions to eliminate a variable
    • qsAlgorithm -- computes a solution to the unimodular matrix problem
    • qsIsomorphism -- computes an isomorphism between a free module and a given projective module
  • Symbols
    • CheckProjective -- optional input which gives the user the option to check whether the given module is projective
    • CheckUnimodular -- optional input which gives the user the option to check whether the given matrix is unimodular