Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 300e81d

Browse files
committed
feat(analysis/complex/basic): complex conjugation is a linear isometry (#6436)
Complex conjugation is a linear isometry (and various corollaries, eg it is a continuous linear map). Also rewrite the results that `re` and `im` are continuous linear maps, to deduce from explicit bounds rather than passing through `linear_map.continuous_of_finite_dimensional`.
1 parent 274042d commit 300e81d

File tree

2 files changed

+33
-5
lines changed

2 files changed

+33
-5
lines changed

src/analysis/complex/basic.lean

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ Copyright (c) Sébastien Gouëzel. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Sébastien Gouëzel
55
-/
6-
import analysis.normed_space.finite_dimension
76
import data.complex.module
87
import data.complex.is_R_or_C
98

@@ -80,7 +79,8 @@ instance normed_space.restrict_scalars_real (E : Type*) [normed_group E] [normed
8079
open continuous_linear_map
8180

8281
/-- Continuous linear map version of the real part function, from `ℂ` to `ℝ`. -/
83-
def continuous_linear_map.re : ℂ →L[ℝ] ℝ := linear_map.re.to_continuous_linear_map
82+
def continuous_linear_map.re : ℂ →L[ℝ] ℝ :=
83+
linear_map.re.mk_continuous 1 (λ x, by simp [real.norm_eq_abs, abs_re_le_abs])
8484

8585
@[continuity] lemma continuous_re : continuous re := continuous_linear_map.re.continuous
8686

@@ -92,12 +92,13 @@ def continuous_linear_map.re : ℂ →L[ℝ] ℝ := linear_map.re.to_continuous_
9292

9393
@[simp] lemma continuous_linear_map.re_norm :
9494
∥continuous_linear_map.re∥ = 1 :=
95-
le_antisymm (op_norm_le_bound _ zero_le_one $ λ z, by simp [real.norm_eq_abs, abs_re_le_abs]) $
95+
le_antisymm (linear_map.mk_continuous_norm_le _ zero_le_one _) $
9696
calc 1 = ∥continuous_linear_map.re 1∥ : by simp
9797
... ≤ ∥continuous_linear_map.re∥ : unit_le_op_norm _ _ (by simp)
9898

9999
/-- Continuous linear map version of the real part function, from `ℂ` to `ℝ`. -/
100-
def continuous_linear_map.im : ℂ →L[ℝ] ℝ := linear_map.im.to_continuous_linear_map
100+
def continuous_linear_map.im : ℂ →L[ℝ] ℝ :=
101+
linear_map.im.mk_continuous 1 (λ x, by simp [real.norm_eq_abs, abs_im_le_abs])
101102

102103
@[continuity] lemma continuous_im : continuous im := continuous_linear_map.im.continuous
103104

@@ -109,10 +110,30 @@ def continuous_linear_map.im : ℂ →L[ℝ] ℝ := linear_map.im.to_continuous_
109110

110111
@[simp] lemma continuous_linear_map.im_norm :
111112
∥continuous_linear_map.im∥ = 1 :=
112-
le_antisymm (op_norm_le_bound _ zero_le_one $ λ z, by simp [real.norm_eq_abs, abs_im_le_abs]) $
113+
le_antisymm (linear_map.mk_continuous_norm_le _ zero_le_one _) $
113114
calc 1 = ∥continuous_linear_map.im I∥ : by simp
114115
... ≤ ∥continuous_linear_map.im∥ : unit_le_op_norm _ _ (by simp)
115116

117+
/-- The complex-conjugation function from `ℂ` to itself is an isometric linear map. -/
118+
def linear_isometry.conj : ℂ →ₗᵢ[ℝ] ℂ := ⟨linear_map.conj, λ x, by simp⟩
119+
120+
/-- Continuous linear map version of the conj function, from `ℂ` to `ℂ`. -/
121+
def continuous_linear_map.conj : ℂ →L[ℝ] ℂ := linear_isometry.conj.to_continuous_linear_map
122+
123+
lemma isometry_conj : isometry (conj : ℂ → ℂ) := linear_isometry.conj.isometry
124+
125+
@[continuity] lemma continuous_conj : continuous conj := continuous_linear_map.conj.continuous
126+
127+
@[simp] lemma continuous_linear_map.conj_coe :
128+
(coe (continuous_linear_map.conj) : ℂ →ₗ[ℝ] ℂ) = linear_map.conj := rfl
129+
130+
@[simp] lemma continuous_linear_map.conj_apply (z : ℂ) :
131+
(continuous_linear_map.conj : ℂ → ℂ) z = z.conj := rfl
132+
133+
@[simp] lemma continuous_linear_map.conj_norm :
134+
∥continuous_linear_map.conj∥ = 1 :=
135+
linear_isometry.conj.norm_to_continuous_linear_map
136+
116137
/-- Linear isometry version of the canonical embedding of `ℝ` in `ℂ`. -/
117138
def linear_isometry.of_real : ℝ →ₗᵢ[ℝ] ℂ := ⟨linear_map.of_real, λ x, by simp⟩
118139

src/data/complex/module.lean

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,4 +145,11 @@ def linear_map.of_real : ℝ →ₗ[ℝ] ℂ :=
145145

146146
@[simp] lemma linear_map.coe_of_real : ⇑linear_map.of_real = coe := rfl
147147

148+
/-- `ℝ`-linear map version of the complex conjugation function from `ℂ` to `ℂ`. -/
149+
def linear_map.conj : ℂ →ₗ[ℝ] ℂ :=
150+
{ map_smul' := by simp [restrict_scalars_smul_def],
151+
..conj }
152+
153+
@[simp] lemma linear_map.coe_conj : ⇑linear_map.conj = conj := rfl
154+
148155
end complex

0 commit comments

Comments
 (0)