Skip to content

Commit 1ab7069

Browse files
committed
feat: a few lemmata about (#30305)
These are useful for facts about unitary elements in C⋆-algebras.
1 parent d88ac22 commit 1ab7069

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

Mathlib/Analysis/Complex/Basic.lean

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,18 @@ lemma ball_one_subset_slitPlane : Metric.ball 1 1 ⊆ slitPlane := fun z hz ↦
627627
lemma mem_slitPlane_of_norm_lt_one {z : ℂ} (hz : ‖z‖ < 1) : 1 + z ∈ slitPlane :=
628628
ball_one_subset_slitPlane <| by simpa
629629

630+
open Metric in
631+
/-- A subset of the circle centered at the origin in `ℂ` of radius `r` is a subset of
632+
the `slitPlane` if it does not contain `-r`. -/
633+
lemma subset_slitPlane_iff_of_subset_sphere {r : ℝ} {s : Set ℂ} (hs : s ⊆ sphere 0 r) :
634+
s ⊆ slitPlane ↔ (-r : ℂ) ∉ s := by
635+
simp_rw +singlePass [← not_iff_not, Set.subset_def, mem_slitPlane_iff_not_le_zero]
636+
push ¬ _
637+
refine ⟨?_, fun hr ↦ ⟨_, hr, by simpa using hs hr⟩⟩
638+
rintro ⟨z, hzs, hz⟩
639+
have : ‖z‖ = r := by simpa using hs hzs
640+
simpa [← this, ← norm_neg z ▸ eq_coe_norm_of_nonneg (neg_nonneg.mpr hz)]
641+
630642
end slitPlane
631643

632644
lemma _root_.IsCompact.reProdIm {s t : Set ℝ} (hs : IsCompact s) (ht : IsCompact t) :

Mathlib/Analysis/Complex/Norm.lean

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,4 +354,27 @@ lemma re_neg_ne_zero_of_re_pos {s : ℂ} (hs : 0 < s.re) : (-s).re ≠ 0 :=
354354
lemma re_neg_ne_zero_of_one_lt_re {s : ℂ} (hs : 1 < s.re) : (-s).re ≠ 0 :=
355355
re_neg_ne_zero_of_re_pos <| zero_lt_one.trans hs
356356

357+
lemma norm_sub_one_sq_eq_of_norm_one {z : ℂ} (hz : ‖z‖ = 1) :
358+
‖z - 1‖ ^ 2 = 2 * (1 - z.re) := by
359+
have : z.im * z.im = 1 - z.re * z.re := by
360+
replace hz := sq_eq_one_iff.mpr (.inl hz)
361+
rw [Complex.sq_norm, normSq_apply] at hz
362+
linarith
363+
simp [Complex.sq_norm, normSq_apply, this]
364+
ring
365+
366+
lemma norm_sub_one_sq_eqOn_sphere :
367+
(Metric.sphere (0 : ℂ) 1).EqOn (‖· - 1‖ ^ 2) (fun z ↦ 2 * (1 - z.re)) :=
368+
fun z hz ↦ norm_sub_one_sq_eq_of_norm_one (by simpa using hz)
369+
370+
lemma normSq_ofReal_add_I_mul_sqrt_one_sub {x : ℝ} (hx : ‖x‖ ≤ 1) :
371+
normSq (x + I * √(1 - x ^ 2)) = 1 := by
372+
simp [mul_comm I, normSq_add_mul_I,
373+
Real.sq_sqrt (x := 1 - x ^ 2) (by nlinarith [abs_le.mp hx])]
374+
375+
lemma normSq_ofReal_sub_I_mul_sqrt_one_sub {x : ℝ} (hx : ‖x‖ ≤ 1) :
376+
normSq (x - I * √(1 - x ^ 2)) = 1 := by
377+
rw [← normSq_neg, neg_sub', sub_neg_eq_add]
378+
simpa using normSq_ofReal_add_I_mul_sqrt_one_sub (x := -x) (by simpa)
379+
357380
end Complex

Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -574,6 +574,10 @@ theorem continuousAt_arg (h : x ∈ slitPlane) : ContinuousAt arg x := by
574574
(continuous_re.continuousAt.div continuous_norm.continuousAt h₀)).congr
575575
(arg_eq_nhds_of_im_pos hx_im).symm]
576576

577+
@[fun_prop]
578+
theorem continuousOn_arg : ContinuousOn arg slitPlane :=
579+
fun _ h ↦ continuousAt_arg h |>.continuousWithinAt
580+
577581
theorem tendsto_arg_nhdsWithin_im_neg_of_re_neg_of_im_zero {z : ℂ} (hre : z.re < 0)
578582
(him : z.im = 0) : Tendsto arg (𝓝[{ z : ℂ | z.im < 0 }] z) (𝓝 (-π)) := by
579583
suffices H : Tendsto (fun x : ℂ => Real.arcsin ((-x).im / ‖x‖) - π)

0 commit comments

Comments
 (0)