-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathInvariants.m2
94 lines (86 loc) · 3.54 KB
/
Invariants.m2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
newPackage(
"Invariants",
Version => "0.1",
Date => "August 6, 2012",
Authors => {{Name => "Federico Galetto",
Email => "[email protected]",
HomePage => "http://www.math.neu.edu/~fgaletto/"}},
Headline => "compute invariants of linearly reductive groups",
DebuggingMode => true
)
needsPackage"SimpleDoc"
export {derksen}
--copied from IntegralClosure; used to make variables from a string
fixvarname = s -> if instance(s,String) then getSymbol s else s
derksen = method(TypicalValue => Ideal,
Options=>{
Variable => "w"
}
)
--Derksen's algorithm for generators of invariants
--Inputs:
--I: vanishing ideal of linearly reductive group G
--A: matrix of a G-representation V
--Outputs:
--J: ideal of G-invariants in the polynomial ring of V
derksen (Ideal, Matrix) := Ideal => o -> (I, A) -> (
P := ring I;
kk := coefficientRing P;
n := numColumns A;
Q := kk(monoid [(fixvarname o.Variable)_1..(fixvarname o.Variable)_n]); --this ring will contain the invariants
y := local y;
R := P ** Q ** kk[y_1..y_n]; --this ring is used for some Groebner basis computations
phi := map(R,P); --inclusion of P into R
rho := map(R,Q); --inclusion of Q into R
psi := map(Q,R); --projection of R onto Q
use R;
X := genericMatrix(R,rho(first gens Q),n,1);
Y := genericMatrix(R,y_1,n,1);
U := Y - (transpose phi(A))*X;
B := eliminate(phi(I) + ideal(U),apply(gens P,p->phi(p)));
return psi(B);
)
beginDocumentation()
doc ///
Key
Invariants
Headline
compute invariants of linearly reductive groups
Description
Text
This package computes invariants of linearly reductive groups using an algorithm by Derksen (see "Derksen, Kemper - Computational Invariant Theory, Springer, 2002").
///
doc ///
Key
derksen
(derksen,Ideal,Matrix)
Headline
apply Derksen's algorithm to obtain generators for the ideal of invariants
Usage
J = derksen(I,A)
Inputs
I:Ideal
the vanishing ideal of a linearly reductive group $G$ viewed as an affine variety
A:Matrix
over the ring of {\tt I} which defines a rational action of $G$ on finite dimensional representation $V$
Variable=>Symbol
lets you provide your own symbol for the subscripted variables in the coordinate ring of $V$
Outputs
J:Ideal
containing all $G$-invariant polynomials in the coordinate ring of $V$
Description
Text
Uses the algorithm of Derksen, as described in "Derksen, Kemper - Computational Invariant Theory, Springer, 2002", to get generators of
the ideal of $G$-invariant functions on a finite dimensional representation $V$.
$G$ can be any linearly redutive group which we view as
an affine variety in some affine space. {\tt I} is then an ideal inside the coordinate ring
of that affine space which has $G$ has vanishing locus (hint: choose the smallest possible affine space
and equations of the smallest possible degrees as Groebner basis computations will be involved).
The matrix {\tt A} describes the action of $G$ on $V$. It must be a matrix over the ring of {\tt I}.
Think of it as the image of an element of $G$ under the map $G\rightarrow GL(V)$ which defines
the representation structure of $V$.
Caveat
The generators returned by this algorithm may not be invariants!
To obtain invariants use the Reynolds operator (not yet implemented).
///
end