\documentclass{article}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{url}
\urlstyle{same}
\def\ul{\underline}
\def\ov{\overline}
\begin{document}

\begin{center}{\Large Annotated Examples 3}\end{center}
\begin{center}{\large Generic example with\\
                      module basis size different from \\
                      the number of fractions needed to describe
                      it over the input ring}\end{center}

I generated a few ``generic'' examples to test various implementations,
including my own. This was made up to have a non-trivial integral closure,
since $(y^2-y)/x^2$ is clearly in it, 
with implicit weight less than that of $y$.
It also rated to have few, if any, 
coefficients to reconstruct over the rationals,
and should have been small enough 
to be easy for all implementations in any characteristic.

$(y^2-y)^3-yx^4(y^2-y)-x^{11}=0$ defines a type I affine domain, 
an extension of $\mathbf{F}[x]$:
\[\mathbf{F}[y;x]/\langle (y^2-y)^3-yx^4(y^2-y)-x^{11}\rangle\]
with $weight(y)=11$ and $weight(x)=6$.

The qth-power algorithm in characteristic 0 would compute results 
for $\mathbf{F}_3$, $\mathbf{F}_5$ and $\mathbf{F}_{7}$, 
piecing them together to get results for $\mathbf{Q}$ 
and $\mathbf{F}_p$ for most primes $p$.

\begin{verbatim}
Loading file "qchar051009.mag"
Loading "closure_func040909.mag"
1111111111111111111111111111111111111111111111111111111111
q= 3
Delta= P.2^11
WT_MATRIX_T= [
    [ 20, 15, 13, 11, 10, 6 ]
]
time for q= 3 is 0.050 seconds
modulus= 3
1111111111111111111111111111111111111111111111111111111111
q= 5
Delta= P.2^11
WT_MATRIX_T= [
    [ 20, 15, 13, 11, 10, 6 ]
]
time for q= 5 is 0.090 seconds
modulus= 15
[
    f_11^4*f_6^3 + f_11^3*f_6^3 + f_11^2*f_6^3,
    f_11^3*f_6^4 + f_11^2*f_6^4 + f_11*f_6^4,
    f_11^5 - f_11^2*f_6^4 + f_11*f_6^4 - f_11^2,
    f_11*f_6^7,
    f_11^2*f_6^5 - f_11*f_6^5,
    f_6^8,
    f_6^7
]
1111111111111111111111111111111111111111111111111111111111
q= 7
Delta= P.2^11
WT_MATRIX_T= [
    [ 20, 15, 13, 11, 10, 6 ]
]
time for q= 7 is 0.110 seconds
modulus= 105
[
    f_11^4*f_6^3 - 2*f_11^3*f_6^3 + f_11^2*f_6^3,
    f_11^3*f_6^4 - 2*f_11^2*f_6^4 + f_11*f_6^4,
    f_11^5 - f_11^2*f_6^4 - 3*f_11^4 + f_11*f_6^4 + 3*f_11^3 - f_11^2,
    f_11*f_6^7,
    f_11^2*f_6^5 - f_11*f_6^5,
    f_6^8,
    f_6^7
]
1 f_11^4*f_6^3 - 2*f_11^3*f_6^3 + f_11^2*f_6^3
2 f_11^3*f_6^4 - 2*f_11^2*f_6^4 + f_11*f_6^4
3 f_11^5 - f_11^2*f_6^4 - 3*f_11^4 + f_11*f_6^4 + 3*f_11^3 - f_11^2
4 f_11*f_6^7
5 f_11^2*f_6^5 - f_11*f_6^5
6 f_6^8
7 f_6^7

newrelations= [
    f_10^2 - f_20,
    f_11^2 - f_10*f_6^2 - f_11,
    f_11*f_10 - f_15*f_6 - f_10,
    f_13^2 + f_20*f_6 - f_11*f_6 - f_15 + f_6,
    f_13*f_11 + f_6^4,
    f_13*f_10 + f_11*f_6^2 - f_6^2,
    f_15^2 + f_6^5 - f_15*f_6 + f_13*f_6,
    f_15*f_13 + f_10*f_6^3 - f_11*f_6 + f_6,
    f_15*f_11 - f_20*f_6,
    f_15*f_10 - f_13*f_6^2 - f_10*f_6,
    f_20^2 + f_10*f_6^5 - f_13*f_6^3 - f_10*f_6^2 - f_20,
    f_20*f_15 + f_11*f_6^4 - f_20*f_6 - f_6^4,
    f_20*f_13 + f_15*f_6^3,
    f_20*f_11 - f_13*f_6^3 - f_10*f_6^2 - f_20,
    f_20*f_10 + f_6^5 - f_15*f_6 - f_10
]
totaltime= 0.280 seconds
\end{verbatim}

