<<

. 33
( 33 .)



U := G[1];
P := G[2];
Conj := G[3];
if ( U = "0" ) then
printf("\nThe group of %A is %A.\n\n", L, G[2] );
return;
fi;
if ( U = "U3" ) then
if ( P = "C*" ) then
printf( "\nThe group of %A is a semidirect product\
of U3 by C*.\nIt is isomorphic to the subgroup of\
GL3 given by\nthe equations t21 = t31 = t32 = 0,\
t11 * t22 * t33 = 1, t11^%d = t22^%d.\n\n",
L, Conj[2], Conj[1] );
return ;
elif ( P = "C*^2" ) then
printf( "\nThe group of %A is a semidirect product\
of U3 by C* x C*.\nIt is isomorphic to T3 intersect SL3,\
i.e., the subgroup of GL3 given by\nthe equations\
t21 = t31 = t32 = 0, t11 * t22 * t33 = 1.\n\n", L );
return ;
else
error "In case U = U3, unexpected reductive subgroup: %1", P;
fi;
elif ( U = "C" ) then
if ( P = "C*" ) then
ConjText := sprintf( "t.u = t^%d * u for t in C*, u in C", Conj );
elif( P = "C*^2" ) then
ConjText := sprintf( "(t1, t2).u = t1^%d * t2^%d * u\n\
for t1, t2 in C*, u in C", Conj[1], Conj[2] );
else
error "In case U = C, unexpected reductive subgroup: %1", P;
fi;


147
elif ( U = "C^2" ) then
if ( P = "GL2" or P = "SL2" ) then
ConjText := translate_matrix_text( Conj, convert(P,string) );
elif ( P = "C*^2" ) then
ConjText := sprintf( "(t1,t2).(u,v) = (t1^%d * t2^%d * u,\
t1^%d * t2^%d * v)\nfor t1, t2 in C*, u, v in C",\
Conj[1][1], Conj[1][2], Conj[2][1], Conj[2][2] );
elif ( P = "C*" ) then
ConjText := sprintf( "t.(u,v) = (t^%d * u, t^%d * v)\n\
for t in C*, u, v in C", Conj[1], Conj[2] );
else
error "In case U = C^2, unexpected reductive subgroup: %1", P;
fi;
else
error "Unexpected unipotent subgroup: %1", U ;
fi;
printf("\nThe group of %A is a semidirect product of %A by %A.\n\
The conjugation action of %A on %A is given as follows:\n\
%s.\n\n", L, U, P, P, U, ConjText );
end:




148

<<

. 33
( 33 .)