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 Grobner 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 do

S := GKstep(G,k,S)

return S

**Algorithm (Gianni-Kalkbrener Step) GKstep(G, k, A)**

Input: A Grobner 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 A

i := 1

while (L := leadingcoefficient xk(pk,i(a))) = 0 do i := i + 1

if L is invertible with respect to a

then 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