\newpage

In SINGULAR 3-1-0, unweighted,
\begin{verbatim}
> LIB "normal.lib";
> ring r3=3,(y,x),dp;
> ideal i3=(y^2-y)^3-y*x^4*(y^2-y)-x^11;
> list nor3=normalP(i3,"withring");
> nor3;
[1]:[1]:
//   characteristic : 3
//   number of vars : 5
//        block   1 : ordering dp
//                  : names    T(1) T(2) T(4) 
//        block   2 : ordering dp
//                  : names    y x 
//        block   3 : ordering C
[2]:[1]:
      _[1]=y3x2-y2x2
      _[2]=y4x+y3x+y2x
      _[3]=y5+y4+y3
      _[4]=x8
      _[5]=yx4
[3]:[1]:16 [2]: 16
> def R3=nor3[1][1];
> setring R3;
> normap;
normap[1]=y
normap[2]=x
> norid;
norid[1]=T(1)*y-T(1)-T(2)*x
norid[2]=T(1)*x^2-y^2+y
norid[3]=T(1)^2*y-T(1)^2-T(4)*x^3-y^2+y
norid[4]=T(2)^2-T(1)*y+T(1)-T(4)*y*x+T(4)*x
norid[5]=T(2)*T(4)-y^2*x-y*x-x
norid[6]=T(1)^2*T(4)-y^3-y^2-y
norid[7]=T(4)^2-T(2)*y+T(2)+T(4)*y^2-T(4)*y-y*x^4+x^4+y*x-x
norid[8]=T(1)^2*x-T(2)*y
norid[9]=T(4)*y-x^4
norid[10]=T(1)*T(2)-T(1)*x-T(4)*x^2
norid[11]=T(1)^3-T(1)*y-T(4)*y*x
norid[12]=T(1)^2*T(2)-T(2)*y+T(4)*y-y*x^4
norid[13]=T(1)^4-T(1)^2*y-y^2*x^3+y*x^3
norid[14]=T(1)*T(4)-y*x^2+x^2
norid[15]=x^11+y^3*x^4-y^6-y^2*x^4+y^3

> ring r5=5,(y,x),dp;
> ideal i5=(y^2-y)^3-y*x^4*(y^2-y)-x^11;
> list nor5=normalP(i5,"withring");
> nor5;
[1]:[1]:
//   characteristic : 5
//   number of vars : 5
//        block   1 : ordering dp
//                  : names    T(1) T(2) T(3) 
//        block   2 : ordering dp
//                  : names    y x 
//        block   3 : ordering C
[2]:[1]:
      _[1]=y4x-2y3x+y2x
      _[2]=y5+2y4-2y3-y2
      _[3]=yx7-x7
      _[4]=x10
      _[5]=y2x3-yx3
[3]:[1]:16 [2]: 16
> def R5=nor5[1][1];
> setring R5;
> normap;
normap[1]=y
normap[2]=x
> norid;
norid[1]=T(1)*y-T(1)-T(2)*x
norid[2]=T(1)*x^2-y^2+y
norid[3]=T(1)^2*y-T(1)^2-T(3)*x^3-y^2+y
norid[4]=T(2)^2-T(1)*y+T(1)-T(3)*y*x+T(3)*x
norid[5]=T(2)*T(3)-y^2*x+2*y*x-x
norid[6]=T(3)^2-T(2)*y+T(2)+y*x-x
norid[7]=T(1)^2*T(3)-T(3)*y+x^4-y^3+2*y^2-y
norid[8]=T(1)^4-2*T(1)^2*y+T(1)^2+T(1)*x^2+T(3)*x^3-y^2*x^3+y*x^3
norid[9]=T(1)^2*x-T(2)*y
norid[10]=T(3)*y-x^4
norid[11]=T(1)*T(2)-T(1)*x-T(3)*x^2
norid[12]=T(1)*T(3)-y*x^2+x^2
norid[13]=T(1)^3-T(1)*y-T(3)*y*x
norid[14]=T(1)^2*T(2)-T(2)*y-y*x^4+x^4
norid[15]=x^11+y^3*x^4-y^6-y^2*x^4-2*y^5+2*y^4+y^3

> ring r7=7,(y,x),dp;
> ideal i7=(y^2-y)^3-y*x^4*(y^2-y)-x^11;
> list nor7=normalP(i7,"withring");
> nor7;
[1]: [1]:
//   characteristic : 7
//   number of vars : 5
//        block   1 : ordering dp
//                  : names    T(1) T(2) T(3) 
//        block   2 : ordering dp
//                  : names    y x 
//        block   3 : ordering C
[2]: [1]:
      _[1]=y4x-2y3x+y2x
      _[2]=y5-3y4+3y3-y2
      _[3]=yx7-x7
      _[4]=x10
      _[5]=y2x3-yx3
