|
D.7.4.6 invar
Procedure from library invar.lib (see invar_lib).
- Usage:
- invar(<matrix>)
- Returns:
- If m is a n x n matrix with coefficients in the ring 'group',
representing the action on some vector space V, then invar(m);
gives polynomials in x(1),x(2),...,x(n) who generate the invariant
ring. The following global variables will be set:
polyring of type <ring> polynomial ring in x(1),...,x(n)
invring of type <ideal> entries generate the inv. ring
representation of type <matrix>
The base ring will be set to 'polyring' which is a global
variable representing the polynomial ring on which the group acts.
The variable 'representation' will be set to the input m.
Example:
| LIB "invar.lib";
SL(2); // Take the group SL_2
matrix m=dsum(SLrep,SLrep,SLrep,SLrep);
// 4 copies of the standard representation
invar(m); // empirical evidence for FFT
==>
==> Ideal B:
==> x(6)*x(7)-x(5)*x(8)-y(6)*y(7)+y(5)*y(8),
==> x(4)*x(7)-x(3)*x(8)-y(4)*y(7)+y(3)*y(8),
==> x(2)*x(7)-x(1)*x(8)-y(2)*y(7)+y(1)*y(8),
==> x(4)*x(5)-x(3)*x(6)-y(4)*y(5)+y(3)*y(6),
==> x(2)*x(5)-x(1)*x(6)-y(2)*y(5)+y(1)*y(6),
==> x(2)*x(3)-x(1)*x(4)-y(2)*y(3)+y(1)*y(4),
==> x(8)*y(4)*y(5)-x(8)*y(3)*y(6)-x(6)*y(4)*y(7)+x(4)*y(6)*y(7)+x(6)*y(3)*y(8\
)-x(4)*y(5)*y(8),
==> x(7)*y(4)*y(5)-x(7)*y(3)*y(6)-x(5)*y(4)*y(7)+x(3)*y(6)*y(7)+x(5)*y(3)*y(8\
)-x(3)*y(5)*y(8),
==> x(8)*y(2)*y(5)-x(8)*y(1)*y(6)-x(6)*y(2)*y(7)+x(2)*y(6)*y(7)+x(6)*y(1)*y(8\
)-x(2)*y(5)*y(8),
==> x(7)*y(2)*y(5)-x(7)*y(1)*y(6)-x(5)*y(2)*y(7)+x(1)*y(6)*y(7)+x(5)*y(1)*y(8\
)-x(1)*y(5)*y(8),
==> x(8)*y(2)*y(3)-x(8)*y(1)*y(4)-x(4)*y(2)*y(7)+x(2)*y(4)*y(7)+x(4)*y(1)*y(8\
)-x(2)*y(3)*y(8),
==> x(7)*y(2)*y(3)-x(7)*y(1)*y(4)-x(3)*y(2)*y(7)+x(1)*y(4)*y(7)+x(3)*y(1)*y(8\
)-x(1)*y(3)*y(8),
==> x(6)*y(2)*y(3)-x(6)*y(1)*y(4)-x(4)*y(2)*y(5)+x(2)*y(4)*y(5)+x(4)*y(1)*y(6\
)-x(2)*y(3)*y(6),
==> x(5)*y(2)*y(3)-x(5)*y(1)*y(4)-x(3)*y(2)*y(5)+x(1)*y(4)*y(5)+x(3)*y(1)*y(6\
)-x(1)*y(3)*y(6)
==>
==> Zero Fiber Ideal:
==> x(6)*x(7)-x(5)*x(8),
==> x(4)*x(7)-x(3)*x(8),
==> x(2)*x(7)-x(1)*x(8),
==> x(4)*x(5)-x(3)*x(6),
==> x(2)*x(5)-x(1)*x(6),
==> x(2)*x(3)-x(1)*x(4)
==>
==> Generating Invariants:
==> x(6)*x(7)-x(5)*x(8),
==> x(4)*x(7)-x(3)*x(8),
==> x(2)*x(7)-x(1)*x(8),
==> x(4)*x(5)-x(3)*x(6),
==> x(2)*x(5)-x(1)*x(6),
==> x(2)*x(3)-x(1)*x(4)
setring Invar::polyring;
Invar::reynolds(x(1)*x(4)); // The reynolds operator is computed using
==> -1/2*x(2)*x(3)+1/2*x(1)*x(4)
// the Omega process.
|
|