|
D.7.1.6 invariant_algebra_perm
Procedure from library finvar.lib (see finvar_lib).
- Usage:
- invariant_algebra_perm(GEN[,v]);
GEN: a list of generators of a permutation group. It is given in disjoint cycle
form, where trivial cycles can be omitted; e.g., the generator (1,2)(3,4)(5) is
given by <list(list(1,2),list(3,4))>.
v: an optional <int>
- Return:
- A minimal homogeneous generating set of the invariant ring of the group presented
by GEN, type <matrix>
- Assume:
- We are in the non-modular case, i.e., the characteristic of the basering
does not divide the group order. Note that the function does not verify whether
this assumption holds or not
- Display:
- Information on the progress of computations if v does not equal 0
- Theory:
- We do an incremental search in increasing degree d. Generators of the invariant
ring are found among the orbit sums of degree d. The generators are chosen by
Groebner basis techniques (see S. King: Minimal generating sets of non-modular
invariant rings of finite groups).
- Note:
- invariant_algebra_perm should not be used in rings with weighted orders.
Example:
| LIB "finvar.lib";
ring R=0,(a,b,c,d),dp;
def GEN=list(list(list(1,3),list(2,4)));
matrix G = invariant_algebra_perm(GEN,1);
==> Searching generators in degree 1
==> We have 2 orbit sums of degree 1
==> We found generator number 1 in degree 1
==> We found generator number 2 in degree 1
==> Computing Groebner basis up to the new degree 2
==> Searching generators in degree 2
==> We have 3 orbit sums of degree 2
==> We found generator number 3 in degree 2
==> We found generator number 4 in degree 2
==> We found generator number 5 in degree 2
==> Computing Groebner basis up to the new degree 3
==> We found the degree bound 2
==> We went beyond the degree bound, so, we are done!
G;
==> G[1,1]=b+d
==> G[1,2]=a+c
==> G[1,3]=b2+d2
==> G[1,4]=ab+cd
==> G[1,5]=a2+c2
| See also:
invariant_algebra_reynolds.
|