
D.6.9.3 extdevelop
Procedure from library hnoether.lib (see hnoether_lib).
 Usage:
 extdevelop(L,N); list L, int N
 Assume:
 L is the output of
develop(f) , or of extdevelop(l,n) ,
or one entry in the list hne in the ring created by
hnexpansion(f[,"ess"]) .
 Return:
 an extension of the HamburgerNoether development of f as a list
in the same format as L has (up to the last entry in the output
of
develop(f) ).
Type help develop; , resp. help hnexpansion; for more
details.
 Note:
 The new HNmatrix will have at least N columns (if the HNE is not
finite). In particular, if f is irreducible then (in most cases)
extdevelop(develop(f),N) will produce the same result as
develop(f,N) .
If the matrix M of L has n columns then, compared with
parametrization(L) , paramametrize(extdevelop(L,N)) will increase the
exactness by at least (Nn) more significant monomials.
Example:
 LIB "hnoether.lib";
ring exring=0,(x,y),dp;
list Hne=hnexpansion(x143y2x11y3x10y2x9+3y4x8+y5x7+3y4x6+x5*(y6+y5)
3y6x3y7x2+y8);
==> // No change of ring necessary, return value is HN expansion.
displayHNE(Hne); // HNE of 1st,3rd branch is finite
==> // HamburgerNoether development of branch nr.1:
==> y = z(1)*x
==> x = z(1)^2
==>
==> // HamburgerNoether development of branch nr.2:
==> y = z(1)*x
==> x = z(1)^2+z(1)^2*z(2)
==> z(1) = z(2)^2z(2)^3 + ..... (terms of degree >=4)
==>
==> // HamburgerNoether development of branch nr.3:
==> y = z(1)*x^2
==> x = z(1)^2
==>
print(extdevelop(Hne[1],5)[1]);
==> No extension is possible
==> 0,x,0,
==> 0,1,x
list ehne=extdevelop(Hne[2],5);
displayHNE(ehne);
==> y = z(1)*x
==> x = z(1)^2+z(1)^2*z(2)
==> z(1) = z(2)^2z(2)^3+z(2)^4z(2)^5 + ..... (terms of degree >=6)
param(Hne[2]);
==> // ** Warning: result is exact up to order 5 in x and 7 in y !
==> _[1]=x7x6x5+x4
==> _[2]=x10+2x92x7+x6
param(ehne);
==> // ** Warning: result is exact up to order 7 in x and 9 in y !
==> _[1]=x11x10+x9x8x7+x6x5+x4
==> _[2]=x16+2x153x14+4x132x12+2x104x9+3x82x7+x6
 See also:
develop;
hnexpansion;
param.
