Module docstring
{"# Matrices
This file defines basic properties of matrices up to the module structure.
Matrices with rows indexed by m, columns indexed by n, and entries of type α are represented
with Matrix m n α. For the typical approach of counting rows and columns,
Matrix (Fin m) (Fin n) α can be used.
Main definitions
Matrix.transpose: transpose of a matrix, turning rows into columns and vice versaMatrix.submatrix: take a submatrix by reindexing rows and columnsMatrix.module: matrices are a module over the ring of entries
Notation
The locale Matrix gives the following notation:
ᵀforMatrix.transpose
See Mathlib/Data/Matrix/ConjTranspose.lean for
ᴴforMatrix.conjTranspose
Implementation notes
For convenience, Matrix m n α is defined as m → n → α, as this allows elements of the matrix
to be accessed with A i j. However, it is not advisable to construct matrices using terms of the
form fun i j ↦ _ or even (fun i j ↦ _ : Matrix m n α), as these are not recognized by Lean
as having the right type. Instead, Matrix.of should be used.
","simp-normal form pulls of to the outside. "}