# Number of rows in matrix:
m := Length(mat); if (m < 1) then
Error("Representation matrix cannot be empty.\n"); fi;
# Check each row length to insure column consistency in matrix:
n := Length(mat[1]);
i := 2; while (i <= m) do if (Length(mat[i]) <> n) then
Error("Matrix must have rows of equal length.\n"); fi;
i := i + 1;
od;
# Initialize list for projective module P0 in presentation: # NOTE: this is the starting vertex in each row, and should be # the same for each element in each row.
P0List := [];
# Check that each row of matrix has uniformly same starting vertex:
i := 1; while (i <= m) do
# Find first nonzero entry in row and get Source vertex:
nzentry := First(mat[i], x->not IsZero(x));
nzterm := CoefficientsAndMagmaElements(nzentry);
v := SourceOfPath(nzterm[1]);
if IsLeftUniform(mat[i],v) then
P0List[i] := v; else
Error("All rows of matrix must contain paths left uniform,\n", "starting with the same vertex.\n"); fi;
i := i + 1;
od;
# Initialize list of vertices for projective module P1 in presentation:
P1List := [];
# Check that each column of matrix has uniformly same starting vertex:
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.