gap-system / gap

Main development repository for GAP - Groups, Algorithms, Programming, a System for Computational Discrete Algebra
https://www.gap-system.org
GNU General Public License v2.0
813 stars 161 forks source link

`RootSystem` behaves differently for isomorphic lie algebras #5402

Closed lgoettgens closed 1 year ago

lgoettgens commented 1 year ago

Observed behaviour

I have two lie algebras, both defined via structure constants. The first SC-table gets computed by hand using the basis {X_i,j = E_i,j-E_j,i | i < j} for so_5. the second is the output of StructureConstantsTable(Basis(SimpleLieAlgebra("B",2,Rationals)));. Both lie algebras are known to be isomorphic, and gap can even deduce that both are of type B_2. However, it can compute only one of the root systems, and thus stuff like HighestWeightModule

gap> L1:=LieAlgebraByStructureConstants(Rationals, [ [ [ [  ], [  ] ], [ [ 5 ], [ -1 ] ], [ [ 6 ], [ -1 ] ], [ [ 7 ], [ -1 ] ], [ [ 2 ], [ 1 ] ], [ [ 3 ], [ 1 ] ], [ [ 4 ], [ 1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ] ], [ [ [ 5 ], [ 1 ] ], [ [  ], [  ] ], [ [ 8 ], [ -1 ] ], [ [ 9 ], [ -1 ] ], [ [ 1 ], [ -1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 3 ], [ 1 ] ], [ [ 4 ], [ 1 ] ], [ [  ], [  ] ] ], [ [ [ 6 ], [ 1 ] ], [ [ 8 ], [ 1 ] ], [ [  ], [  ] ], [ [ 10 ], [ -1 ] ], [ [  ], [  ] ], [ [ 1 ], [ -1 ] ], [ [  ], [  ] ], [ [ 2 ], [ -1 ] ], [ [  ], [  ] ], [ [ 4 ], [ 1 ] ] ], [ [ [ 7 ], [ 1 ] ], [ [ 9 ], [ 1 ] ], [ [ 10 ], [ 1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 1 ], [ -1 ] ], [ [  ], [  ] ], [ [ 2 ], [ -1 ] ], [ [ 3 ], [ -1 ] ] ], [ [ [ 2 ], [ -1 ] ], [ [ 1 ], [ 1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 8 ], [ -1 ] ], [ [ 9 ], [ -1 ] ], [ [ 6 ], [ 1 ] ], [ [ 7 ], [ 1 ] ], [ [  ], [  ] ] ], [ [ [ 3 ], [ -1 ] ], [ [  ], [  ] ], [ [ 1 ], [ 1 ] ], [ [  ], [  ] ], [ [ 8 ], [ 1 ] ], [ [  ], [  ] ], [ [ 10 ], [ -1 ] ], [ [ 5 ], [ -1 ] ], [ [  ], [  ] ], [ [ 7 ], [ 1 ] ] ], [ [ [ 4 ], [ -1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 1 ], [ 1 ] ], [ [ 9 ], [ 1 ] ], [ [ 10 ], [ 1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 5 ], [ -1 ] ], [ [ 6 ], [ -1 ] ] ], [ [ [  ], [  ] ], [ [ 3 ], [ -1 ] ], [ [ 2 ], [ 1 ] ], [ [  ], [  ] ], [ [ 6 ], [ -1 ] ], [ [ 5 ], [ 1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 10 ], [ -1 ] ], [ [ 9 ], [ 1 ] ] ], [ [ [  ], [  ] ], [ [ 4 ], [ -1 ] ], [ [  ], [  ] ], [ [ 2 ], [ 1 ] ], [ [ 7 ], [ -1 ] ], [ [  ], [  ] ], [ [ 5 ], [ 1 ] ], [ [ 10 ], [ 1 ] ], [ [  ], [  ] ], [ [ 8 ], [ -1 ] ] ], [ [ [  ], [  ] ], [ [  ], [  ] ], [ [ 4 ], [ -1 ] ], [ [ 3 ], [ 1 ] ], [ [  ], [  ] ], [ [ 7 ], [ -1 ] ], [ [ 6 ], [ 1 ] ], [ [ 9 ], [ -1 ] ], [ [ 8 ], [ 1 ] ], [ [  ], [  ] ] ], -1, 0 ]);
<Lie algebra of dimension 10 over Rationals>
gap> L2:=LieAlgebraByStructureConstants(Rationals, [ [ [ [  ], [  ] ], [ [ 3 ], [ 1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 9 ], [ 1 ] ], [ [  ], [  ] ], [ [ 6 ], [ -1 ] ], [ [  ], [  ] ], [ [ 1 ], [ -2 ] ], [ [ 1 ], [ 2 ] ] ], [ [ [ 3 ], [ -1 ] ], [ [  ], [  ] ], [ [ 4 ], [ -2 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 10 ], [ 1 ] ], [ [ 5 ], [ 2 ] ], [ [ 7 ], [ 1 ] ], [ [ 2 ], [ 1 ] ], [ [ 2 ], [ -2 ] ] ], [ [ [  ], [  ] ], [ [ 4 ], [ 2 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 2 ], [ -1 ] ], [ [ 1 ], [ 2 ] ], [ [ 9, 10 ], [ 2, 1 ] ], [ [ 6 ], [ -1 ] ], [ [ 3 ], [ -1 ] ], [ [  ], [  ] ] ], [ [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 3 ], [ 1 ] ], [ [ 2 ], [ -1 ] ], [ [ 9, 10 ], [ 1, 1 ] ], [ [  ], [  ] ], [ [ 4 ], [ -2 ] ] ], [ [ [ 9 ], [ -1 ] ], [ [  ], [  ] ], [ [ 2 ], [ 1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 7 ], [ -1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 5 ], [ 2 ] ], [ [ 5 ], [ -2 ] ] ], [ [ [  ], [  ] ], [ [ 10 ], [ -1 ] ], [ [ 1 ], [ -2 ] ], [ [ 3 ], [ -1 ] ], [ [ 7 ], [ 1 ] ], [ [  ], [  ] ], [ [ 8 ], [ 2 ] ], [ [  ], [  ] ], [ [ 6 ], [ -1 ] ], [ [ 6 ], [ 2 ] ] ], [ [ [ 6 ], [ 1 ] ], [ [ 5 ], [ -2 ] ], [ [ 9, 10 ], [ -2, -1 ] ], [ [ 2 ], [ 1 ] ], [ [  ], [  ] ], [ [ 8 ], [ -2 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 7 ], [ 1 ] ], [ [  ], [  ] ] ], [ [ [  ], [  ] ], [ [ 7 ], [ -1 ] ], [ [ 6 ], [ 1 ] ], [ [ 9, 10 ], [ -1, -1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 8 ], [ 2 ] ] ], [ [ [ 1 ], [ 2 ] ], [ [ 2 ], [ -1 ] ], [ [ 3 ], [ 1 ] ], [ [  ], [  ] ], [ [ 5 ], [ -2 ] ], [ [ 6 ], [ 1 ] ], [ [ 7 ], [ -1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ] ], [ [ [ 1 ], [ -2 ] ], [ [ 2 ], [ 2 ] ], [ [  ], [  ] ], [ [ 4 ], [ 2 ] ], [ [ 5 ], [ 2 ] ], [ [ 6 ], [ -2 ] ], [ [  ], [  ] ], [ [ 8 ], [ -2 ] ], [ [  ], [  ] ], [ [  ], [  ] ] ], -1, 0 ]);
<Lie algebra of dimension 10 over Rationals>
gap> SemiSimpleType(L1);
"B2"
gap> SemiSimpleType(L2);
"B2"
gap> RootSystem(L1);
fail
gap> RootSystem(L2);
<root system of rank 2>

Expected behaviour

get a valid root system in both cases

Copy and paste GAP banner (to tell us about your setup)

┌───────┐   GAP 4.12.2 of 2022-12-18
 │  GAP  │   https://www.gap-system.org
 └───────┘   Architecture: x86_64-pc-linux-gnu-default64-kv8
 Configuration:  gmp 6.2.1, GASMAN, readline
 Loading the library and packages ...
 Packages:   AClib 1.3.2, Alnuth 3.2.1, AtlasRep 2.1.6, AutPGrp 1.11, Browse 1.8.19, 
             CRISP 1.4.6, Cryst 4.1.25, CrystCat 1.1.10, CTblLib 1.3.4, 
             curlInterface 2.3.1, FactInt 1.6.3, FGA 1.4.0, Forms 1.2.9, GAPDoc 1.6.6, 
             genss 1.6.8, IO 4.8.0, IRREDSOL 1.4.4, LAGUNA 3.9.5, orb 4.9.0, 
             Polenta 1.3.10, Polycyclic 2.16, PrimGrp 3.4.3, RadiRoot 2.9, recog 1.4.2, 
             ResClasses 4.7.3, SmallGrp 1.5.1, Sophus 1.27, SpinSym 1.5.2, TomLib 1.2.9, 
             TransGrp 3.6.3, utils 0.81
 Try '??help' for help. See also '?copyright', '?cite' and '?authors'
fingolfin commented 1 year ago

Hmmm...

gap> SetInfoLevel(InfoAlgebra, 3);
gap> RootSystem(L1);
#I  the Cartan subalgebra of <L> in not split
fail
fingolfin commented 1 year ago

Are you sure these two are isomorphic over Q (it may be trivial, I did not try finding out myself). If so, can you describe an explicit isomorphism?

lgoettgens commented 1 year ago

after thinking some more about it, I could only find an isomorphism over Q(i). Dumb me, sorry for the confusion. As far as I can remember, SemiSimpleType should only give enough information about the lie algebra over fields of char 0 and alg. closed.

fingolfin commented 1 year ago

Yeah, so if you replace Rationals by CF(4), then it works:

gap> L1:=LieAlgebraByStructureConstants(CF(4), [ [ [ [  ], [  ] ], [ [ 5 ], [ -1 ] ], [ [ 6 ], [ -1 ] ], [ [ 7 ], [ -1 ] ], [ [ 2 ], [ 1 ] ], [ [ 3 ], [ 1 ] ], [ [ 4 ], [ 1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ] ], [ [ [ 5 ], [ 1 ] ], [ [  ], [  ] ], [ [ 8 ], [ -1 ] ], [ [ 9 ], [ -1 ] ], [ [ 1 ], [ -1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 3 ], [ 1 ] ], [ [ 4 ], [ 1 ] ], [ [  ], [  ] ] ], [ [ [ 6 ], [ 1 ] ], [ [ 8 ], [ 1 ] ], [ [  ], [  ] ], [ [ 10 ], [ -1 ] ], [ [  ], [  ] ], [ [ 1 ], [ -1 ] ], [ [  ], [  ] ], [ [ 2 ], [ -1 ] ], [ [  ], [  ] ], [ [ 4 ], [ 1 ] ] ], [ [ [ 7 ], [ 1 ] ], [ [ 9 ], [ 1 ] ], [ [ 10 ], [ 1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 1 ], [ -1 ] ], [ [  ], [  ] ], [ [ 2 ], [ -1 ] ], [ [ 3 ], [ -1 ] ] ], [ [ [ 2 ], [ -1 ] ], [ [ 1 ], [ 1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 8 ], [ -1 ] ], [ [ 9 ], [ -1 ] ], [ [ 6 ], [ 1 ] ], [ [ 7 ], [ 1 ] ], [ [  ], [  ] ] ], [ [ [ 3 ], [ -1 ] ], [ [  ], [  ] ], [ [ 1 ], [ 1 ] ], [ [  ], [  ] ], [ [ 8 ], [ 1 ] ], [ [  ], [  ] ], [ [ 10 ], [ -1 ] ], [ [ 5 ], [ -1 ] ], [ [  ], [  ] ], [ [ 7 ], [ 1 ] ] ], [ [ [ 4 ], [ -1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 1 ], [ 1 ] ], [ [ 9 ], [ 1 ] ], [ [ 10 ], [ 1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 5 ], [ -1 ] ], [ [ 6 ], [ -1 ] ] ], [ [ [  ], [  ] ], [ [ 3 ], [ -1 ] ], [ [ 2 ], [ 1 ] ], [ [  ], [  ] ], [ [ 6 ], [ -1 ] ], [ [ 5 ], [ 1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [ 10 ], [ -1 ] ], [ [ 9 ], [ 1 ] ] ], [ [ [  ], [  ] ], [ [ 4 ], [ -1 ] ], [ [  ], [  ] ], [ [ 2 ], [ 1 ] ], [ [ 7 ], [ -1 ] ], [ [  ], [  ] ], [ [ 5 ], [ 1 ] ], [ [ 10 ], [ 1 ] ], [ [  ], [  ] ], [ [ 8 ], [ -1 ] ] ], [ [ [  ], [  ] ], [ [  ], [  ] ], [ [ 4 ], [ -1 ] ], [ [ 3 ], [ 1 ] ], [ [  ], [  ] ], [ [ 7 ], [ -1 ] ], [ [ 6 ], [ 1 ] ], [ [ 9 ], [ -1 ] ], [ [ 8 ], [ 1 ] ], [ [  ], [  ] ] ], -1, 0 ]);
<Lie algebra of dimension 10 over GaussianRationals>
gap> RootSystem(L1);
<root system of rank 2>

Your first Lie algebra is of absolute type B2 but not split over the rationals, hence no root system can be computed (the documentation for RootSystem explicitly states that it requires a split Cartan subalgebra)

So all in all there seems to be no actual issue here?