Module docstring
{"# Matrix multiplication
This file defines vector and matrix multiplication
Main definitions
dotProduct: the dot product between two vectorsMatrix.mul: multiplication of two matricesMatrix.mulVec: multiplication of a matrix with a vectorMatrix.vecMul: multiplication of a vector with a matrixMatrix.vecMulVec: multiplication of a vector with a vector to get a matrixMatrix.instRing: square matrices form a ring
Notation
The locale Matrix gives the following notation:
⬝ᵥfordotProduct*ᵥforMatrix.mulVecᵥ*forMatrix.vecMul
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.
TODO
Under various conditions, multiplication of infinite matrices makes sense.
These have not yet been implemented.
","simp lemmas for Matrix.submatrixs interaction with Matrix.diagonal, 1, and Matrix.mul
for when the mappings are bundled. "}