# InvolutiveBases -- Methods for Janet bases and Pommaret bases in Macaulay 2

## Description

InvolutiveBases is a package which provides routines for dealing with Janet and Pommaret bases.

Janet bases can be constructed from given Gr\"obner bases. It can be checked whether a Janet basis is a Pommaret basis. Involutive reduction modulo a Janet basis can be performed. Syzygies and free resolutions can be computed using Janet bases. A convenient way to use this strategy is to use an optional argument for resolution, see Involutive.

Some references:

• J. Apel, The theory of involutive divisions and an application to Hilbert function computations. J. Symb. Comp. 25(6), 1998, pp. 683-704.
• V. P. Gerdt, Involutive Algorithms for Computing Gr\"obner Bases. In: Cojocaru, S. and Pfister, G. and Ufnarovski, V. (eds.), Computational Commutative and Non-Commutative Algebraic Geometry, NATO Science Series, IOS Press, pp. 199-225.
• V. P. Gerdt and Y. A. Blinkov, Involutive bases of polynomial ideals. Minimal involutive bases. Mathematics and Computers in Simulation 45, 1998, pp. 519-541 resp. 543-560.
• M. Janet, Leçons sur les systèmes des équations aux dérivées partielles. Cahiers Scientifiques IV. Gauthiers-Villars, Paris, 1929.
• J.-F. Pommaret, Partial Differential Equations and Group Theory. Kluwer Academic Publishers, 1994.
• W. Plesken and D. Robertz, Janet's approach to presentations and resolutions for polynomials and linear pdes. Archiv der Mathematik 84(1), 2005, pp. 22-37.
• D. Robertz, Janet Bases and Applications. In: Rosenkranz, M. and Wang, D. (eds.), Gr\"obner Bases in Symbolic Analysis, Radon Series on Computational and Applied Mathematics 2, de Gruyter, 2007, pp. 139-168.
• W. M. Seiler, A Combinatorial Approach to Involution and delta-Regularity: I. Involutive Bases in Polynomial Algebras of Solvable Type. II. Structure Analysis of Polynomial Modules with Pommaret Bases. Preprints, arXiv:math/0208247 and arXiv:math/0208250.

## Version

This documentation describes version 1.10 of InvolutiveBases.

## Source code

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

## Exports

• Types
• Functions and commands
• basisElements -- extract the matrix of generators from an involutive basis or factor module basis
• factorModuleBasis -- enumerate standard monomials
• invNoetherNormalization -- Noether normalization
• invReduce -- compute normal form modulo involutive basis by involutive reduction
• invSyzygies -- compute involutive basis of syzygies
• isPommaretBasis -- check whether or not a given Janet basis is also a Pommaret basis
• janetBasis -- compute Janet basis for an ideal or a submodule of a free module
• janetMultVar -- return table of multiplicative variables for given module elements as determined by Janet division
• janetResolution -- construct a free resolution for a given ideal or module using Janet bases
• multVar -- extract the sets of multiplicative variables for each generator (in several contexts)
• pommaretMultVar -- return table of multiplicative variables for given module elements as determined by Pommaret division
• Methods
• "basisElements(FactorModuleBasis)" -- see basisElements -- extract the matrix of generators from an involutive basis or factor module basis
• "basisElements(InvolutiveBasis)" -- see basisElements -- extract the matrix of generators from an involutive basis or factor module basis
• "factorModuleBasis(InvolutiveBasis)" -- see factorModuleBasis -- enumerate standard monomials
• "invNoetherNormalization(GroebnerBasis)" -- see invNoetherNormalization -- Noether normalization
• "invNoetherNormalization(Ideal)" -- see invNoetherNormalization -- Noether normalization
• "invNoetherNormalization(InvolutiveBasis)" -- see invNoetherNormalization -- Noether normalization
• "invNoetherNormalization(Matrix)" -- see invNoetherNormalization -- Noether normalization
• "invNoetherNormalization(Module)" -- see invNoetherNormalization -- Noether normalization
• "invReduce(Matrix,InvolutiveBasis)" -- see invReduce -- compute normal form modulo involutive basis by involutive reduction
• "invReduce(RingElement,InvolutiveBasis)" -- see invReduce -- compute normal form modulo involutive basis by involutive reduction
• "invSyzygies(InvolutiveBasis)" -- see invSyzygies -- compute involutive basis of syzygies
• "isPommaretBasis(InvolutiveBasis)" -- see isPommaretBasis -- check whether or not a given Janet basis is also a Pommaret basis
• "janetBasis(ChainComplex,ZZ)" -- see janetBasis -- compute Janet basis for an ideal or a submodule of a free module
• "janetBasis(GroebnerBasis)" -- see janetBasis -- compute Janet basis for an ideal or a submodule of a free module
• "janetBasis(Ideal)" -- see janetBasis -- compute Janet basis for an ideal or a submodule of a free module
• "janetBasis(Matrix)" -- see janetBasis -- compute Janet basis for an ideal or a submodule of a free module
• "janetMultVar(List)" -- see janetMultVar -- return table of multiplicative variables for given module elements as determined by Janet division
• "janetMultVar(Matrix)" -- see janetMultVar -- return table of multiplicative variables for given module elements as determined by Janet division
• "janetResolution(Ideal)" -- see janetResolution -- construct a free resolution for a given ideal or module using Janet bases
• "janetResolution(InvolutiveBasis)" -- see janetResolution -- construct a free resolution for a given ideal or module using Janet bases
• "janetResolution(Matrix)" -- see janetResolution -- construct a free resolution for a given ideal or module using Janet bases
• "janetResolution(Module)" -- see janetResolution -- construct a free resolution for a given ideal or module using Janet bases
• "multVar(ChainComplex,ZZ)" -- see multVar -- extract the sets of multiplicative variables for each generator (in several contexts)
• "multVar(FactorModuleBasis)" -- see multVar -- extract the sets of multiplicative variables for each generator (in several contexts)
• "multVar(InvolutiveBasis)" -- see multVar -- extract the sets of multiplicative variables for each generator (in several contexts)
• "pommaretMultVar(List)" -- see pommaretMultVar -- return table of multiplicative variables for given module elements as determined by Pommaret division
• "pommaretMultVar(Matrix)" -- see pommaretMultVar -- return table of multiplicative variables for given module elements as determined by Pommaret division
• Symbols
• Involutive -- compute a (usually non-minimal) resolution using involutive bases
• multVars -- key in the cache table of a differential in a Janet resolution
• PermuteVariables -- ensure that the last dim(I) var's are algebraically independent modulo I

## For the programmer

The object InvolutiveBases is .