[3]: [1]: 16 [2]: 16
> def R7=nor7[1][1];
> setring R7;
> normap;
normap[1]=y
normap[2]=x
> norid;
norid[1]=T(1)*y-T(1)-T(2)*x
norid[2]=T(1)*x^2-y^2+y
norid[3]=T(1)^2*y-T(1)^2-T(3)*x^3-y^2+y
norid[4]=T(2)^2-T(1)*y+T(1)-T(3)*y*x+T(3)*x
norid[5]=T(2)*T(3)-y^2*x+2*y*x-x
norid[6]=T(3)^2-T(2)*y+T(2)+y*x-x
norid[7]=T(1)^2*T(3)-T(3)*y+x^4-y^3+2*y^2-y
norid[8]=T(1)^2*x-T(2)*y
norid[9]=T(3)*y-x^4
norid[10]=T(1)*T(2)-T(1)*x-T(3)*x^2
norid[11]=T(1)*T(3)-y*x^2+x^2
norid[12]=T(1)^3-T(1)*y-T(3)*y*x
norid[13]=T(1)^2*T(2)-T(2)*y-y*x^4+x^4
norid[14]=T(1)^4-T(1)^2*y-y^2*x^3+y*x^3
norid[15]=x^11+y^3*x^4-y^6-y^2*x^4+3*y^5-3*y^4+y^3
\end{verbatim}

Note that the presentations are almost the same, 
though the fractions may not be.
Compare this to char 0:


\begin{verbatim}
> ring r0=0,(y,x),dp;
> ideal i0=(y^2-y)^3-y*x^4*(y^2-y)-x^11;
> list nor0=normal(i0);
> nor0;
[1]: [1]:
//   characteristic : 0
//   number of vars : 7
//        block   1 : ordering dp
//                  : names    T(1) T(2) T(3) T(4) T(5) 
//        block   2 : ordering dp
//                  : names    y x 
//        block   3 : ordering C
[2]: [1]:
      _[1]=3yx10+3x10+3y4x3-2y3x3-y2x3
      _[2]=3y4x4-2x8-3y3x4-3y2x4+3yx4
      _[3]=3yx9+3x9+3y4x2-2y3x2-y2x2
      _[4]=3y2x8-3x8+2yx5-2y4x+4y3x-2y2x
      _[5]=9y3x7-9yx7+6y2x4-4yx4+6y4-12y3+6y2
      _[6]=3y5-2yx4-3y4-3y3+3y2
> def R0=nor0[1][1];
> setring R0;
> normap;
normap[1]=y
normap[2]=x
> norid;
norid[1]=-T(1)+T(3)*x
norid[2]=3*T(4)*y-T(5)*x+2*x
norid[3]=-T(3)*y+T(3)+T(4)*x+x^2
norid[4]=-T(1)*x+y^2-y
norid[5]=3*T(2)*x^3-T(5)*y+T(5)+2*y-2
norid[6]=-T(1)*y*x+T(1)*x+T(2)*y+T(4)*x^3
norid[7]=-9*T(1)*x^3+9*T(3)*y^3-12*T(3)*y^2+T(3)*y+2*T(3)
           +2*T(4)*x-3*T(5)*y*x^2+T(5)*x^2
norid[8]=-3*T(1)*y^2*x+3*T(1)*y*x+3*T(2)*y^2-2*T(2)*y+T(5)*x^4
norid[9]=9*T(1)*x^4-9*T(1)*y^3+12*T(1)*y^2-T(1)*y-2*T(1)
           -2*T(4)*x^2+3*T(5)*y*x^3-T(5)*x^3
