real linear maps (a.k.a. star-preserving linear maps) #
This file defines the function linear_map.real
which maps a linear map φ.real (x) = star (φ (star x))
; so that φ
is real (star-preserving) if and only if φ = φ.real
.
@[simp]
theorem
starHomClass.linearMap_isReal
{M₁ : Type u_1}
{M₂ : Type u_2}
{F : Type u_3}
[FunLike F M₁ M₂]
[Star M₁]
[Star M₂]
[StarHomClass F M₁ M₂]
(φ : F)
:
def
LinearMap.real
{E : Type u_1}
{F : Type u_2}
{K : Type u_3}
[AddCommMonoid E]
[StarAddMonoid E]
[AddCommMonoid F]
[StarAddMonoid F]
[Semiring K]
[Module K E]
[Module K F]
[InvolutiveStar K]
[StarModule K E]
[StarModule K F]
(φ : E →ₗ[K] F)
:
Instances For
@[simp]
theorem
LinearMap.real_apply
{E : Type u_1}
{F : Type u_2}
{K : Type u_3}
[AddCommMonoid E]
[StarAddMonoid E]
[AddCommMonoid F]
[StarAddMonoid F]
[Semiring K]
[Module K E]
[Module K F]
[InvolutiveStar K]
[StarModule K E]
[StarModule K F]
(φ : E →ₗ[K] F)
(x : E)
:
def
LinearMap.realSLinearEquiv
{E : Type u_1}
{F : Type u_2}
{K : Type u_3}
[AddCommMonoid E]
[StarAddMonoid E]
[AddCommMonoid F]
[StarAddMonoid F]
[CommSemiring K]
[Module K E]
[Module K F]
[StarRing K]
[StarModule K E]
[StarModule K F]
:
Equations
Instances For
@[simp]
theorem
LinearMap.realSLinearEquiv_apply_apply
{E : Type u_1}
{F : Type u_2}
{K : Type u_3}
[AddCommMonoid E]
[StarAddMonoid E]
[AddCommMonoid F]
[StarAddMonoid F]
[CommSemiring K]
[Module K E]
[Module K F]
[StarRing K]
[StarModule K E]
[StarModule K F]
(φ : E →ₗ[K] F)
(x : E)
:
@[simp]
theorem
LinearMap.real_add
{E : Type u_2}
{F : Type u_3}
{K : Type u_1}
[AddCommMonoid E]
[StarAddMonoid E]
[AddCommMonoid F]
[StarAddMonoid F]
[Semiring K]
[Module K E]
[Module K F]
[InvolutiveStar K]
[StarModule K E]
[StarModule K F]
(f : E →ₗ[K] F)
(g : E →ₗ[K] F)
:
@[simp]
theorem
LinearMap.real_sum
{E : Type u_3}
{F : Type u_4}
{K : Type u_2}
[AddCommMonoid E]
[StarAddMonoid E]
[AddCommMonoid F]
[StarAddMonoid F]
[Semiring K]
[Module K E]
[Module K F]
[InvolutiveStar K]
[StarModule K E]
[StarModule K F]
{n : Type u_1}
{s : Finset n}
(f : n → E →ₗ[K] F)
:
(∑ i ∈ s, f i).real = ∑ i ∈ s, (f i).real
@[simp]
theorem
LinearMap.real_real
{E : Type u_2}
{F : Type u_3}
{K : Type u_1}
[AddCommMonoid E]
[StarAddMonoid E]
[AddCommMonoid F]
[StarAddMonoid F]
[Semiring K]
[Module K E]
[Module K F]
[InvolutiveStar K]
[StarModule K E]
[StarModule K F]
(f : E →ₗ[K] F)
:
f.real.real = f
theorem
LinearMap.isReal_iff
{E : Type u_2}
{F : Type u_3}
{K : Type u_1}
[AddCommMonoid E]
[StarAddMonoid E]
[AddCommMonoid F]
[StarAddMonoid F]
[Semiring K]
[Module K E]
[Module K F]
[InvolutiveStar K]
[StarModule K E]
[StarModule K F]
(φ : E →ₗ[K] F)
:
LinearMap.IsReal φ ↔ φ.real = φ
theorem
LinearMap.real_of_isReal
{E : Type u_2}
{F : Type u_3}
{K : Type u_1}
[AddCommMonoid E]
[StarAddMonoid E]
[AddCommMonoid F]
[StarAddMonoid F]
[Semiring K]
[Module K E]
[Module K F]
[InvolutiveStar K]
[StarModule K E]
[StarModule K F]
{φ : E →ₗ[K] F}
(hφ : LinearMap.IsReal φ)
:
φ.real = φ
@[simp]
theorem
LinearMap.real_comp
{E : Type u_3}
{F : Type u_4}
{K : Type u_2}
[AddCommMonoid E]
[StarAddMonoid E]
[AddCommMonoid F]
[StarAddMonoid F]
[Semiring K]
[Module K E]
[Module K F]
[InvolutiveStar K]
[StarModule K E]
[StarModule K F]
{G : Type u_1}
[AddCommMonoid G]
[StarAddMonoid G]
[Module K G]
[StarModule K G]
(f : E →ₗ[K] F)
(g : G →ₗ[K] E)
:
(f ∘ₗ g).real = f.real ∘ₗ g.real
theorem
LinearMap.real_starAlgEquiv_conj
{E : Type u_1}
{K : Type u_2}
{F : Type u_3}
[CommSemiring K]
[Semiring E]
[Semiring F]
[Algebra K E]
[Algebra K F]
[InvolutiveStar K]
[StarAddMonoid E]
[StarAddMonoid F]
[StarModule K E]
[StarModule K F]
(f : E →ₗ[K] E)
(φ : E ≃⋆ₐ[K] F)
:
(φ.toLinearMap ∘ₗ f ∘ₗ φ.symm.toLinearMap).real = φ.toLinearMap ∘ₗ f.real ∘ₗ φ.symm.toLinearMap
theorem
LinearMap.real_starAlgEquiv_conj_iff
{E : Type u_1}
{F : Type u_2}
{K : Type u_3}
[CommSemiring K]
[Semiring E]
[Semiring F]
[Algebra K E]
[Algebra K F]
[InvolutiveStar K]
[StarAddMonoid E]
[StarAddMonoid F]
[StarModule K E]
[StarModule K F]
(f : E →ₗ[K] E)
(φ : E ≃⋆ₐ[K] F)
:
LinearMap.IsReal (φ.toLinearMap ∘ₗ f ∘ₗ φ.symm.toLinearMap) ↔ LinearMap.IsReal f
def
LinearMap.realRingEquiv
{R : Type u_1}
{E : Type u_2}
[Semiring R]
[AddCommMonoid E]
[StarAddMonoid E]
[Module R E]
[InvolutiveStar R]
[StarModule R E]
:
Equations
Instances For
theorem
LinearMap.mulRight_real
{E : Type u_1}
{K : Type u_2}
[CommSemiring K]
[NonUnitalSemiring E]
[InvolutiveStar K]
[StarRing E]
[Module K E]
[StarModule K E]
[SMulCommClass K E E]
[IsScalarTower K E E]
(x : E)
:
(LinearMap.mulRight K x).real = LinearMap.mulLeft K (star x)
theorem
LinearMap.mulLeft_real
{E : Type u_1}
{K : Type u_2}
[CommSemiring K]
[NonUnitalSemiring E]
[InvolutiveStar K]
[StarRing E]
[Module K E]
[StarModule K E]
[SMulCommClass K E E]
[IsScalarTower K E E]
(x : E)
:
(LinearMap.mulLeft K x).real = LinearMap.mulRight K (star x)
theorem
LinearMap.real.spectrum
{𝕜 : Type u_1}
{E : Type u_2}
[RCLike 𝕜]
[NormedAddCommGroup E]
[InnerProductSpace 𝕜 E]
[StarAddMonoid E]
[StarModule 𝕜 E]
[FiniteDimensional 𝕜 E]
(φ : E →ₗ[𝕜] E)
:
theorem
LinearMap.real.eigenspace
{𝕜 : Type u_2}
[RCLike 𝕜]
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace 𝕜 E]
[StarAddMonoid E]
[StarModule 𝕜 E]
(φ : E →ₗ[𝕜] E)
(α : 𝕜)
(x : E)
:
x ∈ Module.End.eigenspace φ.real α ↔ star x ∈ Module.End.eigenspace φ (star α)
theorem
LinearMap.real_neg
{E : Type u_1}
{F : Type u_2}
{K : Type u_3}
[AddCommMonoid E]
[StarAddMonoid E]
[AddCommGroup F]
[StarAddMonoid F]
[Semiring K]
[Module K E]
[Module K F]
[InvolutiveStar K]
[StarModule K E]
[StarModule K F]
(f : E →ₗ[K] F)
:
theorem
LinearMap.real_sub
{E : Type u_1}
{F : Type u_2}
{K : Type u_3}
[AddCommMonoid E]
[StarAddMonoid E]
[AddCommGroup F]
[StarAddMonoid F]
[Semiring K]
[Module K E]
[Module K F]
[InvolutiveStar K]
[StarModule K E]
[StarModule K F]
(f : E →ₗ[K] F)
(g : E →ₗ[K] F)
:
theorem
LinearMap.real_smul
{E : Type u_1}
{F : Type u_2}
{K : Type u_3}
[CommSemiring K]
[AddCommMonoid E]
[AddCommMonoid F]
[StarRing K]
[StarAddMonoid E]
[StarAddMonoid F]
[Module K E]
[Module K F]
[StarModule K E]
[StarModule K F]
(f : E →ₗ[K] F)
(α : K)
:
(α • f).real = (starRingEnd K) α • f.real
theorem
LinearMap.real_inj_eq
{E : Type u_1}
{F : Type u_2}
{K : Type u_3}
[Semiring K]
[AddCommMonoid E]
[AddCommMonoid F]
[InvolutiveStar K]
[StarAddMonoid E]
[StarAddMonoid F]
[Module K E]
[Module K F]
[StarModule K E]
[StarModule K F]
(f : E →ₗ[K] F)
(g : E →ₗ[K] F)
:
theorem
LinearMap.isRealOne
{E : Type u_1}
{K : Type u_2}
[Semiring K]
[AddCommMonoid E]
[Module K E]
[Star E]
:
theorem
LinearMap.isRealZero
{E : Type u_1}
{F : Type u_2}
{K : Type u_3}
[Semiring K]
[AddCommMonoid E]
[AddCommMonoid F]
[Module K E]
[Module K F]
[Star E]
[StarAddMonoid F]
:
theorem
LinearMap.real_one
{E : Type u_1}
{K : Type u_2}
[Semiring K]
[InvolutiveStar K]
[AddCommMonoid E]
[StarAddMonoid E]
[Module K E]
[StarModule K E]
:
LinearMap.real 1 = 1