Skip to content

Commit 7f1e069

Browse files
committed
chore(Analysis/CStarAlgebra/CFC/Order): relate section to strict positivity (#30694)
1 parent 00416cf commit 7f1e069

File tree

2 files changed

+22
-20
lines changed

2 files changed

+22
-20
lines changed

Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,7 @@ lemma CFC.monotoneOn_one_sub_one_add_inv :
6161
rw [h_cfc_one_sub (a : A⁺¹), h_cfc_one_sub (b : A⁺¹)]
6262
gcongr
6363
rw [← CFC.rpow_neg_one_eq_cfc_inv, ← CFC.rpow_neg_one_eq_cfc_inv]
64-
exact rpow_neg_one_le_rpow_neg_one (add_nonneg zero_le_one ha) (by gcongr) <|
65-
isUnit_of_le isUnit_one zero_le_one <| le_add_of_nonneg_right ha
64+
exact rpow_neg_one_le_rpow_neg_one (by gcongr)
6665

6766
lemma CFC.monotoneOn_one_sub_one_add_inv_real :
6867
MonotoneOn (cfcₙ (fun x : ℝ => 1 - (1 + x)⁻¹)) (Set.Ici (0 : A)) := by

Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -262,20 +262,20 @@ open CFC
262262

263263
variable [PartialOrder A] [StarOrderedRing A]
264264

265-
-- TODO : relate everything in this section to strict positivity
266-
267-
lemma CFC.conjugate_rpow_neg_one_half {a : A} (h₀ : IsUnit a) (ha : 0 ≤ a := by cfc_tac) :
265+
lemma CFC.conjugate_rpow_neg_one_half (a : A) (ha : IsStrictlyPositive a := by cfc_tac) :
268266
a ^ (-(1 / 2) : ℝ) * a * a ^ (-(1 / 2) : ℝ) = 1 := by
269-
lift a to Aˣ using h₀
267+
lift a to Aˣ using ha.isUnit
270268
nth_rw 2 [← rpow_one (a : A)]
271269
simp only [← rpow_add a.isUnit]
272270
norm_num
273271
exact rpow_zero _
274272

275-
/-- In a unital C⋆-algebra, if `a` is nonnegative and invertible, and `a ≤ b`, then `b` is
273+
/-- In a unital C⋆-algebra, if `a` is strictly positive, and `a ≤ b`, then `b` is
276274
invertible. -/
277-
lemma CStarAlgebra.isUnit_of_le {a b : A} (h₀ : IsUnit a) (ha : 0 ≤ a := by cfc_tac)
278-
(hab : a ≤ b) : IsUnit b := by
275+
lemma CStarAlgebra.isUnit_of_le (a : A) {b : A} (hab : a ≤ b)
276+
(h : IsStrictlyPositive a := by cfc_tac) : IsUnit b := by
277+
have h₀ := h.isUnit
278+
have ha := h.nonneg
279279
rw [← spectrum.zero_notMem_iff ℝ≥0] at h₀ ⊢
280280
nontriviality A
281281
have hb := (show 0 ≤ a from ha).trans hab
@@ -284,9 +284,10 @@ lemma CStarAlgebra.isUnit_of_le {a b : A} (h₀ : IsUnit a) (ha : 0 ≤ a := by
284284
peel h₀ with r hr _
285285
exact this.trans hab
286286

287-
lemma le_iff_norm_sqrt_mul_rpow {a b : A} (hbu : IsUnit b) (ha : 0 ≤ a) (hb : 0 ≤ (b : A)) :
287+
lemma le_iff_norm_sqrt_mul_rpow (a b : A) (ha : 0 ≤ a := by cfc_tac)
288+
(hb : IsStrictlyPositive b := by cfc_tac) :
288289
a ≤ b ↔ ‖sqrt a * (b : A) ^ (-(1 / 2) : ℝ)‖ ≤ 1 := by
289-
lift b to Aˣ using hbu
290+
lift b to Aˣ using hb.isUnit
290291
have hbab : 0 ≤ (b : A) ^ (-(1 / 2) : ℝ) * a * (b : A) ^ (-(1 / 2) : ℝ) :=
291292
conjugate_nonneg_of_nonneg ha rpow_nonneg
292293
conv_rhs =>
@@ -298,7 +299,7 @@ lemma le_iff_norm_sqrt_mul_rpow {a b : A} (hbu : IsUnit b) (ha : 0 ≤ a) (hb :
298299
· calc
299300
_ ≤ ↑b ^ (-(1 / 2) : ℝ) * (b : A) * ↑b ^ (-(1 / 2) : ℝ) :=
300301
IsSelfAdjoint.of_nonneg rpow_nonneg |>.conjugate_le_conjugate h
301-
_ = 1 := conjugate_rpow_neg_one_half b.isUnit
302+
_ = 1 := conjugate_rpow_neg_one_half (b : A)
302303
· calc
303304
a = (sqrt ↑b * ↑b ^ (-(1 / 2) : ℝ)) * a * (↑b ^ (-(1 / 2) : ℝ) * sqrt ↑b) := by
304305
simp only [CFC.sqrt_eq_rpow .., ← CFC.rpow_add b.isUnit]
@@ -312,7 +313,8 @@ lemma le_iff_norm_sqrt_mul_rpow {a b : A} (hbu : IsUnit b) (ha : 0 ≤ a) (hb :
312313
lemma le_iff_norm_sqrt_mul_sqrt_inv {a : A} {b : Aˣ} (ha : 0 ≤ a) (hb : 0 ≤ (b : A)) :
313314
a ≤ b ↔ ‖sqrt a * sqrt (↑b⁻¹ : A)‖ ≤ 1 := by
314315
rw [CFC.sqrt_eq_rpow (a := (↑b⁻¹ : A)), ← CFC.rpow_neg_one_eq_inv b,
315-
CFC.rpow_rpow (b : A) _ _ (by simp) (by simp), le_iff_norm_sqrt_mul_rpow b.isUnit ha hb]
316+
CFC.rpow_rpow (b : A) _ _ (by simp) (by simp),
317+
le_iff_norm_sqrt_mul_rpow a (hb := b.isUnit.isStrictlyPositive hb)]
316318
simp
317319

318320
namespace CStarAlgebra
@@ -358,21 +360,22 @@ lemma inv_le_one {a : Aˣ} (ha : 1 ≤ a) : (↑a⁻¹ : A) ≤ 1 :=
358360
lemma le_one_of_one_le_inv {a : Aˣ} (ha : 1 ≤ (↑a⁻¹ : A)) : (a : A) ≤ 1 := by
359361
simpa using CStarAlgebra.inv_le_one ha
360362

361-
lemma rpow_neg_one_le_rpow_neg_one {a b : A} (ha : 0 ≤ a) (hab : a ≤ b) (hau : IsUnit a) :
363+
lemma rpow_neg_one_le_rpow_neg_one {a b : A} (hab : a ≤ b)
364+
(ha : IsStrictlyPositive a := by cfc_tac) :
362365
b ^ (-1 : ℝ) ≤ a ^ (-1 : ℝ) := by
363-
lift b to Aˣ using isUnit_of_le hau ha hab
364-
lift a to Aˣ using hau
365-
rw [rpow_neg_one_eq_inv a ha, rpow_neg_one_eq_inv b (ha.trans hab)]
366-
exact CStarAlgebra.inv_le_inv ha hab
366+
lift b to Aˣ using isUnit_of_le a hab
367+
lift a to Aˣ using ha.isUnit
368+
rw [rpow_neg_one_eq_inv a, rpow_neg_one_eq_inv b (ha.nonneg.trans hab)]
369+
exact CStarAlgebra.inv_le_inv ha.nonneg hab
367370

368371
lemma rpow_neg_one_le_one {a : A} (ha : 1 ≤ a) : a ^ (-1 : ℝ) ≤ 1 := by
369-
lift a to Aˣ using isUnit_of_le isUnit_one zero_le_one ha
372+
lift a to Aˣ using isUnit_of_le 1 ha
370373
rw [rpow_neg_one_eq_inv a (zero_le_one.trans ha)]
371374
exact inv_le_one ha
372375

373376
protected lemma _root_.IsStrictlyPositive.of_le {a b : A} (ha : IsStrictlyPositive a)
374377
(hab : a ≤ b) : IsStrictlyPositive b :=
375-
⟨ha.nonneg.trans hab, CStarAlgebra.isUnit_of_le ha.isUnit ha.nonneg hab⟩
378+
⟨ha.nonneg.trans hab, CStarAlgebra.isUnit_of_le a hab⟩
376379

377380
theorem _root_.IsStrictlyPositive.add_nonneg {a b : A}
378381
(ha : IsStrictlyPositive a) (hb : 0 ≤ b) : IsStrictlyPositive (a + b) :=

0 commit comments

Comments
 (0)