This function is provided by the package InvariantRing
When called on a linearly reductive group action and a (multi)degree, it computes an additive basis for the invariants of the action in the given degree.
This function uses an implementation of Algorithm 4.5.1 in:
The following example examines the action of the special linear group of degree 2 on the space of binary quadrics. There is a single invariant of degree 2 but no invariant of degree 3.
i1 : S = QQ[a,b,c,d] o1 = S o1 : PolynomialRing |
i2 : I = ideal(a*d - b*c - 1) o2 = ideal(- b*c + a*d - 1) o2 : Ideal of S |
i3 : A = S[u,v] o3 = A o3 : PolynomialRing |
i4 : M = transpose (map(S,A)) last coefficients sub(basis(2,A),{u=>a*u+b*v,v=>c*u+d*v}) o4 = | a2 2ab b2 | | ac bc+ad bd | | c2 2cd d2 | 3 3 o4 : Matrix S <--- S |
i5 : R = QQ[x_1..x_3] o5 = R o5 : PolynomialRing |
i6 : V = linearlyReductiveAction(I,M,R) o6 = R <- S/ideal(- b*c + a*d - 1) via | a2 2ab b2 | | ac bc+ad bd | | c2 2cd d2 | o6 : LinearlyReductiveAction |
i7 : invariants(V,2) 2 o7 = {x - 4x x } 2 1 3 o7 : List |
i8 : invariants(V,3) o8 = {} o8 : List |