![]() |
First, we compute the action of the Casimir operator on the basis of \( (V(5 \omega_1) \otimes V(5\omega_1) )^{T} \) that we computed previously.
i92 : -- These indices are with respect to MyBasis1 and MyBasis2
-- These words are the same for MyBasis1 and MyBasis2
-- and they are saved in MyBasisWords.m2
cas1 = casimirScalar(irreducibleLieAlgebraModule(lambda1,so2n));
i93 : cas2 = cas1;
i94 : -- This is for one expression {Xf,X*g}
writeProductInTensorBasis = (L) -> (
Xf:=L_0_0;
Xstarg:=L_0_1;
c:=L_1;
L1:=writeInMyBasis1(Xf);
L2:=writeInMyBasis2(Xstarg);
flatten apply(L1, p1 -> apply(L2, p2 -> {{p1_0,p2_0},c*(p1_1)*(p2_1)}))
);
i95 : -- Simplify a list of things in the tensor basis
simplifyListOfTensorPairs = (L) -> (
K:=unique apply(L, i -> first i);
kpairs:={};
answer:=for k in K list (
kpairs:=select(L, i -> i_0==k);
{k,sum apply(kpairs, p -> p_1)}
);
return answer
);
i96 : csOnPair = (p) -> (
f:=MyBasis1#(p_0);
g:=MyBasis2#(p_1);
Xf:=0;
Xstarg:=0;
answer = { {p,(cas1+cas2)} };
for i from 0 to #B11-1 do (
Xf = actOnPolynomial(B11_i,f);
if Xf==0 then continue;
Xstarg = actOnPolynomial(B22_i,g);
if Xstarg == 0 then continue;
answer = join(answer,writeProductInTensorBasis({{Xf,Xstarg},2}));
);
return new HashTable from simplifyListOfTensorPairs(answer)
);
i97 : time csM = apply(Wt0TensorBasis, p -> csOnPair(p));
-- used 6.02941 seconds
i98 : M = transpose apply(csM, h -> apply(Wt0TensorBasis, j -> if h#?j then h#j else 0));
i99 : fn = openOut "csM for V5w1otimesself.m2";
i100 : for i in M do (
fn << toString(i) << "," << endl
);
i101 : close fn
o101 = csM for V5w1otimesself.m2
o101 : File
Next, in Magma we compute the decomposition into irreducibles of \( V(5\omega_1
) \otimes V(5\omega_1) \).
Magma V2.27-8 Sun Apr 16 2023 16:20:01 on MAC-M26AQ05N [Seed = 645798677]
+-------------------------------------------------------------------+
| This copy of Magma has been made available through a |
| generous initiative of the |
| |
| Simons Foundation |
| |
| covering U.S. Colleges, Universities, Nonprofit Research entities,|
| and their students, faculty, and staff |
+-------------------------------------------------------------------+
Type ? for help. Type -D to quit.
> R:=RootDatum("D5" : Isogeny := "SC");
> D:=LieRepresentationDecomposition(R,[[5,0,0,0,0]],[1]);
> D2:=TensorProduct(D,D);
> Wts,Mults:=WeightsAndMultiplicities(D2);
> Wts;
[
(4 1 0 0 0),
(6 2 0 0 0),
(0 4 0 0 0),
(8 0 0 0 0),
(8 1 0 0 0),
(0 3 0 0 0),
(4 2 0 0 0),
(2 4 0 0 0),
(0 0 0 0 0),
(2 1 0 0 0),
(4 0 0 0 0),
(0 2 0 0 0),
(2 2 0 0 0),
(2 3 0 0 0),
(0 5 0 0 0),
(4 3 0 0 0),
(6 1 0 0 0),
(6 0 0 0 0),
(10 0 0 0 0),
(0 1 0 0 0),
(2 0 0 0 0)
]
> Mults;
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
This allows us to compute the eigenvalues of the Casimir operator on \( (V(5 \omega_1) \otimes V(5\omega_1) )^{T} \).
i102 : -- Instead of doing
-- transpose gens ker matrix M
-- (can M2 or some other software do this?)
-- find a vector in the kernel iteratively
IrrepsOfVotimesV = {{4, 1, 0, 0, 0}, {6, 2, 0, 0, 0}, {0, 4, 0, 0, 0}, {8, 0, 0, 0, 0}, {8, 1, 0, 0, 0}, {0, 3, 0, 0, 0}, {4, 2, 0, 0, 0}, {2, 4, 0, 0, 0}, {0, 0, 0, 0, 0}, {2, 1, 0, 0, 0}, {4, 0, 0, 0, 0}, {0, 2, 0, 0, 0}, {2, 2, 0, 0, 0}, {2, 3, 0, 0, 0}, {0, 5, 0, 0, 0}, {4, 3, 0, 0, 0}, {6, 1, 0, 0, 0}, {6, 0, 0, 0, 0}, {10, 0, 0, 0, 0}, {0, 1, 0, 0, 0}, {2, 0, 0, 0, 0}};
i103 : so10 = simpleLieAlgebra("D",5);
i104 : cs = v -> casimirScalar(irreducibleLieAlgebraModule(v,so10));
i105 : sort unique apply(IrrepsOfVotimesV, v -> cs(v))
o105 = {0, 16, 20, 36, 40, 48, 60, 64, 72, 84, 88, 92, 100, 112, 120, 124, 128, 132, 144, 160, 180}
o105 : List
i106 : EV = {16, 20, 36, 40, 48, 60, 64, 72, 84, 88, 92, 100, 112, 120, 124, 128, 132, 144, 160, 180}
o106 = {16, 20, 36, 40, 48, 60, 64, 72, 84, 88, 92, 100, 112, 120, 124, 128, 132, 144, 160, 180}
o106 : List
Finally, we obtain the invariant \(F_{5 \omega_1} \) by starting with
the first basis vector and iteratively projecting away the eigenspaces
of \( (V(5 \omega_1) \otimes V(5\omega_1) )^{T}\) corresponding to
nonzero eigenvalues.
i107 : scale = (v) -> (
g:=gcd(flatten entries v);
if g==0 then return v else return 1/g*v
);
i108 : guidedProjection = (M,v0,EV) -> (
v:=v0;
h:=0;
for i from 0 to #EV-1 do (
h=M*v;
if h==0 then break;
v = scale(h - EV_i*v);
);
return v
);
i109 : M = matrix M;
4722 4722
o109 : Matrix QQ <--- QQ
i110 : i=0;
i111 : vi = transpose matrix {apply(numRows M, j -> if j==i then 1/1 else 0/1)};
4722 1
o111 : Matrix QQ <--- QQ
i112 : time Rvi = guidedProjection(M,vi,EV);
-- used 0.28741 seconds
4722 1
o112 : Matrix QQ <--- QQ
i113 : Rvi == 0
o113 = false
i114 : #select(numRows Rvi,i-> Rvi_(i,0)!=0)
o114 = 4722
i115 : #keys(tally flatten entries Rvi)
o115 = 52
i116 : -- Save output:
fn = openOut "V5w1otimesself invariant.m2";
i117 : F5w1 = flatten entries Rvi;
i118 : fn << toString(F5w1) << endl;
i119 : close fn;
Here are the output files
csM for
V5w1otimesself.m2.txt and V5w1otimesself invariant.m2.txt from this session.