# CartanKuranishi(JB, D)¶

- JB: JetBundleCategory
- D: JetBundleFunctionCategory JB

CartanKuranishi is a package for the completion of a given differential equation to an involutive equation. Procedures for Cartan characters and Hilbert polynomial are also provided. Based on the Cartan-Kuranishi theorem as it is used in formal theory.

- alpha: (NonNegativeInteger, List NonNegativeInteger) -> List NonNegativeInteger
`alpha(q, beta)`

computes the Cartan characters for a differential equation of order`q`

and with characters`beta`

.

- alphaHilbert: SparseUnivariatePolynomial Fraction Integer -> List NonNegativeInteger
`alphaHilbert(hp)`

computes the Cartan characters for the Hilbert polynomial`hp`

.

- arbFunctions: (NonNegativeInteger, Integer, List NonNegativeInteger) -> List Integer
`arbFunctions(q, j, cc)`

uses the Cartan characters`cc`

to compute the number of arbitrary functions of differentiation order`j`

in the general solution of a differential equation of order`q`

.

- bound: (NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> NonNegativeInteger
`bound(n, m, q)`

computes an upper bound for the number of prolongations needed to make the symbol of an equation of order`q`

with`n`

independent and`m`

dependent variables involutive.

- complete2: JetDifferentialEquation(JB, D) -> Record(IDe: JetDifferentialEquation(JB, D), ISys: List D, Order: NonNegativeInteger, NumProj: NonNegativeInteger, Dim: NonNegativeInteger, CarChar: List NonNegativeInteger)
`complete2(de)`

is like complete but returns the involutive equation`IDe`

, a basis`ISys`

for the involutive system without prolongations, its order`Order`

, the number`NumProj`

of needed projections and the Cartan characters`CarChar`

.

- complete: JetDifferentialEquation(JB, D) -> Void
`complete(de)`

completes`de`

to an involutive equation. No result is returned; the display depends of the setting of the output flags with setOutput.

- gauge: (NonNegativeInteger, Integer, List NonNegativeInteger) -> List Integer
`gauge(q, j, gamma)`

computes the gauge corrections to the number of arbitrary functions of differentiation order`j`

for a system of order`q`

with`gamma`

gauge functions.

- gaugeHilbert: (NonNegativeInteger, List NonNegativeInteger) -> SparseUnivariatePolynomial Fraction Integer
`gaugeHilbert(q, gamma)`

computes the gauge correction to the Hilbert polynomial for a system of order`q`

with`gamma`

gauge functions.

- hilbert: List NonNegativeInteger -> SparseUnivariatePolynomial Fraction Integer
`hilbert(cc)`

computes the Hilbert polynomial to the Cartan characters`cc`

.

- setOutMode: NonNegativeInteger -> NonNegativeInteger
`setOutput(i)`

controls amount of generated output during the completion algorithm:`i = 0`

–> no display,`i = 1`

–> result is displayed,`i = 2`

–> Cartan characters are displayed,`i = 3`

–> integrability conditions are traced,`i = 4`

–> intermediate dimensions are traced,`i = 5`

–> all intermediate systems are traced,`i = 6`

–> all intermediate systems and symbols are traced, if`i > 10`

then TeX output is produced. Default is 0. The old value is returned.

- setRedMode: NonNegativeInteger -> NonNegativeInteger
`setRedMode(i)`

sets the flag for the reduction mode. Returns old value. Current values are:`i = 0`

–> No reduction of integrability conditions etc.`i = 1`

–> Autoreduction of complete system and reduction of all integrability conditions. Default is 0.

- setSimpMode: NonNegativeInteger -> NonNegativeInteger
`setSimpMode(i)`

sets the simplification mode used in`JetDifferentialEquation`

. Returns old value.

- stirling: (NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> NonNegativeInteger
`stirling(i, k, q)`

computes the corresponding modified Stirling number.