//Standard generators of L2(31) are a and b where a has order 2, b has order 3
//and ab has order 31.
//Standard generators of the double cover 2.L2(31) = SL2(31) are preimages A and
//B where B has order 3 and AB has order 31.
_LR := rec < recformat< F: GrpFP, AI: SeqEnum, G: GrpMat > |
      F := FreeGroup(2) >;
_LR`AI := [ [a^-1, b^-1] ]
             where a is (_LR`F).1 where b is (_LR`F).2;
//single constituent
_LR`G :=
/*
Original group: c9Group("sl231p")
From DB /nb/reps/l2/2l231/d32.2l231.X22.si2.M
Schur index: 2
Character: ( 32, -32, -1, 0, 2, 2, 1, 0, 0, -2, -2, -1, -1, -1, -1, 0, 0, 0, 0, 
1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1 )
*/
MatrixGroup<32, K | [
Matrix(SparseMatrix(K,32,32,[
<1,12,1>,<2,9,w>,<3,7,-w-1>,<4,5,w+1>,<5,4,w>,<6,
32,w>,<7,3,-w>,<8,13,-w>,<9,2,w+1>,<10,18,-1>,<11,20,
-w>,<12,1,-1>,<13,8,-w-1>,<14,15,1>,<15,14,-1>,<16,31,
-w>,<17,19,1>,<18,10,1>,<19,17,-1>,<20,11,-w-1>,<21,22,
-1>,<22,21,1>,<23,26,w>,<24,30,-w-1>,<25,27,1>,<26,23,
w+1>,<27,25,-1>,<28,29,w>,<29,28,w+1>,<30,24,-w>,<31,
16,-w-1>,<32,6,w+1>])),
Matrix(SparseMatrix(K,32,32,[
<1,31,w>,<2,6,-w>,<3,2,1>,<4,26,-w-1>,<5,5,-w-1>,<6,
3,w+1>,<7,23,-w>,<8,14,1>,<9,30,w+1>,<10,21,1>,<11,
25,-1>,<12,16,-w-1>,<13,9,-1>,<14,19,w>,<15,12,w>,<16,
15,1>,<17,22,w+1>,<18,7,-1>,<19,8,-w-1>,<20,17,-w-1>,
<21,28,-w-1>,<22,20,w+1>,<23,18,-w-1>,<24,4,-1>,<25,
27,-1>,<26,24,-w>,<27,11,1>,<28,10,w>,<29,1,-w-1>,<30,
13,w>,<31,29,1>,<32,32,w>]))
]> where w := K.1 where K := ext<K|Polynomial(K, [1, 1, 1])> where K is 
RationalField();

return _LR;
