Normed space structure on ℂ
. #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file gathers basic facts on complex numbers of an analytic nature.
Main results #
This file registers ℂ
as a normed field, expresses basic properties of the norm, and gives
tools on the real vector space structure of ℂ
. Notably, in the namespace complex
,
it defines functions:
re_clm
im_clm
of_real_clm
conj_cle
They are bundled versions of the real part, the imaginary part, the embedding of ℝ
in ℂ
, and
the complex conjugate as continuous ℝ
-linear maps. The last two are also bundled as linear
isometries in of_real_li
and conj_lie
.
We also register the fact that ℂ
is an is_R_or_C
field.
Equations
Equations
- complex.normed_add_comm_group = {to_fun := complex.abs.to_mul_hom.to_fun, map_zero' := complex.normed_add_comm_group._proof_1, add_le' := complex.normed_add_comm_group._proof_2, neg' := complex.normed_add_comm_group._proof_3, eq_zero_of_map_eq_zero' := complex.normed_add_comm_group._proof_4}.to_normed_add_comm_group
Equations
- complex.normed_field = {to_has_norm := {norm := ⇑complex.abs}, to_field := {add := field.add complex.field, add_assoc := _, zero := field.zero complex.field, zero_add := _, add_zero := _, nsmul := field.nsmul complex.field, nsmul_zero' := _, nsmul_succ' := _, neg := field.neg complex.field, sub := field.sub complex.field, sub_eq_add_neg := _, zsmul := field.zsmul complex.field, zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _, int_cast := field.int_cast complex.field, nat_cast := field.nat_cast complex.field, one := field.one complex.field, nat_cast_zero := _, nat_cast_succ := _, int_cast_of_nat := _, int_cast_neg_succ_of_nat := _, mul := field.mul complex.field, mul_assoc := _, one_mul := _, mul_one := _, npow := field.npow complex.field, npow_zero' := _, npow_succ' := _, left_distrib := _, right_distrib := _, mul_comm := _, inv := field.inv complex.field, div := field.div complex.field, div_eq_mul_inv := _, zpow := field.zpow complex.field, zpow_zero' := _, zpow_succ' := _, zpow_neg' := _, exists_pair_ne := _, rat_cast := field.rat_cast complex.field, mul_inv_cancel := _, inv_zero := _, rat_cast_mk := _, qsmul := field.qsmul complex.field, qsmul_eq_mul' := _}, to_metric_space := normed_add_comm_group.to_metric_space complex.normed_add_comm_group, dist_eq := complex.normed_field._proof_1, norm_mul' := complex.normed_field._proof_2}
Equations
- complex.densely_normed_field = {to_normed_field := complex.normed_field, lt_norm_lt := complex.densely_normed_field._proof_1}
Equations
The module structure from module.complex_to_real
is a normed space.
Equations
The natural continuous_linear_equiv
from ℂ
to ℝ × ℝ
.
Equations
- complex.equiv_real_prod_clm = complex.equiv_real_prod_lm.to_continuous_linear_equiv_of_bounds 1 (real.sqrt 2) complex.equiv_real_prod_apply_le' complex.equiv_real_prod_clm._proof_1
The abs
function on ℂ
is proper.
The norm_sq
function on ℂ
is proper.
Continuous linear map version of the real part function, from ℂ
to ℝ
.
Equations
- complex.re_clm = complex.re_lm.mk_continuous 1 complex.re_clm._proof_1
Continuous linear map version of the real part function, from ℂ
to ℝ
.
Equations
- complex.im_clm = complex.im_lm.mk_continuous 1 complex.im_clm._proof_1
The complex-conjugation function from ℂ
to itself is an isometric linear equivalence.
Equations
The only continuous ring homomorphisms from ℂ
to ℂ
are the identity and the complex
conjugation.
Continuous linear equiv version of the conj function, from ℂ
to ℂ
.
Equations
Linear isometry version of the canonical embedding of ℝ
in ℂ
.
Equations
The only continuous ring homomorphism from ℝ
to ℂ
is the identity.
Continuous linear map version of the canonical embedding of ℝ
in ℂ
.
Equations
- complex.is_R_or_C = {to_densely_normed_field := complex.densely_normed_field, to_star_ring := complex.star_ring, to_normed_algebra := complex.normed_algebra (normed_algebra.id ℝ), to_complete_space := complex.complete_space, re := {to_fun := complex.re, map_zero' := complex.zero_re, map_add' := complex.add_re}, im := {to_fun := complex.im, map_zero' := complex.zero_im, map_add' := complex.add_im}, I := complex.I, I_re_ax := complex.is_R_or_C._proof_1, I_mul_I_ax := complex.is_R_or_C._proof_2, re_add_im_ax := complex.is_R_or_C._proof_3, of_real_re_ax := complex.is_R_or_C._proof_4, of_real_im_ax := complex.is_R_or_C._proof_5, mul_re_ax := complex.is_R_or_C._proof_6, mul_im_ax := complex.is_R_or_C._proof_7, conj_re_ax := complex.is_R_or_C._proof_8, conj_im_ax := complex.is_R_or_C._proof_9, conj_I_ax := complex.is_R_or_C._proof_10, norm_sq_eq_def_ax := complex.is_R_or_C._proof_11, mul_im_I_ax := complex.is_R_or_C._proof_12}
We have to repeat the lemmas about is_R_or_C.re
and is_R_or_C.im
as they are not syntactic
matches for complex.re
and complex.im
.
We do not have this problem with of_real
and conj
, although we repeat them anyway for
discoverability and to avoid the need to unify 𝕜
.