norid[10]=T(1)*x^5-T(2)*y^3+T(2)*y^2
norid[11]=T(1)^2-T(3)*y^2+T(3)+T(4)*x+x^2
norid[12]=T(1)*T(2)-y*x^3+x^3
norid[13]=T(2)^2-T(4)*y+T(4)
norid[14]=T(1)*T(3)-T(4)*y-y*x
norid[15]=T(2)*T(3)-y*x^2+x^2
norid[16]=T(3)^2-1/3*T(5)-y+2/3
norid[17]=T(1)*T(4)-T(2)*x^3
norid[18]=T(2)*T(4)+T(2)*x-y^2*x+2*y*x-x
norid[19]=T(3)*T(4)-T(2)*x^2
norid[20]=T(4)^2+T(2)*x+T(3)*y-T(3)-x^5-x^2
norid[21]=T(1)*T(5)-2*T(3)*x-3*x^6
norid[22]=T(2)*T(5)-2*T(2)+3*x^4-3*y^3+6*y^2-3*y
norid[23]=T(3)*T(5)-2*T(3)-3*x^5
norid[24]=T(4)*T(5)+3*T(2)*y+3*T(4)*y-2*T(4)-3*y*x^4
norid[25]=T(5)^2+9*T(2)*x^3-T(5)-9*y^2*x^3+9*y*x^3-2
norid[26]=x^11+y^3*x^4-y^6-y^2*x^4+3*y^5-3*y^4+y^3
\end{verbatim}

This should have been the same for this example, 
but doesn't even have the same number of variables.

In positive characteristic the new weights are (10,15,13) with
20 suppressed.
In char 0, the new weights are (16,13,10,15,20) with $T(1)=T(3)x$
superfluous. 

This is easily checked by the inspired code:
\begin{verbatim}
> intmat B[6][6]=
 1, 1, 1, 1, 1,0,
 1, 1, 1, 1, 0,0,
 1, 1, 1, 0, 0,0,
 1, 1, 0, 0, 0,0,
 1, 0, 0, 0, 0,0,
20,15,13,11,10,6;
> ring ic0=0,(f20,f15,f13,f11,f10,f6),M(B);
> map phi=R0,f10*f6,f13,f10,f15,f20,f11,f6;
> ideal j0=std(phi(norid));j0;
j0[1]=3*f10^2-f20-3*f11+2
j0[2]=f11*f10-f15*f6-f10-f6^2
j0[3]=f13*f10-f11*f6^2+f6^2
j0[4]=f15*f10-f13*f6^2
j0[5]=f20*f10-2*f10-3*f6^5
j0[6]=f11^2-f11-f10*f6^2
j0[7]=f13*f11-f6^4
j0[8]=3*f15*f11-f20*f6+2*f6
j0[9]=f20*f11-f20-3*f13*f6^3-2*f11+2
j0[10]=3*f13^2-f20*f6+3*f15+2*f6
j0[11]=f15*f13+f13*f6+f11*f6-f10*f6^3-f6
j0[12]=f20*f13-3*f15*f6^3-2*f13
j0[13]=f15^2+f15*f6+f13*f6-f6^5
j0[14]=f20*f15+f20*f6-2*f15-3*f11*f6^4+3*f6^4-2*f6
j0[15]=f20^2-f20+9*f13*f6^3-9*f10*f6^5-2
\end{verbatim}

\newpage
Macaulay2 version 1.2

\begin{verbatim}
i10 : R=ZZ/3[y,x]
i11 : I=ideal((y^2-y)^3-y*x^4*(y^2-y)-x^11)
i12 : S=R/I
i13 : F=icFracP(S)

           2       3    2       4    3    2   4
          y  - y  y  + y  + y  y  + y  + y   x
o13 = {1, ------, -----------, ------------, --}
             2          3            4        y
            x          x            x
i14 : P=presentation(integralClosure(S))

o14 = | w_4x2-y2+y 
        w_4^3-w_4y-x5 
        w_7x+w_4y-w_4 
        w_7y+w_4^2x 
        w_9x+w_7^2
        w_9y+w_4^2x+yx4-x4 
        w_9w_4-w_7w_4+y2x2+yx2+x2 
        w_9w_7-w_7^2-y3x+x
        w_9^2-w_7^2-w_7-w_4^2yx-x8+y3x+y2x+x |

              ZZ                   1       ZZ                   9
o14 : Matrix (--[w , w , w , y, x])  <--- (--[w , w , w , y, x])
               3  9   7   4                 3  9   7   4
\end{verbatim}


\begin{verbatim}
i1 : R=ZZ/3[y,x];
i2 : I=ideal((y^2-y)^3-y*x^4*(y^2-y)-x^11);
i3 : S=R/I;
i4 :  time F=icFracP(S)
     -- used 0.17 seconds

           2       3    2       4    3    2   4
          y  - y  y  + y  + y  y  + y  + y   x
o4 = {1, ------, -----------, ------------, --}
             2          3            4        y
            x          x            x
i5 : time P=presentation(integralClosure(S))
     -- used 0.53 seconds

