Bruhat decomposition of parabolic subgroup from that of borel subgroup

293 Views Asked by At

For $G=Sp(n,q)$, I can take an arbitrary element $S$ and find its Bruhat decomposition according to the Borel subgroup (in this case lower triangular symplectic matrices). This is thanks to a previously asked and answered question Bruhat decomposition in GAP. So I'm able to express $S=L_1 W L_2$. $L_i$ are lower triangular and $W$ is monomial (diagonal times permutation). Now I'd like to find a decomposition of $S$ using a different (larger,parabolic but not borel) subgroup of "block triangular" symplectic matrices : these are zero in the upper right quandrant so the have a form $[[A,0],[C,D]]$; so $S=T_1 V T_2$ where $T_i$ are block triangular. $V$ should end up being a monomial matrix is some canonical form. Is there a way to derive the second decomposition from the first?

Here's an example of how I use the GAP package BruhatDecomposition per the request in the comments (it's not redistributed with GAP so you'd have to install it yourself).

LoadPackage("BruhatDecomposition","0"); 
SetInfoLevel(InfoBruhat,0);

p:=2; n:=4; 
grp:=SymplecticGroup(2*n,p);

if(\mod(p,2)=0)then
 stdgens:=LGOStandardGensSpEvenChar(2*n,p);
else
 stdgens:=LGOStandardGensSp(2*n,p);
fi;

A:=Random(grp);
slp:=BruhatDecompositionSp(stdgens,A); 
slpx:=ResultOfStraightLineProgram(slp[1],stdgens);

L1:=slpx[1]^-1;
W:=slpx[3]*slpx[4];
L2:=slpx[2]^-1;

Print("check A=L1WL2 ",A=L1*W*L2,"\n");
Print("L1=\n");Display(L1);
Print("W=\n");Display(W);
Print("L2=\n");Display(L2);