zbl man page

zbl — make lower triangular matrix keeping bottom left


zbl [Options] <Matrix> <Result>


This program reads in <Matrix>, zeroizes all entries above the main diagonal, and writes out the result.  For example:

Mat Result
12100201201212212122 10000000000000000000
21000000000000001111 21000000000000000000
12212120101201201201 12200000000000000000
01020010020102012012 01020000000000000000
12100012101201012012 12100000000000000000
12120212121012012012 12120200000000000000

Notice that the input matrix need not be square, and the output matrix always has the same dimensions as the input matrix.

If file names are omitted, the matrix is read from G1 and output goes to P2.

The purpose of this program is to enable the MeatAxe to check if an irreducible representation in characteristic 2 fixes a quadratic form.  This job is not particularly simple — in many ways it is just a bodge, but it is possible:


Put the representation into standard basis using zsp(1) in "standard basis" mode.


Find the symplectic form fixed by using zsp(1) to make the matrix that conjugates the representation to its dual.


Quadratic forms can be represented by lower triangular matrices.  Since the representation is in standard basis (so all the basis vectors are images of the first under the group) the diagonal entries of any fixed quadratic form must all be equal, so try each field entry in turn by adding that scalar matrix to the bottom half of the symplectic form.


For each quadratic form Q made as in 3, test if it is fixed by forming G^TQG for each generator G, and checking that the diagonal is still the same as it was before (the symplectic form should have been checked before starting). The check can be done by adding the form to the result, then doing zbl, ztr(1), and zbl again — the result will be the zero matrix (use znu(1)) iff the form was fixed (given that the symplectic one was).



Quiet, no messages.


Verbose, more messages.

-T <MaxTime>

Set CPU time limit

Input Files


Input matrix

Output Files


Output matrix.

See Also

znu(1), zsp(1), ztr(1)


2.4.24 MeatAxe User Commands