o5 = | w_(3,0)x2-y2+y 

        w_(3,0)^3-w_(3,0)y-x5 

        w_(5,0)x-w_(3,0)y+w_(3,0)
     
        w_(5,0)y-w_(3,0)^2x 

        w_(6,0)x-w_(5,0)^2 

        w_(6,0)y-w_(3,0)^2x-yx4+x4

        w_(6,0)w_(3,0)-w_(5,0)w_(3,0)-y2x2-yx2-x2 

        w_(6,0)w_(5,0)-w_(5,0)^2-y3x+x

        w_(6,0)^2-w_(5,0)^2+w_(5,0)-w_(3,0)^2yx-x8+y3x+y2x+x |


\end{verbatim}




The fractions have implicit weights (0,10,15,20,13), while
the new variables in the presentation have implicit weights (24,15,10).
Clearly (?) either $w_{6,0}-x^4$ or $w_{6,0}+x^4$ has impicit weight 13,
so while this seems to be technically correct,...


\begin{verbatim}
i6 : R=ZZ/5[y,x];
i7 : I=ideal((y^2-y)^3-y*x^4*(y^2-y)-x^11);
i8 : S=R/I;
i9 :  time F=icFracP(S)
     -- used 2.87 seconds

           6     5      4    4     3      4    3    2
          y  - 2y  + y*x  - y  + 2y x - 2x  + y  + y  - 2y*x
o9 = {1, --------------------------------------------------,
                             4     3     2
                            x  - 2y  + 2y
 
     --------------------------------------------------------------------------         5        5     4     5    3      2 2     2        2
      - y x - 2y*x  - 2y x + x  - y x - 2y x  + 2y x + 2y*x  + 2y*x
      -------------------------------------------------------------,
                             4     3    2
                            x  - 2y  - y  - 2y

      --------------------------------------------------------------------------       4     3     2       4 3    3 3    4    2
      x  + 2y  - 2y  + y  y x  - y x  - y  + y
      ------------------, ---------------------}
               y               4     3     2
                              x  - 2y  + 2y

i30 : time P=presentation(integralClosure(S))
     -- used 0.53 seconds

o30 = | w_(3,0)x2-y2+y 

        w_(3,0)^3-w_(3,0)y-x5 

        w_(5,0)x-w_(3,0)y+w_(3,0)

        w_(5,0)y-w_(3,0)^2x 

        w_(6,0)x-w_(5,0)^2 

        w_(6,0)y-w_(3,0)^2x-yx4+x4
  
        w_(6,0)w_(3,0)-w_(5,0)w_(3,0)-y2x2+2yx2-x2
      
        w_(6,0)w_(5,0)-w_(5,0)^2-y3x-2y2x+2yx+x
      
        w_(6,0)^2-w_(5,0)^2+w_(5,0)+2w_(3,0)^2yx+2w_(3,0)^2x-x8-2y3x-y2x+2yx+x |

\end{verbatim}

while also probably technically correct, gives fractions 
that are in desperate need of reduction modulo the original ring.
As one does this one notices that the denominators may change 
from one reduction to the next, since Macaulay2 has a strange idea 
(actually I believe no idea, though it is based on certain syzygy computations)
of what a canonical form of a rational function should be.  

If one does reduce them, then one probably gets functions with implicit weights
(0,15,19,13,20), with the function of weight 10 recoverable as a combination of
those of weights 19 and 13.

At least the old errors encountered by
{\em  presentation}({\em integralClosure}(S)) are no longer there.


MAGMA easily gives:

\begin{verbatim}
1 1
2 f11
3 1/f6^2*f11^2+22/f6^2*f11
4 1/f6^3*f11^3+21/f6^3*f11^2+1/f6^3*f11
5 1/f6^4*f11^4+21/f6^4*f11^3+1/f6^4*f11^2
6 1/f6^7*f11^5+20/f6^7*f11^4+3/f6^7*f11^3+(22*f6^4+22)/f6^7*f11^2+1/f6^3*f11
\end{verbatim}
in characteristic 23, and

\begin{verbatim}
1 1
2 f11
3 1/f6^2*f11^2-1/f6^2*f11
4 1/f6^3*f11^3-2/f6^3*f11^2+1/f6^3*f11
5 1/f6^4*f11^4-2/f6^4*f11^3+1/f6^4*f11^2
6 1/f6^7*f11^5-3/f6^7*f11^4+3/f6^7*f11^3+(-f6^4-1)/f6^7*f11^2+1/f6^3*f11
\end{verbatim}
over the rationals,

but as always, no ``stand-alone'' presentations.


MAGMA's Normalisation function 
\begin{verbatim}
t:=Cputime();
F:=Rationals();
P<y,x>:=PolynomialRing(F,2,"weight",[1,0,11,6]);
f:=(y^2-y)^3-y*x^4*(y^2-y)-x^11;
I:=ideal<P|f>;
N:=Normalisation(I);
J:=N[1][1];J;
"Normalisation time=",Cputime(t);
\end{verbatim}

