MeatAxe: zqt - Clean and Quotient

MeatAxe 2.4

- Main Page
- Related Pages
- Modules
- Data Structures

zqt - Clean and Quotient

## Command Line

    zqt [Options] [-i] Subsp Matrix Quot

Options
  Standard options, see Standard Command Line Options

-i
  Calculate the action on the quotient.

Subsp
  The subspace.

Mat
  The matrix.

Quot.
  The quotient.

## Input Files

Subsp
  The subspace, a M×N matrix in echelon form.

Mat
  The matrix (L×N).

## Output Files

Quot.
  The quotient, a L×(N-M) matrix. With "-i", the action on the quotient, a (N-M)×(N-M) matrix.

## Description

This program reads in a subspace and applies the canonical map to its quotient on a matrix. The result is written out to Quot. Subsp should be a matrix in semi-echelon form, and the two input matrices must have the same field parameter and the same number of columns. If this is not the case the program stops with an error message.

Otherwise the program reads in Subsp, builds a table of pivot columns and then proceeds, row by row, through Matrix. For each row, the significant entries are zeroized by adding the correct multiple of rows of Subsp. The insignificant columns are then extracted and written out to Quot. Hence

- Subsp has M rows, N columns and is in echelon form,
- Matrix has L rows, N columns and is otherwise arbitrary, and
- Quot has L rows and N-M columns. In other words, the program calculates the projection of Matrix onto the B-A dimensional quotient space defined by Subsp. If the "-i" option is used, zqt calculates the action of the Matrix on the quotient. This is done by projecting the matrix as explained above, and taking only the insignificant rows. Insignificant rows are defined by treating the pivot table as a table of rows rather than columns. Example: Let "spc" be an invariant subspace and "z1" an algebra element (a square matrix). Then, after

      zqt -i spc z1 q1

  "q1" contains the action of "z1" on the quotient by "spc".

Another, less obvious use of zqt is to condense a matrix representation. First, find an element E of the group algebra with stable rank, i.e., rank(E*E) = rank(E). This can be done by taking any element F of the group algebra and raising it to higher powers until the rank stabilizes. We may then condense onto the kernel of E as follows

    zef E X        X is the echelon form of Image(E)
    znu E Y        Y is the kernel of E
    zqt X Y Z      calculate the canonical projection of Y ...
    ziv Z T        ... and adjust Y so that the canonical ...
    zmu T Y Y1     ... projection of Y1 is the identity
    zmu Y1 Z1 T1   calculate KZ1 = condensed Z1
    zqt X T1 KZ1
    zmu Y1 Z2 T1   calculate KZ2 = condensed Z2
    zqt X T1 KZ2

## Implementation Details

It is not completely checked that Subsp is in echelon form.

The Subspace and one row of both Matrix and Subsp must fit into memory.