Skip to content

Commit 99cf093

Browse files
committed
feat: 0 < c * a * star c in StarOrderedRings (#13975)
This is a prerequisite for showing when diagonal matrices are positive definite. Missed from #13748
1 parent d48b0c6 commit 99cf093

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

Mathlib/Algebra/Star/Order.lean

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -234,11 +234,24 @@ lemma IsSelfAdjoint.mono {x y : R} (h : x ≤ y) (hx : IsSelfAdjoint x) : IsSelf
234234
lemma IsSelfAdjoint.of_nonneg {x : R} (hx : 0 ≤ x) : IsSelfAdjoint x :=
235235
(isSelfAdjoint_zero R).mono hx
236236

237+
theorem conjugate_lt_conjugate {a b : R} (hab : a < b) {c : R} (hc : IsRegular c) :
238+
star c * a * c < star c * b * c := by
239+
rw [(conjugate_le_conjugate hab.le _).lt_iff_ne, hc.right.ne_iff, hc.star.left.ne_iff]
240+
exact hab.ne
241+
242+
theorem conjugate_lt_conjugate' {a b : R} (hab : a < b) {c : R} (hc : IsRegular c) :
243+
c * a * star c < c * b * star c := by
244+
simpa only [star_star] using conjugate_lt_conjugate hab hc.star
245+
246+
theorem conjugate_pos {a : R} (ha : 0 < a) {c : R} (hc : IsRegular c) : 0 < star c * a * c := by
247+
simpa only [mul_zero, zero_mul] using conjugate_lt_conjugate ha hc
248+
249+
theorem conjugate_pos' {a : R} (ha : 0 < a) {c : R} (hc : IsRegular c) : 0 < c * a * star c := by
250+
simpa only [star_star] using conjugate_pos ha hc.star
251+
237252
theorem star_mul_self_pos [Nontrivial R] {x : R} (hx : IsRegular x) : 0 < star x * x := by
238-
rw [(star_mul_self_nonneg _).lt_iff_ne]
239-
intro h
240-
rw [← mul_zero (star x), hx.star.left.eq_iff] at h
241-
exact hx.ne_zero h.symm
253+
rw [(star_mul_self_nonneg _).lt_iff_ne, ← mul_zero (star x), hx.star.left.ne_iff]
254+
exact hx.ne_zero.symm
242255

243256
theorem mul_star_self_pos [Nontrivial R] {x : R} (hx : IsRegular x) : 0 < x * star x := by
244257
simpa using star_mul_self_pos hx.star

0 commit comments

Comments
 (0)