Positive definiteness over the rationals #
For an integer matrix, positive definiteness over ℤ is equivalent to positive definiteness
after casting its entries to ℚ. This lets results about rational quadratic forms certify
positive definiteness of integer matrices, and conversely.
The file also records the standard way of certifying a rational matrix as positive definite: write
it as Bᴴ * B for an explicit B, and check that it is invertible. One general fact about
Matrix.PosDef over any ring is recorded alongside, since Mathlib does not state it: a matrix on
an empty index type is positive definite, which is what the rank-zero members of the classical
Cartan families need.
Main results #
Matrix.PosDef.of_isEmpty: a matrix on an empty index type is positive definite.Ado.Matrix.posDef_map_intCast: an integer matrix that is positive definite overℤis positive definite overℚ.Ado.Matrix.posDef_map_intCast_iff: positive definiteness overℤand overℚagree.Ado.Matrix.posDef_conjTranspose_mul_self_of_isUnit: an invertible rational matrix of the formBᴴ * Bis positive definite.
A matrix on an empty index type is vacuously positive definite. This is what the
rank-zero members of the classical Cartan families A 0, B 0, C 0 and D 0 need.
An invertible rational matrix of the form Bᴴ * B is positive definite. Being of that
form gives positive semidefiniteness for free; invertibility upgrades it, by way of the
injectivity hypothesis of Matrix.PosDef.conjTranspose_mul_self.
Mathlib's Matrix.PosSemidef.posDef_iff_isUnit says the same thing in one step, but only over an
RCLike field, which ℚ is not; Matrix.PosDef.conjTranspose_mul_self is the criterion that does
apply here, needing only StarOrderedRing and NoZeroDivisors.