Home Online Manual
Top
Back: perron_lib
Forward: qmatrix_lib
FastBack:
FastForward:
Up: perron_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document
7.7.17.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;
==> // coefficients: ZZ/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