# Singular

Procedure from library `autgradalg.lib` (see autgradalg_lib).

Usage:
autGradAlg(I, TOR); I is an ideal, TOR is an optional list of integers representing the torsion part of the grading group.

Assume:
minimally presented, degrees of the generators of I
are the minimal degrees, basering multigraded pointedly, I_w = 0 for all w = deg(var(i))

Return:
a ring. Also exports an ideal Jexported and a list stabExported.

Example:
 ```LIB "autgradalg.lib"; intmat Q[1][3] = 1,1,1; ring R = 0,T(1..3), dp; setBaseMultigrading(Q); ideal I = 0; //T(1)*T(2) + T(3)*T(4); def RR = autGradAlg(I); ==> // coefficients: QQ ==> // number of vars : 12 ==> // block 1 : ordering dp ==> // : names T(1) T(2) T(3) Y(1) Y(2) Y(3) Y(4) Y(5) Y(\ 6) Y(7) Y(8) Y(9) ==> // block 2 : ordering C ==> // ** redefining adMons ( list adMons;) setring RR; "resulting ideal:"; ==> resulting ideal: Jexported; ==> Jexported[1]=-Y(3)*Y(5)*Y(7)*Z+Y(2)*Y(6)*Y(7)*Z+Y(3)*Y(4)*Y(8)*Z-Y(1)*Y(6\ )*Y(8)*Z-Y(2)*Y(4)*Y(9)*Z+Y(1)*Y(5)*Y(9)*Z-1 "dimension:"; ==> dimension: dim(std(Jexported)); ==> 9 "as a detailed list:"; ==> as a detailed list: stabExported; ==> [1]: ==> [1]: ==> _[1,1]=Y(1) ==> _[1,2]=Y(2) ==> _[1,3]=Y(3) ==> _[2,1]=Y(4) ==> _[2,2]=Y(5) ==> _[2,3]=Y(6) ==> _[3,1]=Y(7) ==> _[3,2]=Y(8) ==> _[3,3]=Y(9) ==> [2]: ==> 1 ==> [3]: ==> _[1]=-Y(3)*Y(5)*Y(7)*Z+Y(2)*Y(6)*Y(7)*Z+Y(3)*Y(4)*Y(8)*Z-Y(1)*Y(6)*\ Y(8)*Z-Y(2)*Y(4)*Y(9)*Z+Y(1)*Y(5)*Y(9)*Z-1 ```