# Introduction to *QuillenSuslin*

*QuillenSuslin* is a Maple implementation of a constructive version of the Quillen-Suslin Theorem.
It provides an algorithm which computes a basis of a free module over a polynomial ring.
In terms of matrices, this algorithm completes a unimodular rectangular matrix (e.g. a unimodular row) to an invertible matrix over the given polynomial ring with rational or integer coefficients. The package was also extended with Park's Algorithm to deal with unimodular rows over Laurent polynomial rings and with heuristic methods for localizations of polynomial rings.

The main idea of the algorithm was inspired by the article of A. Logar and B. Sturmfels (see References). Nevertheless many important changes were introduced. The implementation was improved by some heuristic methods, which significantly simplify the computation in many cases.
To our knowledge, the *QuillenSuslin* package is the only package dedicated to the implementation of the Quillen-Suslin theorem and its applications to mathematical physics, control theory and signal processing.

The package QuillenSuslin is compatible with the package homalg, where it has been already used for computation of bases of free modules over polynomial rings.
An OreModules version of the *QuillenSuslin* package prepared with support of
Alban Quadrat and Daniel Robertz
will be also available soon.

The package *QuillenSuslin* uses the package Involutive for computation in the polynomial ring.

The first version of the implementation is available for Maple 9 and higher versions. Please contact the autor of the package, if you have any related problems, questions or interesting examples.

Author: Anna Fabiańska, Lehrstuhl B für Mathematik , RWTH Aachen, Germany.

Special thanks to Wilhelm Plesken,
Alban Quadrat and Daniel Robertz and Mohamed Barakat.