Skip to content

Commit 9e4596d

Browse files
committed
docstrings
1 parent 3c4f645 commit 9e4596d

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

Mathlib/LinearAlgebra/Matrix/PosDef.lean

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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. -/
427428
theorem 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. -/
431433
theorem 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`). -/
575581
theorem _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`). -/
581591
theorem _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. -/
589599
theorem _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

Comments
 (0)