The Maple package Involutive implements the involutive basis technique of V. P. Gerdt and Y. A. Blinkov for ideals of polynomial rings and more generally for submodules of free modules over a polynomial ring. It also provides an interface to a C++ implementation of the involutive basis technique and to ginv.
Involutive computes Janet bases and Janet-like Gröbner bases. The coefficient domain for the polynomial ring may be any field existing in Maple or can be chosen to be the ring of rational integers. Among the monomial orderings which are available in Involutive are the degree reverse lexicographical one, the pure lexicographical one, block orderings and their extensions to "term over position" and "position over term" orderings in the case of modules. Four involutive criteria are implemented to avoid unnecessary reductions during involutive basis computations.
For more details, cf. [Blinkov et al. 2003] and [Robertz 2007].
Following is a table of the main commands of Involutive.
Main commands of Involutive
|InvolutiveBasis||compute the minimal Janet basis of a submodule of a free module over a polynomial ring|
|InvolutiveBasisFast||interface to a C++ program solving the same task|
|InvolutiveBasisGINV||interface to ginv solving the same task|
|GroebnerBasis||compute the minimal Gröbner basis of a submodule of a free module over a polynomial ring|
|GroebnerBasisFast||interface to a C++ program solving the same task|
|GroebnerBasisGINV||interface to ginv solving the same task|
|PolTabVar||display Janet basis with leading monomials and multiplicative variables|
|PolZeroSets||return the coefficients by which the involutive basis algorithm had to divide|
|PolHilbertSeries||Hilbert series of the factor module|
|FactorModuleBasis||generalized Hilbert series of the factor module|
|PolInvReduce||return the normal form of a module element w.r.t. a Janet basis|
|PolInvReduceFast||interface to a C++ program solving the same task|
|PolInvReduceGINV||interface to ginv solving the same task|
|Syzygies||return a generating set of syzygies for a list of generators of a submodule of a free module over a polynomial ring|
|SyzygyModule||return the minimal Janet basis for the module of syzygies|
|SyzygyModuleFast||interface to a C++ program solving the same task|
|SyzygyModuleGINV||interface to ginv solving the same task|
|Further commands for the computation of involutive bases:|
|AddRhs||add unit vectors as right hand sides to the entries of a list|
|AssertInvBasis||assure the system that given (lists of) polynomials form a Janet basis|
|InvolutivePreprocess||find possibilities to solve relations of a finitely presented module over a polynomial ring for some variables|
|Substitute||eliminate variables from a system of polynomial equations by substitution|
|Commands for special applications:|
|PolMinPoly||minimal polynomial of an element of the residue class ring|
|PolRepres||matrix representation with respect to the standard factor module basis|
|PolResolution||return free resolution of a factor module of a free module over a polynomial ring|
|Various invariants derivable from PolHilbertSeries:|
|PolCartanCharacter||Cartan characters of the factor module|
|PolHilbertPolynomial||graded Hilbert polynomial of the factor module|
|PolHilbertFunction||graded Hilbert function of the factor module|
|PolHP||filtered Hilbert polynomial of the factor module|
|PolHF||filtered Hilbert function of the factor module|
|PolIndexRegularity||index of regularity of the graded module of a residue class module|
|SubmoduleBasis||generalized Hilbert series of the submodule|
|SubmoduleHilbertSeries||Hilbert series of the submodule|
|SubmoduleHilbertPolynomial||graded Hilbert polynomial of the submodule|
|SubmoduleHilbertFunction||graded Hilbert function of the submodule|
|SubmoduleHP||filtered Hilbert polynomial of the submodule|
|SubmoduleHF||filtered Hilbert function of the submodule|
|Commands for module theory:|
|PolIntersection||intersect two submodules of a free module over a polynomial ring|
|PolSubFactor||compute presentation of a subfactor of a finitely presented module over a polynomial ring|
|PolHom||compute presentation of the module of homomorphisms between two finitely presented modules over a polynomial ring|
|PolHomHom||compute presentation of double dual of a finitely presented module over a polynomial ring|
|PolDefect||Multiply two or more matrices over D|
|PolKernel||compute presentation of the kernel of a module homomorphism|
|PolCokernel||compute presentation of the cokernel of a module homomorphism|
|PolExt1||compute presentation of the first extension group with values in the ring of a finitely presented module over a polynomial ring|
|PolExtn||compute presentation of the n-th extension group with values in the ring of a finitely presented module over a polynomial ring|
|PolParametrization||Multiply two or more matrices over D|
|PolTorsion||compute presentation of the torsion submodule of a finitely presented module over a polynomial ring|
|InvolutiveOptions||set up options for the current Involutive session|
|JanetGraph||return a description of the Janet graph in a list|
|LeadingMonomial||return the leading monomial of a given ring / module element|
|Stats||display statistical information about the last involutive basis computation|
Download Maple package Involutive
Involutive is available for Maple 9 and Maple 10. (For other Maple versions, please contact the authors.)
- Involutive for Maple 9: Involutive.ind, Involutive.lib, Involutive.hdb or Involutive.ind.gz, Involutive.lib.gz, Involutive.hdb.gz or Involutive.ind.zip, Involutive.lib.zip, Involutive.hdb.zip
- Involutive for Maple 10: Involutive.ind, Involutive.lib, Involutive.hdb or Involutive.ind.gz, Involutive.lib.gz, Involutive.hdb.gz or Involutive.ind.zip, Involutive.lib.zip, Involutive.hdb.zip
- (optional) C++ program implementing the involutive basis technique (Linux binary): JB or JB.gz or JB.zip
- All Involutive help pages in one ps / pdf file: involutive_manual.ps, involutive_manual.pdf
After downloading the Maple package, you can follow the installation guide below.
After installing Involutive, it would be helpful if you could send us a short e-mail which explains for what purpose Involutive is beneficial for you and which Maple version you use.
If you encounter any problem with Involutive, don't hesitate to contact us.
- Copy the Involutive library files "Involutive.ind", "Involutive.lib" and the Involutive help data base "Involutive.hdb" for your Maple version (see download) into a directory called "Involutive".
libname := "the global path of the above directory Involutive", the result of step 2:
Moreover, help pages are available for the functions of Involutive, see ?Involutive.
If you encounter a problem, then most probably the definition of libname in step 3 is wrong in the sense that its value does not point to the correct directory where your library files reside.
- (optional) Copy the binary program file "JB" into a directory which is included in the variable $PATH. The Involutive commands invoking this program are InvolutiveBasisFast, PolInvReduceFast, SyzygyModuleFast, and GroebnerBasisFast.
A reasonable way to check your installation is to run some examples from the Involutive help pages.
If you still have problems concerning the installation of Involutive, please contact us.