Complex number as a vector space over ℝ
#
This file contains the following instances:
- Any
•
-structure (SMul
,MulAction
,DistribMulAction
,Module
,Algebra
) onℝ
imbues a corresponding structure onℂ
. This includes the statement thatℂ
is anℝ
algebra. - any complex vector space is a real vector space;
- any finite dimensional complex vector space is a finite dimensional real vector space;
- the space of
ℝ
-linear maps from a real vector space to a complex vector space is a complex vector space.
It also defines bundled versions of four standard maps (respectively, the real part, the imaginary
part, the embedding of ℝ
in ℂ
, and the complex conjugate):
Complex.reLm
(ℝ
-linear map);Complex.imLm
(ℝ
-linear map);Complex.ofRealAm
(ℝ
-algebra (homo)morphism);Complex.conjAe
(ℝ
-algebra equivalence).
It also provides a universal property of the complex numbers Complex.lift
, which constructs a
ℂ →ₐ[ℝ] A
into any ℝ
-algebra A
given a square root of -1
.
In addition, this file provides a decomposition into realPart
and imaginaryPart
for any
element of a StarModule
over ℂ
.
Notation #
ℜ
andℑ
for therealPart
andimaginaryPart
, respectively, in the localeComplexStarModule
.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- Complex.mulAction = MulAction.mk ⋯ ⋯
Equations
- Complex.distribSMul = DistribSMul.mk ⋯
Equations
- Complex.instDistribMulActionOfReal = let __src := Complex.distribSMul; let __src_1 := Complex.mulAction; DistribMulAction.mk ⋯ ⋯
Equations
- Complex.instAlgebraOfReal = let __src := Complex.ofReal.comp (algebraMap R ℝ); Algebra.mk __src ⋯ ⋯
We need this lemma since Complex.coe_algebraMap
diverts the simp-normal form away from
AlgHom.commutes
.
Equations
The scalar action of ℝ
on a ℂ
-module E
induced by Module.complexToReal
commutes with
another scalar action of M
on E
whenever the action of ℂ
commutes with the action of M
.
Equations
- ⋯ = ⋯
The scalar action of ℝ
on a ℂ
-module E
induced by Module.complexToReal
associates with
another scalar action of M
on E
whenever the action of ℂ
associates with the action of M
.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Linear map version of the real part function, from ℂ
to ℝ
.
Equations
- Complex.reLm = { toFun := fun (x : ℂ) => x.re, map_add' := Complex.add_re, map_smul' := Complex.reLm.proof_1 }
Instances For
Linear map version of the imaginary part function, from ℂ
to ℝ
.
Equations
- Complex.imLm = { toFun := fun (x : ℂ) => x.im, map_add' := Complex.add_im, map_smul' := Complex.imLm.proof_1 }
Instances For
ℝ
-algebra morphism version of the canonical embedding of ℝ
in ℂ
.
Equations
Instances For
The matrix representation of conjAe
.
The natural LinearEquiv
from ℂ
to ℝ × ℝ
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
There is an alg_hom from ℂ
to any ℝ
-algebra with an element that squares to -1
.
See Complex.lift
for this as an equiv.
Equations
- Complex.liftAux I' hf = AlgHom.ofLinearMap (Algebra.linearMap ℝ A ∘ₗ Complex.reLm + LinearMap.toSpanSingleton ℝ A I' ∘ₗ Complex.imLm) ⋯ ⋯
Instances For
A universal property of the complex numbers, providing a unique ℂ →ₐ[ℝ] A
for every element
of A
which squares to -1
.
This can be used to embed the complex numbers in the Quaternion
s.
This isomorphism is named to match the very similar Zsqrtd.lift
.
Equations
Instances For
Create a selfAdjoint
element from a skewAdjoint
element by multiplying by the scalar
-Complex.I
.
Equations
- skewAdjoint.negISMul = { toFun := fun (a : ↥(skewAdjoint A)) => ⟨-Complex.I • ↑a, ⋯⟩, map_add' := ⋯, map_smul' := ⋯ }
Instances For
The real part ℜ a
of an element a
of a star module over ℂ
, as a linear map. This is just
selfAdjointPart ℝ
, but we provide it as a separate definition in order to link it with lemmas
concerning the imaginaryPart
, which doesn't exist in star modules over other rings.
Equations
- realPart = selfAdjointPart ℝ
Instances For
The imaginary part ℑ a
of an element a
of a star module over ℂ
, as a linear map into the
self adjoint elements. In a general star module, we have a decomposition into the selfAdjoint
and skewAdjoint
parts, but in a star module over ℂ
we have
realPart_add_I_smul_imaginaryPart
, which allows us to decompose into a linear combination of
selfAdjoint
s.
Equations
- imaginaryPart = skewAdjoint.negISMul ∘ₗ skewAdjointPart ℝ
Instances For
The real part ℜ a
of an element a
of a star module over ℂ
, as a linear map. This is just
selfAdjointPart ℝ
, but we provide it as a separate definition in order to link it with lemmas
concerning the imaginaryPart
, which doesn't exist in star modules over other rings.
Equations
- ComplexStarModule.termℜ = Lean.ParserDescr.node `ComplexStarModule.termℜ 1024 (Lean.ParserDescr.symbol "ℜ")
Instances For
The imaginary part ℑ a
of an element a
of a star module over ℂ
, as a linear map into the
self adjoint elements. In a general star module, we have a decomposition into the selfAdjoint
and skewAdjoint
parts, but in a star module over ℂ
we have
realPart_add_I_smul_imaginaryPart
, which allows us to decompose into a linear combination of
selfAdjoint
s.
Equations
- ComplexStarModule.termℑ = Lean.ParserDescr.node `ComplexStarModule.termℑ 1024 (Lean.ParserDescr.symbol "ℑ")
Instances For
The standard decomposition of ℜ a + Complex.I • ℑ a = a
of an element of a star module over
ℂ
into a linear combination of self adjoint elements.
The natural ℝ
-linear equivalence between selfAdjoint ℂ
and ℝ
.
Equations
- One or more equations did not get rendered due to their size.