Row operations on generator matrices #
Left multiplication changes the rows of a generator matrix by linear combinations and therefore cannot enlarge its generated code. If the left factor is invertible, this operation preserves the code. This file records that fact through the exact image formula for the generated code, so it can also be used for nonsquare coefficient matrices whose rows still span the whole coefficient space.
The second part treats deletion of a row. The matrix Matrix.deleteRow G r retains all rows of G
except row r; it generates the same code precisely when the deleted row is generated by those
remaining rows. In particular, every linearly dependent finite family of rows admits such a
deletion. Together these results justify row reduction of generator matrices without changing the
linear code they present.
Main results #
Matrix.generatedBy_mul_eq_mapdescribes the code generated after left multiplication.Matrix.generatedBy_mul_eq_of_isUnitproves invariance under invertible row operations.Matrix.generatedBy_deleteRow_eq_iffcharacterizes when deleting one row preserves the code.Matrix.exists_deleteRow_generatedBy_eq_of_not_linearIndependentfinds a redundant row in a linearly dependent generator family.
A left factor whose rows span the whole coefficient space preserves the generated code.
Invertible row operations preserve the code generated by a matrix.
An invertible row operation preserves the property of being a generator matrix for C.
Applying an invertible row operation to a generator matrix gives another generator matrix.
Rows selected along f generate the original code exactly when they generate every original
row.
Selecting rows along a surjective map, possibly with repetitions, preserves the generated code. In particular, this applies to reindexing the rows along an equivalence.
Deleting a row cannot enlarge the generated code.
Deleting row r preserves the generated code exactly when that row is generated by the
remaining rows.
A row generated by all the other rows can be deleted without changing the generated code.
Deleting a redundant row from a generator matrix leaves a generator matrix for the same code.
A linearly dependent finite row family contains a row that can be deleted without changing the generated code.