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 therealPartandimaginaryPart, respectively, in the localeComplexStarModule.
Equations
- Complex.mulAction = { toSMul := Complex.SMul.instSMulRealComplex, one_smul := ⋯, mul_smul := ⋯ }
Equations
- Complex.distribSMul = { toSMul := Complex.SMul.instSMulRealComplex, smul_zero := ⋯, smul_add := ⋯ }
Equations
- Complex.instDistribMulActionOfReal = { toSMul := Complex.distribSMul.toSMul, one_smul := ⋯, mul_smul := ⋯, smul_zero := ⋯, smul_add := ⋯ }
Equations
- Complex.instModule = { toDistribMulAction := Complex.instDistribMulActionOfReal, add_smul := ⋯, zero_smul := ⋯ }
Equations
- Complex.instAlgebraOfReal = { smul := fun (x1 : R) (x2 : ℂ) => x1 • x2, algebraMap := Complex.ofRealHom.comp (algebraMap R ℝ), commutes' := ⋯, smul_def' := ⋯ }
We need this lemma since Complex.coe_algebraMap diverts the simp-normal form away from
AlgHom.commutes.
ℂ has a basis over ℝ given by 1 and I.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
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.
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.
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 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 Quaternions.
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
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
selfAdjoints.
Equations
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
selfAdjoints.
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.