needsPackage("LieAlgebraRepresentations"); debug LieAlgebraRepresentations; -- Here we list the quantities whose factorial will be taken -- We don't actually compute the factorials molevFactors = (GTP) -> ( n:=#(GTP#"weight")+1; p:=1; N1:={}; N2:={}; D1:={}; D2:={}; for k from 2 to n do ( for i from 1 to k-1 do ( for j from i to k-1 do ( N1 = append(N1,((GTP#(k,i)-i+1)-(GTP#(k-1,j)-j+1))); D1 = append(D1,((GTP#(k-1,i)-i+1)-(GTP#(k-1,j)-j+1))); ) ); for i from 1 to k-1 do ( for j from i+1 to k do ( N2 = append(N2,((GTP#(k,i)-i+1)-(GTP#(k,j)-j+1)-1)); D2 = append(D2,((GTP#(k-1,i)-i+1)-(GTP#(k,j)-j+1)-1)); ) ); ); {N1,N2,D1,D2} ) matchedFactors = (L0,L1) -> ( sort(L1_0)==sort(L0_3) and sort(L1_2)==sort(L0_2) and sort(L1_1)==sort(L0_1) and sort(L1_3)==sort(L0_0) ); end load "Proposition_A.8_proof.m2"; -- Example 1 g = simpleLieAlgebra("A",3); lambda = {2,0,0}; lambdastar = reverse lambda; Blambda = gtPatterns("A",dynkinToPartition("A",lambda)); Blambdastar = gtPatterns("A",dynkinToPartition("A",lambdastar)); N = #Blambda; sigma = apply(N, i -> first select(N, k -> Blambdastar_k==dualGTPattern(Blambda_i))); Blambdastar = apply(N, i -> Blambdastar_(sigma_i)); all(N, i -> matchedFactors(molevFactors(gtpA(Blambda_i)),molevFactors(gtpA(Blambdastar_i)))) -- Example 2 g = simpleLieAlgebra("A",3); lambda = {3,2,1}; lambdastar = reverse lambda; Blambda = gtPatterns("A",dynkinToPartition("A",lambda)); Blambdastar = gtPatterns("A",dynkinToPartition("A",lambdastar)); N = #Blambda; sigma = apply(N, i -> first select(N, k -> Blambdastar_k==dualGTPattern(Blambda_i))); Blambdastar = apply(N, i -> Blambdastar_(sigma_i)); all(N, i -> matchedFactors(molevFactors(gtpA(Blambda_i)),molevFactors(gtpA(Blambdastar_i)))) -- Example 3 g = simpleLieAlgebra("A",5); lambda = {1,0,0,0,1}; lambdastar = reverse lambda; Blambda = gtPatterns("A",dynkinToPartition("A",lambda)); Blambdastar = gtPatterns("A",dynkinToPartition("A",lambdastar)); N = #Blambda; sigma = apply(N, i -> first select(N, k -> Blambdastar_k==dualGTPattern(Blambda_i))); Blambdastar = apply(N, i -> Blambdastar_(sigma_i)); all(N, i -> matchedFactors(molevFactors(gtpA(Blambda_i)),molevFactors(gtpA(Blambdastar_i)))) -- Example 4 g = simpleLieAlgebra("A",6); lambda = {2,0,0,0,1,0}; lambdastar = reverse lambda; Blambda = gtPatterns("A",dynkinToPartition("A",lambda)); Blambdastar = gtPatterns("A",dynkinToPartition("A",lambdastar)); N = #Blambda; sigma = apply(N, i -> first select(N, k -> Blambdastar_k==dualGTPattern(Blambda_i))); Blambdastar = apply(N, i -> Blambdastar_(sigma_i)); all(N, i -> matchedFactors(molevFactors(gtpA(Blambda_i)),molevFactors(gtpA(Blambdastar_i))))