Involutive

 

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

Basic commands:
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


Auxiliary commands:
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.

Installing Involutive

  1. 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".
  2. Type
    libname;
    in Maple.
  3. Write
    libname := "the global path of the above directory Involutive", the result of step 2:
  4. Try
    with(Involutive);
    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.
  5. (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.