# Janet

The Maple package Janet implements the involutive basis technique of V. P. Gerdt and Y. A. Blinkov for computing Janet bases and Janet-like Gröbner bases for linear systems of partial differential equations. It works with left modules over differential algebras defined over differential fields of characteristic zero which exist in Maple.

Janet also provides a number of tools for dealing with differential expressions and differential operators. A generic linearization for a non-linear system of partial differential equations can be computed. Some procedures translate differential expressions into jet notation and vice versa. For the Weyl algebra representing ordinary differential operators in characteristic zero whose coefficients are rational functions, an elementary divisor algorithm [Rehm 2001/2002], [Cohn 1985] is implemented to compute the Jacobson normal form of a matrix with entries in this Weyl algebra.

Among the orderings for differential monomials which are available in Janet are the degree reverse lexicographical one, the pure lexicographical one, block orderings and their extensions to the case of more than one dependent variable which correspond to "term over position" and "position over term" orderings in the polynomial case. 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 Janet.

Main commands of *Janet*

Basic commands: | |
---|---|

JanetBasis | compute the minimal Janet basis for a linear system of partial differential equations |

DiffGroebnerBasis | compute the minimal Groebner basis for a linear system of partial differential equations |

InvReduce | reduce (linear) differential expressions w.r.t. a Janet basis |

PrincDeriv | return the list of principal derivatives of a linear system of PDEs |

ParamDeriv | return the list of parametric derivatives of a linear system of PDEs |

HilbertSeries | generating function for the number of parametric derivatives of given order |

Denominators | return the functions by which the involutive basis algorithm had to divide |

ZeroSets | return the functions by which the involutive basis algorithm had to divide, the leading coefficients of the Janet basis, and their zeros |

SolSeries | (truncated) formal power series solutions for a linear system of PDEs |

PolySol | polynomial solutions for a linear system of PDEs |

Commands for special applications: | |
---|---|

CompCond | compatibility conditions for solvability of an affine system of PDEs |

CompCondBasis | compute the minimal Janet basis for the compatibility conditions of an affine system of PDEs |

Resolution | iterated computation of compatibility conditions |

SyzOp | return compatibility conditions as a differential operator |

Various invariants derivable from HilbertSeries: | |
---|---|

CartanCharacter | Cartan characters for a linear system of PDEs |

HilbertPolynomial | graded Hilbert polynomial for the parametric derivatives |

HilbertFunction | graded Hilbert function for the parametric derivatives |

HP | filtered Hilbert polynomial for the parametric derivatives |

HF | filtered Hilbert function for the parametric derivatives |

IndexRegularity | index of regularity for the parametric derivatives |

EqBasis | generalized Hilbert series of the module of equations |

EqHilbertSeries | Hilbert series of the module of equations |

EqHilbertPolynomial | graded Hilbert polynomial of the module of equations |

EqHilbertFunction | graded Hilbert function of the module of equations |

EqHP | filtered Hilbert polynomial of the module of equations |

EqHF | filtered Hilbert function of the module of equations |

Translation between polynomials and differential expressions: | |
---|---|

Diff2Pol | translate a linear differential expression into a polynomial in the partial differential operators |

Pol2Diff | translate a polynomial into a linear differential expression |

Commands dealing with differential operators: | |
---|---|

Diff2Op | translate linear differential expression into a differential operator in matrix form |

Pol2Op | translate a polynomial in the partial differential operators into a differential operator in matrix form |

JAdjoint | compute the adjoint differential operator |

CmpOp | compose two differential operators in matrix form |

AppOp | apply a differential operator in matrix form to a vector of functions |

ElementaryDivisors | compute elementary divisor form (Jacobson normal form) of a matrix of ordinary differential operators |

Commands involving jet notation: | |
---|---|

Diff2Ind | translate differential expression into jet notation |

Ind2Diff | translate jet expression into differential expression |

Pol2Ind | translate polynomial (in partial differential operators) into jet expression |

Commands for control theory: | |
---|---|

Linearize | generic linearization for a non-linear system of partial differential equations |

FlatOutput | if possible, compute a flat output for a linear partial differential control system |

Parametrization | if possible, compute a linear differential operator whose image equals the kernel of a given linear differential operator |

Torsion | compute a generating set for the autonomous elements of a linear partial differential control system and a generating set of equations they satisfy |

Auxiliary commands: | |
---|---|

JanetOptions | set up options for the current Janet session |

LeadingDeriv | return the leading differential monomial of a given linear differential expression |

AssertJanetBasis | assure the system that given (lists of) polynomials form a Janet basis |

JanetStats | display statistical information about the last involutive basis computation |

Download Maple package Janet

Janet is available for Maple 9 and Maple 10. (For other Maple versions, please contact the authors.)

- Janet for Maple 9: Janet.ind, Janet.lib, Janet.hdb or Janet.ind.gz, Janet.lib.gz, Janet.hdb.gz or Janet.ind.zip, Janet.lib.zip, Janet.hdb.zip
- Janet for Maple 10: Janet.ind, Janet.lib, Janet.hdb or Janet.ind.gz, Janet.lib.gz, Janet.hdb.gz or Janet.ind.zip, Janet.lib.zip, Janet.hdb.zip
- All Janet help pages in one ps / pdf file: janet_manual.ps, janet_manual.pdf

After downloading the Maple package, you can follow the installation guide below.

After installing Janet, it would be helpful if you could send us a short e-mail which explains for what purpose Janet is beneficial for you and which Maple version you use.

If you encounter any problem with Janet, don't hesitate to contact us.

Installing Janet

- Copy the Janet library files "Janet.ind", "Janet.lib" and the Janet help data base "Janet.hdb" for your Maple version (see download) into a directory called "Janet".
- Type

libname;

in Maple. - Write

libname := "the global path of the directory Janet", the result of step 2: - Try

with(Janet);

Moreover, help pages are available for the functions of Janet, see ?Janet.

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.

A reasonable way to check your installation is to run some examples from the Janet help pages.

If you still have problems concerning the installation of Janet, please contact us.