# Question: Gianni-Kalkbrener theorem

November 28 2012 by
false
Maple

0

I would like some help in order to build the following algorithm (Gianni-Kalkbrener) on Maple.

I have a cyclic-5 problem of the following polynomials

L := [a*b*c*d+b*c*d*e+c*d*e*a+d*e*a*b+e*a*b*c, a*b+b*c+c*d+d*e+e*a, a+b+c+d+e, a*b*c*d*e-1, a*b*c+b*c*d+c*d*e+d*e*a+e*a*b]

I found the Grobner basis of that using:

GrobnerBasisOfL := Basis(L, tdeg(a, b, c, d, e))

Then, I have found the FGLM of the Basis using:

FGLMOfGrobnerBasis := FGLM(GrobnerBasisOfL, tdeg(a, b, c, d, e), plex(a, b, c, d, e))

in order to be of a purely lexographic order

I need to build the following algorithm on the FGLMOfGrobnerBasis but I'm not quite sure how to write it on Maple

Algorithm (Gianni-Kalkbrener) GK(G, n)Input: A Grobner base G for a zero-dimensional ideal I in n variables with respect to lexicographic order.Output: A list of solutions of G
S := {xn = RootOf(pn)}
for k = n-1,...,1 doS := GKstep(G,k,S)return S
Algorithm (Gianni-Kalkbrener Step) GKstep(G, k, A)Input: A Grobner base G for a zero-dimensional ideal I with respect to lexico-graphic order, an integer k, and A a list of solutions of Gk+1.
Output: A list of solutions of Gk.
B := 0;for each  a E Ai := 1while (L := leadingcoefficient xk(pk,i(a))) = 0 do i := i + 1

if L is invertible with respect to athen B := B U {(a U {xk= RootOf(pk,i(a))})}
else # a is split as a1U a2
B := B U GKstep(G, k, {a1}) U GKstep(G, k, {a2})
return B