From 3e82c092e760d870aa677ac508c210e28b715fa9 Mon Sep 17 00:00:00 2001 From: Jireh Loreaux Date: Tue, 29 Oct 2024 02:02:20 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20lemma=20concerning=20for=20`=E2=80=96cf?= =?UTF-8?q?c=20f=20a=E2=80=96=20<=20c`=20(#18361)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Isometric.lean | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean b/Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean index 0ab77c3d67964..142e51cfa4b72 100644 --- a/Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean +++ b/Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean @@ -106,6 +106,20 @@ lemma norm_cfc_le_iff (f : π•œ β†’ π•œ) (a : A) {c : ℝ} (hc : 0 ≀ c) (ha : p a := by cfc_tac) : β€–cfc f aβ€– ≀ c ↔ βˆ€ x ∈ Οƒ π•œ a, β€–f xβ€– ≀ c := ⟨fun h _ hx ↦ norm_apply_le_norm_cfc f a hx hf ha |>.trans h, norm_cfc_le hc⟩ +lemma norm_cfc_lt {f : π•œ β†’ π•œ} {a : A} {c : ℝ} (hc : 0 < c) (h : βˆ€ x ∈ Οƒ π•œ a, β€–f xβ€– < c) : + β€–cfc f aβ€– < c := by + obtain (_ | _) := subsingleton_or_nontrivial A + Β· simpa [Subsingleton.elim (cfc f a) 0] + Β· refine cfc_cases (β€–Β·β€– < c) a f (by simpa) fun hf ha ↦ ?_ + simp only [← cfc_apply f a, (IsGreatest.norm_cfc f a hf ha |>.lt_iff)] + rintro - ⟨x, hx, rfl⟩ + exact h x hx + +lemma norm_cfc_lt_iff (f : π•œ β†’ π•œ) (a : A) {c : ℝ} (hc : 0 < c) + (hf : ContinuousOn f (Οƒ π•œ a) := by cfc_cont_tac) + (ha : p a := by cfc_tac) : β€–cfc f aβ€– < c ↔ βˆ€ x ∈ Οƒ π•œ a, β€–f xβ€– < c := + ⟨fun h _ hx ↦ norm_apply_le_norm_cfc f a hx hf ha |>.trans_lt h, norm_cfc_lt hc⟩ + open NNReal lemma nnnorm_cfc_le {f : π•œ β†’ π•œ} {a : A} (c : ℝβ‰₯0) (h : βˆ€ x ∈ Οƒ π•œ a, β€–f xβ€–β‚Š ≀ c) : @@ -117,6 +131,15 @@ lemma nnnorm_cfc_le_iff (f : π•œ β†’ π•œ) (a : A) (c : ℝβ‰₯0) (ha : p a := by cfc_tac) : β€–cfc f aβ€–β‚Š ≀ c ↔ βˆ€ x ∈ Οƒ π•œ a, β€–f xβ€–β‚Š ≀ c := norm_cfc_le_iff f a c.2 +lemma nnnorm_cfc_lt {f : π•œ β†’ π•œ} {a : A} {c : ℝβ‰₯0} (hc : 0 < c) (h : βˆ€ x ∈ Οƒ π•œ a, β€–f xβ€–β‚Š < c) : + β€–cfc f aβ€–β‚Š < c := + norm_cfc_lt hc h + +lemma nnnorm_cfc_lt_iff (f : π•œ β†’ π•œ) (a : A) {c : ℝβ‰₯0} (hc : 0 < c) + (hf : ContinuousOn f (Οƒ π•œ a) := by cfc_cont_tac) + (ha : p a := by cfc_tac) : β€–cfc f aβ€–β‚Š < c ↔ βˆ€ x ∈ Οƒ π•œ a, β€–f xβ€–β‚Š < c := + norm_cfc_lt_iff f a hc + end NormedRing namespace SpectrumRestricts @@ -251,6 +274,19 @@ lemma norm_cfcβ‚™_le_iff (f : π•œ β†’ π•œ) (a : A) (c : ℝ) (ha : p a := by cfc_tac) : β€–cfcβ‚™ f aβ€– ≀ c ↔ βˆ€ x ∈ Οƒβ‚™ π•œ a, β€–f xβ€– ≀ c := ⟨fun h _ hx ↦ norm_apply_le_norm_cfcβ‚™ f a hx hf hfβ‚€ ha |>.trans h, norm_cfcβ‚™_le⟩ +lemma norm_cfcβ‚™_lt {f : π•œ β†’ π•œ} {a : A} {c : ℝ} (h : βˆ€ x ∈ Οƒβ‚™ π•œ a, β€–f xβ€– < c) : + β€–cfcβ‚™ f aβ€– < c := by + refine cfcβ‚™_cases (β€–Β·β€– < c) a f ?_ fun hf hf0 ha ↦ ?_ + Β· simpa using (norm_nonneg _).trans_lt <| h 0 (quasispectrum.zero_mem π•œ a) + Β· simp only [← cfcβ‚™_apply f a, (IsGreatest.norm_cfcβ‚™ f a hf hf0 ha |>.lt_iff)] + rintro - ⟨x, hx, rfl⟩ + exact h x hx + +lemma norm_cfcβ‚™_lt_iff (f : π•œ β†’ π•œ) (a : A) (c : ℝ) + (hf : ContinuousOn f (Οƒβ‚™ π•œ a) := by cfc_cont_tac) (hfβ‚€ : f 0 = 0 := by cfc_zero_tac) + (ha : p a := by cfc_tac) : β€–cfcβ‚™ f aβ€– < c ↔ βˆ€ x ∈ Οƒβ‚™ π•œ a, β€–f xβ€– < c := + ⟨fun h _ hx ↦ norm_apply_le_norm_cfcβ‚™ f a hx hf hfβ‚€ ha |>.trans_lt h, norm_cfcβ‚™_lt⟩ + open NNReal lemma nnnorm_cfcβ‚™_le {f : π•œ β†’ π•œ} {a : A} {c : ℝβ‰₯0} (h : βˆ€ x ∈ Οƒβ‚™ π•œ a, β€–f xβ€–β‚Š ≀ c) : @@ -262,6 +298,15 @@ lemma nnnorm_cfcβ‚™_le_iff (f : π•œ β†’ π•œ) (a : A) (c : ℝβ‰₯0) (ha : p a := by cfc_tac) : β€–cfcβ‚™ f aβ€–β‚Š ≀ c ↔ βˆ€ x ∈ Οƒβ‚™ π•œ a, β€–f xβ€–β‚Š ≀ c := norm_cfcβ‚™_le_iff f a c.1 hf hfβ‚€ ha +lemma nnnorm_cfcβ‚™_lt {f : π•œ β†’ π•œ} {a : A} {c : ℝβ‰₯0} (h : βˆ€ x ∈ Οƒβ‚™ π•œ a, β€–f xβ€–β‚Š < c) : + β€–cfcβ‚™ f aβ€–β‚Š < c := + norm_cfcβ‚™_lt h + +lemma nnnorm_cfcβ‚™_lt_iff (f : π•œ β†’ π•œ) (a : A) (c : ℝβ‰₯0) + (hf : ContinuousOn f (Οƒβ‚™ π•œ a) := by cfc_cont_tac) (hfβ‚€ : f 0 = 0 := by cfc_zero_tac) + (ha : p a := by cfc_tac) : β€–cfcβ‚™ f aβ€–β‚Š < c ↔ βˆ€ x ∈ Οƒβ‚™ π•œ a, β€–f xβ€–β‚Š < c := + norm_cfcβ‚™_lt_iff f a c.1 hf hfβ‚€ ha + end NormedRing namespace QuasispectrumRestricts @@ -442,6 +487,21 @@ lemma nnnorm_cfc_nnreal_le_iff (f : ℝβ‰₯0 β†’ ℝβ‰₯0) (a : A) (c : ℝβ‰₯0) (ha : 0 ≀ a := by cfc_tac) : β€–cfc f aβ€–β‚Š ≀ c ↔ βˆ€ x ∈ Οƒ ℝβ‰₯0 a, f x ≀ c := ⟨fun h _ hx ↦ apply_le_nnnorm_cfc_nnreal f a hx hf ha |>.trans h, nnnorm_cfc_nnreal_le⟩ +lemma nnnorm_cfc_nnreal_lt {f : ℝβ‰₯0 β†’ ℝβ‰₯0} {a : A} {c : ℝβ‰₯0} (hc : 0 < c) + (h : βˆ€ x ∈ Οƒ ℝβ‰₯0 a, f x < c) : β€–cfc f aβ€–β‚Š < c := by + obtain (_ | _) := subsingleton_or_nontrivial A + Β· rw [Subsingleton.elim (cfc f a) 0] + simpa + Β· refine cfc_cases (β€–Β·β€–β‚Š < c) a f (by simpa) fun hf ha ↦ ?_ + simp only [← cfc_apply f a, (IsGreatest.nnnorm_cfc_nnreal f a hf ha |>.lt_iff)] + rintro - ⟨x, hx, rfl⟩ + exact h x hx + +lemma nnnorm_cfc_nnreal_lt_iff (f : ℝβ‰₯0 β†’ ℝβ‰₯0) (a : A) {c : ℝβ‰₯0} (hc : 0 < c) + (hf : ContinuousOn f (Οƒ ℝβ‰₯0 a) := by cfc_cont_tac) + (ha : 0 ≀ a := by cfc_tac) : β€–cfc f aβ€–β‚Š < c ↔ βˆ€ x ∈ Οƒ ℝβ‰₯0 a, f x < c := + ⟨fun h _ hx ↦ apply_le_nnnorm_cfc_nnreal f a hx hf ha |>.trans_lt h, nnnorm_cfc_nnreal_lt hc⟩ + end Unital section NonUnital @@ -483,6 +543,19 @@ lemma nnnorm_cfcβ‚™_nnreal_le_iff (f : ℝβ‰₯0 β†’ ℝβ‰₯0) (a : A) (c : ℝβ‰₯0 (ha : 0 ≀ a := by cfc_tac) : β€–cfcβ‚™ f aβ€–β‚Š ≀ c ↔ βˆ€ x ∈ Οƒβ‚™ ℝβ‰₯0 a, f x ≀ c := ⟨fun h _ hx ↦ apply_le_nnnorm_cfcβ‚™_nnreal f a hx hf hfβ‚€ ha |>.trans h, nnnorm_cfcβ‚™_nnreal_le⟩ +lemma nnnorm_cfcβ‚™_nnreal_lt {f : ℝβ‰₯0 β†’ ℝβ‰₯0} {a : A} {c : ℝβ‰₯0} (h : βˆ€ x ∈ Οƒβ‚™ ℝβ‰₯0 a, f x < c) : + β€–cfcβ‚™ f aβ€–β‚Š < c := by + refine cfcβ‚™_cases (β€–Β·β€–β‚Š < c) a f ?_ fun hf hf0 ha ↦ ?_ + Β· simpa using zero_le (f 0) |>.trans_lt <| h 0 (quasispectrum.zero_mem ℝβ‰₯0 _) + Β· simp only [← cfcβ‚™_apply f a, (IsGreatest.nnnorm_cfcβ‚™_nnreal f a hf hf0 ha |>.lt_iff)] + rintro - ⟨x, hx, rfl⟩ + exact h x hx + +lemma nnnorm_cfcβ‚™_nnreal_lt_iff (f : ℝβ‰₯0 β†’ ℝβ‰₯0) (a : A) (c : ℝβ‰₯0) + (hf : ContinuousOn f (Οƒβ‚™ ℝβ‰₯0 a) := by cfc_cont_tac) (hfβ‚€ : f 0 = 0 := by cfc_zero_tac) + (ha : 0 ≀ a := by cfc_tac) : β€–cfcβ‚™ f aβ€–β‚Š < c ↔ βˆ€ x ∈ Οƒβ‚™ ℝβ‰₯0 a, f x < c := + ⟨fun h _ hx ↦ apply_le_nnnorm_cfcβ‚™_nnreal f a hx hf hfβ‚€ ha |>.trans_lt h, nnnorm_cfcβ‚™_nnreal_lt⟩ + end NonUnital end NNReal