G = [a^3-1,b^3-1,c^3-1,d^3-1,d-a*b*c]; V = [a,b,c,d]; GB = gr(G,V,2); /* CL = {a^i,b^j,c^k,d^l | 0 <= i,j,k,l <= 2} を手抜きで生成 */ CL = map(dp_dtop,dp_mbase(map(dp_ptod,[a^3,b^3,c^3,d^3],V)),V); /* CL の各元の GB による normal form を計算 */ CN = map(p_nf,CL,GB,V,2); /* standard monomial を計算 */ SM = map(dp_dtop,dp_mbase(map(dp_ptod,GB,V)),V); /*ch(CL,CN,SM);*/ /* normal form が同じという関係で同値類をとる */ def ch(CL,CN,SM) { N = length(SM); C=newvect(N); for (I=0; I