##### 7.7.16.0. perron

Procedure from library `perron.lib` (see perron_lib).

Usage:
  perron( L [, D] )

Return:
  commutative ring with ideal `Relations`

Purpose:
  computes polynomial relations ('Relations') between pairwise commuting polynomials of L [, up to a given degree bound D]

Note:
  the implementation was partially inspired by the Perron's theorem.

Example:

    LIB "perron.lib";
    int p = 3;
    ring AA = p,(x,y,z),dp;
    matrix D[3][3]=0;
    D[1,2]=-z; D[1,3]=2*x; D[2,3]=-2*y;
    def A = nc_algebra(1,D); setring A; // this algebra is U(sl_2)
    ideal I = x^p, y^p, z^p-z, 4*x*y+z^2-2*z; // the center
    def RA = perron( I, p );
    setring RA;
    RA;
    ==> //   characteristic : 3
    ==> //   number of vars : 4
    ==> //        block   1 : ordering dp
    ==> //                  : names    F(1) F(2) F(3) F(4)
    ==> //        block   2 : ordering C
    Relations; // it was exported from perron to be in the returned ring.
    ==> Relations[1]=F(4)^3-F(1)*F(2)-F(3)^2+F(4)^2
    // perron can be also used in a commutative case, for example:
    ring B = 0,(x,y,z),dp;
    ideal J = xy+z2, z2+y2, x2y2-2xy3+y4;
    def RB = perron(J);
    setring RB;
    Relations;
    ==> Relations[1]=F(1)^2-2*F(1)*F(2)+F(2)^2-F(3)
    // one more test:
    setring A;
    map T=RA,I;
    T(Relations);  // should be zero
    ==> _[1]=0

User manual for Singular version 4-0-3, 2016, generated by texi2html.