def cyclic6(compute=True):
    x,y,z,t,u,v = MPolynomialRing(QQ, ZZ(6), names='xyztuv', order='lex').gens()
    I = ideal(
        x + y + z + t + u + v,
        x*y + y*z + z*t + t*u + u*v + v*x,
        x*y*z + y*z*t + z*t*u + t*u*v + u*v*x + v*x*y,
        x*y*z*t + y*z*t*u + z*t*u*v + t*u*v*x + u*v*x*y + v*x*y*z,
        x*y*z*t*u + y*z*t*u*v + z*t*u*v*x + t*u*v*x*y + u*v*x*y*z + v*x*y*z*t,
        x*y*z*t*u*v - ZZ(1))
    if not compute:
        return I
    t = cputime()
    B = I.groebner_basis()
    print 'finished gb for cyclic 6 in %s seconds'%cputime(t)

def cyclic7(compute=True):
    z0,z1,z2,z3,z4,z5,z6 = PolynomialRing(QQ, ZZ(7), names=['z%s'%i for i in range(ZZ(7))]).gens()
    I = ideal(
        z0 + z1 + z2 + z3 + z4 + z5 + z6,
        z0*z1 + z1*z2 + z2*z3 + z3*z4 + z4*z5 + z5*z6 + z6*z0,
        z0*z1*z2 + z1*z2*z3 + z2*z3*z4 + z3*z4*z5 + z4*z5*z6 + z5*z6*z0 + z6*z0*z1,
        z0*z1*z2*z3 + z1*z2*z3*z4 + z2*z3*z4*z5 + z3*z4*z5*z6 + z4*z5*z6*z0 + z5*z6*z0*z1 + z6*z0*z1*z2,
        z0*z1*z2*z3*z4 + z1*z2*z3*z4*z5 + z2*z3*z4*z5*z6 + z3*z4*z5*z6*z0 + z4*z5*z6*z0*z1 + z5*z6*z0*z1*z2 + z6*z0*z1*z2*z3,
        z0*z1*z2*z3*z4*z5 + z1*z2*z3*z4*z5*z6 + z2*z3*z4*z5*z6*z0 + z3*z4*z5*z6*z0*z1 + z4*z5*z6*z0*z1*z2 + z5*z6*z0*z1*z2*z3 + z6*z0*z1*z2*z3*z4, 
        z0*z1*z2*z3*z4*z5*z6 - ZZ(1)
        )
    if not compute:
        return I
    t = cputime()
    B = I.groebner_basis()
    print 'finished gb for cyclic 7 in %s seconds'%cputime(t)