\begin{verbatim}
Basis:
[
    -J.1^2*$.2 + J.3^2 - J.3,
    -J.1*J.5 + J.2*J.3 - J.2,
    -J.1*J.2^2 + J.3*J.5,
    -J.1^3*J.4 - J.1^2*J.2 + J.2^2*J.3 - J.2^2,
    -J.1^4 + J.3*J.4,
    -J.1^2*J.4 - J.1*J.2 + J.2*J.5,
    -J.1^5 - J.1*J.5 + J.2^3 - J.2,
    -J.1^2*J.3 + J.1^2 + J.2*J.4,
    -J.1^5 + J.1*J.4 - J.1*J.5 + J.5^2,
    -J.1^4*J.3 + J.1^4 - J.1*J.2^2 + J.2^2*J.5,
    -J.1^3*J.2 + J.1*J.3 - J.1 + J.4*J.5,
    -J.1^5*J.2 - J.1^3*J.4 - J.1^2*J.2 + J.2^4 - J.2^2,
    -J.1^3*J.5 + J.2^2*J.4,
    -J.1*J.2^2 + J.1*J.3 - J.1 + J.4^2 + J.5
]
Normalisation time= 0.380
\end{verbatim}

but the output of 
\begin{verbatim}
G:=GroebnerBasis(J);G;
"total time=",Cputime(t);
\end{verbatim}
is about 4000 line long, so omitted.
An inspired choice of ordering 

\begin{verbatim}
t:=Cputime();
F:=Rationals();
P<e,d,c,b,a>:=PolynomialRing(F,5,"grevlexw",[15,13,11,10,6]);

f1:=-a^2*b + c^2 - c;
f2:=-a*e + b*c - b;
f3:=-a*b^2 + c*e;
f4:=-a^3*d - a^2*b + b^2*c - b^2;
f5:=-a^4 + c*d;
f6:=-a^2*d - a*b + b*e;
f7:=-a^5 - a*e + b^3 - b;
f8:=-a^2*c + a^2 + b*d;
f9:=-a^5 + a*d - a*e + e^2;
f10:=-a^4*c + a^4 - a*b^2 + b^2*e;
f11:=-a^3*b + a*c - a + d*e;
f12:=-a^5*b - a^3*d - a^2*b + b^4 - b^2;
f13:=-a^3*e + b^2*d;
f14:=-a*b^2 + a*c - a + d^2 + e;

I:=ideal<P|f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14>;
G:=GroebnerBasis(I);G;
Cputime(t);
\end{verbatim}

gives an acceptable answer:

\begin{verbatim}
    e^2 - a^5 - e*a + d*a,
    b^3 - a^5 - e*a - b,
    e*d - b*a^3 + c*a - a,
    d^2 - b^2*a + c*a + e - a,
    e*c - b^2*a,
    e*b - d*a^2 - b*a,
    d*c - a^4,
    d*b - c*a^2 + a^2,
    c^2 - b*a^2 - c,
    c*b - e*a - b

0.010
\end{verbatim}
though again missing $b^2$ of weight 20 from my algebra perspective.


{\em normalP} in SINGULAR 3-1-0 and the newer 
``withRing'' and ``noRed'' options
produced:
\begin{verbatim}

                     SINGULAR                             /
 A Computer Algebra System for Polynomial Computations   /   version 3-1-0
                                                       0<
     by: G.-M. Greuel, G. Pfister, H. Schoenemann        \   Mar 2009
FB Mathematik der Universitaet, D-67653 Kaiserslautern    \
> LIB "/home/leonada/presolve.lib";
> LIB "/home/leonada/normal.lib";
> ring r=3,(y,x),wp(11,6);
> ideal i=(y^2-y)^3-y*x^4*(y^2-y)-x^11;
> list norp=normalP(i,"withRing","noRed");
> norp;
[1]:
   [1]:
//   characteristic : 3
//   number of vars : 6
//        block   1 : ordering dp
//                  : names    T(1) T(2) T(3) T(4) 
//        block   2 : ordering wp
//                  : names    y x 
//                  : weights  11 6 
//        block   3 : ordering C
[2]:
   [1]:
      _[1]=y3x2-y2x2
      _[2]=x8
      _[3]=y4x+y3x+y2x
      _[4]=y5+y4+y3
      _[5]=yx4
[3]:
   [1]:
      16
   [2]:
      16
