To compute only the dimension, codim (from sing.lib) is probably the
fastest. To compute a basis you can use modulo. Here is an example:
Code:
LIB"sing.lib";
ring r = 0,x(1..4),dp;
int k=4;
ideal i = sparseid(3,2,k-1,50,10); //create a random sparse ideal
ideal m1 = maxideal(k);
attrib(m1,"isSB",1);
i = intersect(m1,i); //not necessary for modulo
ideal m2 = maxideal(k+1),i;
m2 = std(m2); //not necessary for modulo
codim(m1,m2); //computes the dimension
module m = std(modulo(m1,m2));
vdim(m); //same as codim(m1,m2) but
//with a different algorithm
matrix K = matrix(kbase(m));
matrix M1 = matrix(m1);
ideal B = M1*K; //the basis of m1/m2
For increasing k use a k-loop. Note that maxideal(k) will become rather big,
hence this will work only for small k (depending on I).