# Question:Gianni-Kalkbrener theorem

## Question:Gianni-Kalkbrener theorem

Maple

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`
` `

﻿