> def R=norp[1][1];
> setring R;
> normap;
normap[1]=y
normap[2]=x
> norid;
norid[1]=T(1)*y-T(1)-T(3)*x
norid[2]=T(3)*y-T(4)*x
norid[3]=T(1)*x^2+T(2)*x^3-T(4)*y+T(4)
norid[4]=-T(1)*x^2+y^2-y
norid[5]=-T(2)*y+x^4
norid[6]=T(1)^2-T(4)
norid[7]=T(1)*T(2)-y*x^2+x^2
norid[8]=T(2)^2+T(3)-T(4)*x+y*x-x
norid[9]=T(1)*T(3)-T(1)*x-T(2)*x^2
norid[10]=T(2)*T(3)-y^2*x-y*x-x
norid[11]=T(3)^2-T(1)*y+T(1)+T(2)*x-x^5
norid[12]=T(1)*T(4)-T(1)*y-x^5
norid[13]=T(2)*T(4)-y^3-y^2-y
norid[14]=T(3)*T(4)-T(4)*x-y*x^4+x^4
norid[15]=T(4)^2-T(2)*x^3-T(4)-y^2*x^3+y*x^3-y^2+y
norid[16]=y^6-x^11-y^3*x^4+y^2*x^4-y^3
> option(redSB);
> ideal j=std(norid);j;
j[1]=y^6-x^11-y^3*x^4+y^2*x^4-y^3
j[2]=T(4)*y^2-T(4)*y-x^7-y^3+y^2
j[3]=T(4)*x^4-y^4-y^3-y^2
j[4]=T(3)*y-T(4)*x
j[5]=T(3)*x^3-y^3-y^2-y
j[6]=T(2)*y-x^4
j[7]=T(2)*x^3-T(4)*y+T(4)+y^2-y
j[8]=T(1)*y-T(1)-T(3)*x
j[9]=T(1)*x^2-y^2+y
j[10]=T(4)^2-T(4)*y-y^2*x^3+y*x^3
j[11]=T(3)*T(4)-T(4)*x-y*x^4+x^4
j[12]=T(2)*T(4)-y^3-y^2-y
j[13]=T(1)*T(4)-T(1)-T(3)*x-x^5
j[14]=T(3)^2+T(2)*x-T(3)*x-x^5
j[15]=T(2)*T(3)-y^2*x-y*x-x
j[16]=T(1)*T(3)-T(1)*x-T(2)*x^2
j[17]=T(2)^2+T(3)-T(4)*x+y*x-x
j[18]=T(1)*T(2)-y*x^2+x^2
j[19]=T(1)^2-T(4)


> ring r=5,(y,x),wp(11,6);
> ideal i=(y^2-y)^3-y*x^4*(y^2-y)-x^11;
> list norp=normalP(i,"withRing","noRed");
> norp;
[1]:
   [1]:
//   characteristic : 5
//   number of vars : 6
//        block   1 : ordering dp
//                  : names    T(1) T(2) T(3) T(4) 
//        block   2 : ordering wp
//                  : names    y x 
//                  : weights  11 6 
//        block   3 : ordering C
[2]:
   [1]:
      _[1]=x11+y3x4+y5-y2x4-2y4+y3
      _[2]=y3x6-y2x6
      _[3]=yx10
      _[4]=y2x9
      _[5]=y4x2-y3x2
[3]:
   [1]:
      16
   [2]:
      16
> def R=norp[1][1];
// ** redefining R **
> setring R;
> normap;
normap[1]=y
normap[2]=x
> norid;
norid[1]=T(3)*y-T(4)*x
norid[2]=-T(1)*y+T(1)+T(3)*x+x^2
norid[3]=T(2)*x^3-T(4)*y+T(4)
norid[4]=-T(1)*x^2+y^2-y
norid[5]=T(1)*y*x^2-T(1)*x^2-T(2)*y-T(3)*x^3
norid[6]=T(1)^2-T(4)-y
norid[7]=T(1)*T(2)-y*x^2+x^2
norid[8]=T(2)^2+T(3)-T(4)*x
norid[9]=T(1)*T(3)-T(2)*x^2
norid[10]=T(2)*T(3)+T(2)*x-y^2*x+2*y*x-x
norid[11]=T(3)^2+T(2)*x+T(3)*x-x^5
norid[12]=T(1)*T(4)-x^5
norid[13]=T(2)*T(4)-T(3)*x^3
norid[14]=T(3)*T(4)+T(3)*y-y*x^4+x^4
norid[15]=T(4)^2+T(2)*x^3+T(4)-y^2*x^3+y*x^3
norid[16]=y^6-x^11-y^3*x^4+2*y^5+y^2*x^4-2*y^4-y^3
> option(redSB);
> ideal j=std(norid);j;
j[1]=y^6-x^11-y^3*x^4+2*y^5+y^2*x^4-2*y^4-y^3
j[2]=T(4)*y^2-T(4)*y-x^7
j[3]=T(4)*x^4-y^4+y*x^4+2*y^3-y^2
j[4]=T(3)*y-T(4)*x
j[5]=T(3)*x^3-y^3+x^4+2*y^2-y
j[6]=T(2)*y-x^4
j[7]=T(2)*x^3-T(4)*y+T(4)
j[8]=T(1)*y-T(1)-T(3)*x-x^2
j[9]=T(1)*x^2-y^2+y
j[10]=T(4)^2+T(4)*y-y^2*x^3+y*x^3
j[11]=T(3)*T(4)+T(4)*x-y*x^4+x^4
j[12]=T(2)*T(4)-y^3+x^4+2*y^2-y
j[13]=T(1)*T(4)-x^5
j[14]=T(3)^2+T(2)*x+T(3)*x-x^5
j[15]=T(2)*T(3)+T(2)*x-y^2*x+2*y*x-x
j[16]=T(1)*T(3)-T(2)*x^2
j[17]=T(2)^2+T(3)-T(4)*x
j[18]=T(1)*T(2)-y*x^2+x^2
j[19]=T(1)^2-T(4)-y
\end{verbatim}

