So far we have explained Groebner basis computation in commutative polynomial rings. However Groebner basis can be considered in more general non-commutative rings. Weyl algebra is one of such rings and Risa/Asir implements fundamental operations in Weyl algebra and Groebner basis computation in Weyl algebra.
The n
dimensional Weyl algebra over a field K
,
D=K<x1,...,xn,D1,...,Dn>
is a non-commutative
algebra which has the following fundamental relations:
xi*xj-xj*xi=0
, Di*Dj-Dj*Di=0
, Di*xj-xj*Di=0
(i!=j
),
Di*xi-xi*Di=1
D
is the ring of differential operators whose coefficients
are polynomials in K[x1,...,xn]
and
Di
denotes the differentiation with respect to xi
.
According to the commutation relation,
elements of D
can be represented as a K
-linear combination
of monomials x1^i1*...*xn^in*D1^j1*...*Dn^jn
.
In Risa/Asir, this type of monomial is represented
by <<i1,...,in,j1,...,jn>>
as in the case of commutative
polynomial.
That is, elements of D
are represented by distributed polynomials.
Addition and subtraction can be done by +
, -
,
but multiplication is done by calling dp_weyl_mul()
because of
the non-commutativity of D
.
[0] A=<<1,2,2,1>>; (1)*<<1,2,2,1>> [1] B=<<2,1,1,2>>; (1)*<<2,1,1,2>> [2] A*B; (1)*<<3,3,3,3>> [3] dp_weyl_mul(A,B); (1)*<<3,3,3,3>>+(1)*<<3,2,3,2>>+(4)*<<2,3,2,3>>+(4)*<<2,2,2,2>> +(2)*<<1,3,1,3>>+(2)*<<1,2,1,2>>
The following functions are avilable for Groebner basis computation
in Weyl algebra:
dp_weyl_gr_main()
,
dp_weyl_gr_mod_main()
,
dp_weyl_gr_f_main()
,
dp_weyl_f4_main()
,
dp_weyl_f4_mod_main()
.
Computation of the global b function is implemented as an application.
Go to the first, previous, next, last section, table of contents.