@@ -424,10 +424,12 @@ theorem PosSemidef.commute_iff [DecidableEq n] {A B : Matrix n n 𝕜}
424424 exact posSemidef_iff_isHermitian_and_spectrum_nonneg.mp
425425 (posSemidef_conjTranspose_mul_self _) |>.2
426426
427+ /-- The matrix `vecMulVec a (star a)` is always positive semi-definite. -/
427428theorem posSemidef_vecMulVec_self_star [StarOrderedRing R] (a : n → R) :
428429 (vecMulVec a (star a)).PosSemidef := by
429430 simp [vecMulVec_eq Unit, ← conjTranspose_replicateCol, posSemidef_self_mul_conjTranspose]
430431
432+ /-- The matrix `vecMulVec (star a) a` is always postive semi-definite. -/
431433theorem posSemidef_vecMulVec_star_self [StarOrderedRing R] (a : n → R) :
432434 (vecMulVec (star a) a).PosSemidef := by
433435 simp [vecMulVec_eq Unit, ← conjTranspose_replicateRow, posSemidef_conjTranspose_mul_self]
@@ -572,19 +574,27 @@ theorem mul_conjTranspose_self [StarOrderedRing R] [NoZeroDivisors R] (A : Matri
572574 classical
573575 simpa using mul_mul_conjTranspose_same .one hA
574576
577+ /-- If `dotProduct · a` is injective, then `vecMulVec a (star a)` is positive definite.
578+
579+ In a nontrivial commutative ring with nontrivial index, this is never positive definite
580+ (see `Matrix.not_posDef_vecMulVec`). -/
575581theorem _root_.Matrix.posDef_vecMulVec_star [StarOrderedRing R] [NoZeroDivisors R] (a : n → R)
576582 (ha : Function.Injective (dotProduct · a)) :
577583 (vecMulVec a (star a)).PosDef := by
578584 simp only [vecMulVec_eq Unit, ← conjTranspose_replicateCol]
579585 exact mul_conjTranspose_self _ fun a b => by simp [← ha.eq_iff, funext_iff, vecMul]
580586
587+ /-- If `dotProduct a` is injective, then `vecMulVec (star a) a` is positive definite.
588+
589+ In a nontrivial commutative ring with nontrivial index, this is never positive definite
590+ (see `Matrix.not_posDef_vecMulVec`). -/
581591theorem _root_.Matrix.posDef_star_vecMulVec [StarOrderedRing R] [NoZeroDivisors R] (a : n → R)
582592 (ha : Function.Injective (dotProduct a)) :
583593 (vecMulVec (star a) a).PosDef := by
584594 simp only [vecMulVec_eq Unit, ← conjTranspose_replicateRow]
585595 exact conjTranspose_mul_self _ fun a b => by simp [← ha.eq_iff, funext_iff, mulVec]
586596
587- /-- In a nontrivial commutative ⋆- ring with nontrivial index, the matrices
597+ /-- In a nontrivial commutative ring with nontrivial index, the matrices
588598`vecMulVec a (star a)` and `vecMulVec (star a) a` are never positive definite. -/
589599theorem _root_.Matrix.not_posDef_vecMulVec [Nontrivial n] [Nontrivial R'] (a : n → R') :
590600 ¬ (vecMulVec a (star a)).PosDef ∧ ¬ (vecMulVec (star a) a).PosDef := by
0 commit comments