Basic rules for the quadratic form of a matrix #
Elementary rules for Mathlib's Matrix.toQuadraticForm' — evaluation, its behaviour under
scaling, negation, transposition and on diagonal matrices — together with the isometries of the
attached forms induced by congruence, block diagonals and reindexing. They are kept apart from
the signature theory so that consumers needing only these rules do not import it.
Main definitions #
Matrix.isometryEquivCongr: congruence by a matrix with unit determinant is an isometry.Matrix.isometryEquivFromBlocks: a block-diagonal matrix gives the product of the forms.Matrix.isometryEquivReindex: reindexing transports the coordinates of the form.
Main results #
Matrix.toQuadraticForm'_apply: the form evaluated at a vector isx ⬝ᵥ A *ᵥ x.Matrix.toQuadraticForm'_smul: scaling a matrix scales its quadratic form.Matrix.toQuadraticForm'_transpose: a matrix and its transpose carry the same form.Matrix.toQuadraticForm'_add_transpose: the form ofA + Aᵀis twice the form ofA.Matrix.toQuadraticForm'_diagonal: a diagonal matrix gives a weighted sum of squares.
The quadratic form attached to a matrix, evaluated at a vector.
Scaling a matrix scales its quadratic form.
A matrix and its transpose carry the same quadratic form.
The quadratic form of A + Aᵀ is twice the quadratic form of A.
The quadratic form of -A is the negative of the quadratic form of A.
The quadratic form of a diagonal matrix is the corresponding weighted sum of squares.
Congruence by a matrix with unit determinant is an isometry of the attached quadratic forms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Splitting the coordinates of a block-diagonal matrix is an isometry onto the orthogonal product of the quadratic forms of the two blocks.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reindexing the rows and columns of a matrix along the same equivalence only transports the coordinates of its quadratic form.
Equations
- Matrix.isometryEquivReindex e A = { toLinearEquiv := LinearEquiv.funCongrLeft R R e, map_app' := ⋯ }