with different fractions but of weights 10,13,15,20, as expected.

\begin{verbatim}
> ring r=7,(y,x),wp(11,6);
> ideal i=(y^2-y)^3-y*x^4*(y^2-y)-x^11;
> list norp=normalP(i,"withRing","noRed");
\end{verbatim}

seems to be too hard for it.
\end{document}












\begin{verbatim}
i10 : R=ZZ/3[y,x]
i11 : I=ideal((y^2-y)^3-y*x^4*(y^2-y)-x^11)
i12 : S=R/I
i13 : F=icFracP(S)

           2       3    2       4    3    2   4
          y  - y  y  + y  + y  y  + y  + y   x
o13 = {1, ------, -----------, ------------, --}
             2          3            4        y
            x          x            x
i14 : P=presentation(integralClosure(S))

o14 = | w_4x2-y2+y 
        w_4^3-w_4y-x5 
        w_7x+w_4y-w_4 
        w_7y+w_4^2x 
        w_9x+w_7^2
        w_9y+w_4^2x+yx4-x4 
        w_9w_4-w_7w_4+y2x2+yx2+x2 
        w_9w_7-w_7^2-y3x+x
        w_9^2-w_7^2-w_7-w_4^2yx-x8+y3x+y2x+x |

              ZZ                   1       ZZ                   9
o14 : Matrix (--[w , w , w , y, x])  <--- (--[w , w , w , y, x])
               3  9   7   4                 3  9   7   4
\end{verbatim}
is technically correct, I suppose.
But the fractions found have implicit weights 0,10,15,20,13, 
and variables having implicit weights 24,15,10,11,6;
so there is no agreement between the two, and no concept
of how many generators are needed.
Notice how dependent this is on characteristic as well.


\begin{verbatim}
i15 : R=ZZ/5[y,x]
i16 : I=ideal((y^2-y)^3-y*x^4*(y^2-y)-x^11)
i17 : S=R/I
i18 : F=icFracP(S)

           6     5      4    4     3      4    3    2
          y  - 2y  + y*x  - y  + 2y x - 2x  + y  + y  - 2y*x
o18 = {1, --------------------------------------------------,
                             4     3     2
                            x  - 2y  + 2y
      --------------------------------------------------------------------------       
         5        5     4     5    3      2 2     2        2
      - y x - 2y*x  - 2y x + x  - y x - 2y x  + 2y x + 2y*x  + 2y*x
      -------------------------------------------------------------,
                             4     3    2
                            x  - 2y  - y  - 2y
      --------------------------------------------------------------------------       
       4     3     2       4 3    3 3    4    2
      x  + 2y  - 2y  + y  y x  - y x  - y  + y
      ------------------, ---------------------}
               y               4     3     2
                              x  - 2y  + 2y

\end{verbatim} 


\begin{verbatim}
i19 : P=presentation(integralClosure(S))
stdio:19:16:(1):[0]: error: encountered object not usable as variable 
at position 10 in list:
                        2     2. (of class                                    .)        
        2w  y + 2w   + w y + w .                                              .
          10      10    2     2.                                              .
                                           -----------------------------------.
                                           ....................................

\end{verbatim}
shows that integralClosure starts to have grave problems 
with even easy examples such as this.

It never (well at least not after wasting a few days of CPU time) 
gives an answer in characteristic 0 for this problem.

