The signature of a square matrix over a linearly ordered field #
The signature of a square matrix A over a linearly ordered field is the difference between
the two indices of inertia of the quadratic form x ↦ x ⬝ᵥ A *ᵥ x, that is Mathlib's
sigPos A.toQuadraticForm' - sigNeg A.toQuadraticForm'. Only the symmetric part of A is
visible to that form, so the signature of A agrees with the signature of A + Aᵀ.
The three properties that make the signature computable are proved here: it is invariant under
congruence A ↦ P * A * Pᵀ by a matrix with unit determinant, it is additive along a block
diagonal, and on a diagonal matrix it counts the positive entries against the negative ones.
Together these evaluate the signature of any matrix diagonalised by an explicit congruence.
For an integral symmetric bilinear form presented as a lattice,
TauCeti.IntegralLattice.signature records the finer triple (n₊, n₀, n₋); the definition
here is the basis-level matrix counterpart, which is what a congruence class of matrices — such
as the S-equivalence class of a Seifert matrix — offers.
Main definitions #
Matrix.signature: the difference of the two indices of inertia.
Main results #
Matrix.signature_congr: invariance under congruence by a matrix with unit determinant.Matrix.signature_submatrix_equiv_self: invariance under an equivalence of the coordinate type.Matrix.signature_fromBlocks_zero: additivity along a block diagonal.Matrix.signature_diagonal: the signature of a diagonal matrix as a sum of signs.Matrix.signature_hyperbolicGram: the hyperbolic plane has signature zero.Matrix.signature_eq_of_congr_diagonal: the signature read off an explicit diagonalising congruence.Matrix.signature_add_transpose: the signature ofA + Aᵀis the signature ofA.Matrix.signature_smul_of_pos: positive scaling does not change the signature.
References #
- W. Ebeling, Lattices and Codes, Chapter 1.
The signature of a square matrix over a linearly ordered field: the positive index of
inertia of the quadratic form x ↦ x ⬝ᵥ A *ᵥ x minus its negative index.
Only the symmetric part of A contributes, by Matrix.signature_add_transpose.
The quadratic form of a matrix does not depend on the decidability of equality on the index
type, so the local decider here is invisible: Matrix.signature_def identifies the definition
with the one read off any DecidableEq ι instance. Keeping it local leaves DecidableEq out
of the statements that do not mention Matrix.toQuadraticForm', Matrix.diagonal or
Matrix.det themselves.
Equations
- A.signature = ↑(sigPos A.toQuadraticForm') - ↑(sigNeg A.toQuadraticForm')
Instances For
Isometric quadratic forms have the same signature, so the signature only depends on the isometry class of the form of a matrix.
Congruence invariance of the signature. Replacing A by P * A * Pᵀ for a matrix P
with unit determinant does not change the signature.
Reindexing both coordinates of a matrix along an equivalence does not change its signature.
The zero matrix has signature zero.
The signature of a matrix is the signature of its symmetrisation A + Aᵀ.
Scaling a matrix by a positive scalar does not change its signature.
Additivity of the signature along a block diagonal.
The signature of a diagonal matrix counts its positive entries against its negative ones.
The signature from an explicit diagonalising congruence.
The Gram matrix of a hyperbolic plane has signature zero: it is congruent to
diagonal ![2, -2].