9.1 Basis

class Basis
Specifies an involutive basis. The last can be constructed by the function basis only.

The class Basis contains the following methods:

lengthIB( )
returns the number of elements in an involutive basis.

lengthGB( )
returns the number of elements in a reduced Gröbner basis.

numCriterion( )
returns the number of criteria applied to detect zero-redundancy of prolongations (S-polynomials) in the course of the basis construction.

numSpoly( )
returns the number of S-polynomials computed.

numReduction( )
returns the number of of elementary reductions performed.

userTime( )
returns the CPU time spent for the basis computation.

sysTime( )
returns the system time spent for the basis computation.

realTime( )
returns the real time spent for the basis computation.

hilbertPolynomial( )
returns the string representing the Hilbert polynomial of the ideal generated by the involutive basis computed.

iterStatistics( )
returns the iterator over statistical information on the run of the involutive algorithm. The statistical output is the 4-tuple:

iterIB( )
returns the iterator over the involutive basis represented by the objects in the class Poly (see 6.2).

iterGB( )
returns the iterator over the Gröbner basis represented by the objects of class Poly (see 6.2).

iterLmIB( )
returns the iterator over the leading monomials in the involutive basis which are represented by the objects of class Monom (see 4.2).

iterLmGB( )
returns the iterator over the leading monomials in the Gröbner basis which are represented by the objects of class Monom (see 4.2).

find( monom)
searches for an involutive divisor for a given monomial among the leading monomials in the basis. monom can represent either the string that initializes the monomial or the object in class Monom (see 4.2).

The monomials in the basis and monom must have the same interface.

nfHead( poly)
Provides the head reduction of poly modulo the basis. poly can represent either the initializing string for the polynomial or the object of class Poly (see 6.2).

Polynomials in the basis and poly must have the same interface.

isNfHead( poly)
Verifies weather poly is head reduced modulo the basis and returns True if it is the case, and False otherwise. poly can represent either the initializing string for the polynomial the object of class Poly (see 6.2).

Polynomials in the basis and poly must have the same interface.

nfTail( poly)
Performs the tail reduction of poly modulo the basis without the head reduction. poly can represent either the initializing string for the polynomial the object of class Poly (see 6.2).

Polynomials in the basis and poly must have the same interface.

isNfTail( poly)
Verifies weather poly is tail reduced modulo the basis and returns True if it is the case, and False otherwise. poly can represent either the initializing string for the polynomial the object of class Poly (see 6.2).

Polynomials in the basis and poly must have the same interface.

The class Basis can be an argument of the following functions:

len( basis)
returns the number of elements in the involutive basis basis.

[]( basis, i)
returns the i-th term in the involutive basis, and the term is represented by objects of class Wrap (see 7.2)

The basis is given by the following iterator of Python:

import ginv

st = ginv.SystemType("Polynomial")
im = ginv.MonomInterface("Lex", st, ['x', 'y', 'z'])
ic = ginv.CoeffInterface("GmpZ", st)
ip = ginv.PolyInterface("PolyList", st, im, ic)
iw = ginv.WrapInterface("CritPartially", ip)
iD = ginv.DivisionInterface("Janet", iw)

basis = ginv.basisBuild("TQ", iD, \
  ['x^3 - y^2 + z - 1',\
   'y^3 - z^2 + x - 1',\
   'z^3 - x^2 + y - 1'])

for w in basis: print w.lm(),
As a result the list of leading monomials in the involutive basis "x y z27" is to be printed out.