Pseudo Matrices

A pseudo matrix, ie. an object of type PMat, is a sequence of ideals together with a matrix. Pseudo matrices arise naturally in the (computational) theory of finitely generated torsion free modules over Dedekind domains, they are a natural extension of ordinary matrices which should be thought of as pseudo matrices where all the ideals are generated by \(1\). Pseudo matrices are generally used to represent the module that is generated by the rows of the matrix scaled by the elements of the corresponding ideal. Thus, if the matrix is regular, a linear combination of the rows lies in the module if and only if the coefficient of the \(i\)th row is a member of the \(i\)th ideal. The ideals are therefore called coefficient ideals.

Construction of a Pseudo Matrix

PseudoMatrix(I, m): [RngOrdFracIdl], MtrxSpcElt -> PMat
PseudoMatrix(I, m): [RngFunOrdIdl], MtrxSpcElt -> PMat

Construct the pseudo matrix with coefficient ideals the elements of the sequence \(I\) and matrix \(m\).

PseudoMatrix(m): Mtrx[FldOrd] -> PMat
PseudoMatrix(m): Mtrx[RngOrd] -> PMat
PseudoMatrix(m): Mtrx[FldFunOrd] -> PMat
PseudoMatrix(m): Mtrx[RngFunOrd] -> PMat

Construct the pseudo matrix with trivial coefficient ideals and the matrix \(m\).

PseudoMatrix(M): ModDed -> PMat
Generators: BoolElt                    Default: false

Construct the pseudo matrix described by the pseudo basis of the module \(M\). If Generators is true the pseudo matrix described by the pseudo generators of \(M\) is returned.

AbsoluteBasis(M): ModDed -> SeqEnum

Returns a basis of the module \(M\) over \({\mathbb{Z}}\) or \({\mathbb{F}}_q[t]\).

Elementary Functions

CoefficientIdeals(P): PMat -> SeqEnum

Return the coefficient ideals of the pseudo matrix \(P\).

Matrix(P): PMat -> Mtrx

Return the matrix of the pseudo matrix \(P\).

Order(pm): PMat -> Rng

Return the order the pseudo matrix \(pm\) is over.

Dimension(pm): PMat -> RngIntElt

The dimension of the pseudo matrix \(pm\). This is the number of columns of the matrix.

Length(pm): PMat -> RngIntElt

The length or dimension of the pseudo matrix \(pm\). This is the number of coefficient ideals of \(pm\).

Basis of a Pseudo Matrix

Basis(P): PMat -> SeqEnum

Return a list of sequences of ring elements corresponding to the entries of each row of the matrix of the pseudo matrix \(P\).

Predicates

p1 eq p2: PMat, PMat -> BoolElt

Return whether the pseudo matrices \(p1\) and \(p2\) are equal, that is, whether they have the same matrix and the same sequence of coefficient ideals.

Operations with Pseudo Matrices

Transpose(P): PMat -> PMat

Return the pseudo matrix whose coefficient ideals are the same as those of \(P\) but whose matrix is the transpose of the matrix of \(P\). This function requires the matrix to be square.

HermiteForm(X): PMat -> PMat, AlgMatElt

Return the Hermite normal form \(H\) of the pseudo matrix \(X\) together with a regular transformation matrix such that the module generated by \(X\) is the same as the one generated by \(H\) and such that (for the matrix parts) \(H=TX\) holds.

VerticalJoin(X, Y): PMat, PMat -> PMat

Return the pseudo matrix whose matrix is the vertical join of the matrices of the pseudo matrices \(X\) and \(Y\) with coefficient ideals the concatenation of those of \(X\) and \(Y\).

X meet Y: PMat, PMat -> PMat

Return the intersection of the pseudo matrices X and Y.

Module(X): PMat -> ModDed

Return the module \(\sum C_i * m_i\) where \({C_i}\) are the coefficient ideals of the pseudo matrix \(X\) and \(m_i\) are the rows of the matrix of \(X\).

I * X: RngOrdFracIdl, PMat -> PMat
I * X: RngFunOrdIdl, PMat -> PMat
X * I: PMat, RngOrdFracIdl -> PMat
X * I: PMat, RngFunOrdIdl -> PMat

The pseudo matrix whose coefficient ideals are those of the pseudo matrix \(X\) multiplied by \(I\) and whose matrix is the matrix of \(X\).