(Semi-)linear isometries #
In this file we define LinearIsometry σ₁₂ E E₂
(notation: E →ₛₗᵢ[σ₁₂] E₂
) to be a semilinear
isometric embedding of E
into E₂
and LinearIsometryEquiv
(notation: E ≃ₛₗᵢ[σ₁₂] E₂
) to be
a semilinear isometric equivalence between E
and E₂
. The notation for the associated purely
linear concepts is E →ₗᵢ[R] E₂
, E ≃ₗᵢ[R] E₂
, and E →ₗᵢ⋆[R] E₂
, E ≃ₗᵢ⋆[R] E₂
for
the star-linear versions.
We also prove some trivial lemmas and provide convenience constructors.
Since a lot of elementary properties don't require ‖x‖ = 0 → x = 0
we start setting up the
theory for SeminormedAddCommGroup
and we specialize to NormedAddCommGroup
when needed.
- toFun : E → E₂
- map_add' : ∀ (x y : E), AddHom.toFun s.toAddHom (x + y) = AddHom.toFun s.toAddHom x + AddHom.toFun s.toAddHom y
- map_smul' : ∀ (r : R) (x : E), AddHom.toFun s.toAddHom (r • x) = ↑σ₁₂ r • AddHom.toFun s.toAddHom x
A σ₁₂
-semilinear isometric embedding of a normed R
-module into an R₂
-module.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- coe : 𝓕 → E → E₂
- coe_injective' : Function.Injective FunLike.coe
SemilinearIsometryClass F σ E E₂
asserts F
is a type of bundled σ
-semilinear isometries
E → E₂
.
See also LinearIsometryClass F R E E₂
for the case where σ
is the identity map on R
.
A map f
between an R
-module and an S
-module over a ring homomorphism σ : R →+* S
is semilinear if it satisfies the two properties f (x + y) = f x + f y
and
f (c • x) = (σ c) • f x
.
Instances
LinearIsometryClass F R E E₂
asserts F
is a type of bundled R
-linear isometries
M → M₂
.
This is an abbreviation for SemilinearIsometryClass F (RingHom.id R) E E₂
.
Equations
- LinearIsometryClass 𝓕 R E E₂ = SemilinearIsometryClass 𝓕 (RingHom.id R) E E₂
Instances For
Equations
- One or more equations did not get rendered due to their size.
See Note [custom simps projection]. We need to specify this projection explicitly in this case, because it is a composition of multiple projections.
Equations
- LinearIsometry.Simps.apply σ₁₂ E E₂ h = ↑h
Instances For
Interpret a linear isometry as a continuous linear map.
Equations
- LinearIsometry.toContinuousLinearMap f = ContinuousLinearMap.mk f.toLinearMap
Instances For
Composition of linear isometries.
Equations
- LinearIsometry.comp g f = { toLinearMap := LinearMap.comp g.toLinearMap f.toLinearMap, norm_map' := (_ : ∀ (x : E), ‖↑g (↑f.toLinearMap x)‖ = ‖x‖) }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Construct a LinearIsometry
from a LinearMap
satisfying Isometry
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Submodule.subtype
as a LinearIsometry
.
Equations
- Submodule.subtypeₗᵢ p = { toLinearMap := Submodule.subtype p, norm_map' := (_ : ∀ (x : { x // x ∈ p }), ‖↑(Submodule.subtype p) x‖ = ‖↑(Submodule.subtype p) x‖) }
Instances For
- toFun : E → E₂
- map_add' : ∀ (x y : E), AddHom.toFun s.toAddHom (x + y) = AddHom.toFun s.toAddHom x + AddHom.toFun s.toAddHom y
- map_smul' : ∀ (r : R) (x : E), AddHom.toFun s.toAddHom (r • x) = ↑σ₁₂ r • AddHom.toFun s.toAddHom x
- invFun : E₂ → E
- left_inv : Function.LeftInverse s.invFun s.toFun
- right_inv : Function.RightInverse s.invFun s.toFun
A semilinear isometric equivalence between two normed vector spaces.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- coe : 𝓕 → E → E₂
- inv : 𝓕 → E₂ → E
- left_inv : ∀ (e : 𝓕), Function.LeftInverse (EquivLike.inv e) (EquivLike.coe e)
- right_inv : ∀ (e : 𝓕), Function.RightInverse (EquivLike.inv e) (EquivLike.coe e)
- coe_injective' : ∀ (e g : 𝓕), EquivLike.coe e = EquivLike.coe g → EquivLike.inv e = EquivLike.inv g → e = g
SemilinearIsometryEquivClass F σ E E₂
asserts F
is a type of bundled σ
-semilinear
isometric equivs E → E₂
.
See also LinearIsometryEquivClass F R E E₂
for the case where σ
is the identity map on R
.
A map f
between an R
-module and an S
-module over a ring homomorphism σ : R →+* S
is semilinear if it satisfies the two properties f (x + y) = f x + f y
and
f (c • x) = (σ c) • f x
.
Instances
LinearIsometryEquivClass F R E E₂
asserts F
is a type of bundled R
-linear isometries
M → M₂
.
This is an abbreviation for SemilinearIsometryEquivClass F (RingHom.id R) E E₂
.
Equations
- LinearIsometryEquivClass 𝓕 R E E₂ = SemilinearIsometryEquivClass 𝓕 (RingHom.id R) E E₂
Instances For
Equations
- SemilinearIsometryEquivClass.instSemilinearIsometryClass 𝓕 = SemilinearIsometryClass.mk (_ : ∀ (f : 𝓕) (x : E), ‖↑f x‖ = ‖x‖)
Helper instance for when there's too many metavariables to apply FunLike.hasCoeToFun
directly.
Equations
- LinearIsometryEquiv.instCoeFunLinearIsometryEquivForAll = { coe := FunLike.coe }
Construct a LinearIsometryEquiv
from a LinearEquiv
and two inequalities:
∀ x, ‖e x‖ ≤ ‖x‖
and ∀ y, ‖e.symm y‖ ≤ ‖y‖
.
Equations
Instances For
Reinterpret a LinearIsometryEquiv
as a LinearIsometry
.
Equations
Instances For
Reinterpret a LinearIsometryEquiv
as an IsometryEquiv
.
Equations
- LinearIsometryEquiv.toIsometryEquiv e = { toEquiv := LinearEquiv.toEquiv e.toLinearEquiv, isometry_toFun := (_ : Isometry ↑e) }
Instances For
Reinterpret a LinearIsometryEquiv
as a Homeomorph
.
Equations
Instances For
Interpret a LinearIsometryEquiv
as a ContinuousLinearEquiv
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Identity map as a LinearIsometryEquiv
.
Equations
- LinearIsometryEquiv.refl R E = { toLinearEquiv := LinearEquiv.refl R E, norm_map' := (_ : ∀ (x : E), ‖↑(LinearEquiv.refl R E) x‖ = ‖↑(LinearEquiv.refl R E) x‖) }
Instances For
Linear isometry equiv between a space and its lift to another universe.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- LinearIsometryEquiv.instInhabitedLinearIsometryEquivIdToNonAssocSemiringIds = { default := LinearIsometryEquiv.refl R E }
The inverse LinearIsometryEquiv
.
Equations
- LinearIsometryEquiv.symm e = { toLinearEquiv := LinearEquiv.symm e.toLinearEquiv, norm_map' := (_ : ∀ (x : E₂), ‖↑(LinearEquiv.symm e.toLinearEquiv) x‖ = ‖x‖) }
Instances For
See Note [custom simps projection]. We need to specify this projection explicitly in this case, because it is a composition of multiple projections.
Equations
- LinearIsometryEquiv.Simps.apply σ₁₂ E E₂ h = ↑h
Instances For
See Note [custom simps projection]
Equations
- LinearIsometryEquiv.Simps.symm_apply σ₁₂ E E₂ h = ↑(LinearIsometryEquiv.symm h)
Instances For
Composition of LinearIsometryEquiv
s as a LinearIsometryEquiv
.
Equations
- LinearIsometryEquiv.trans e e' = { toLinearEquiv := LinearEquiv.trans e.toLinearEquiv e'.toLinearEquiv, norm_map' := (_ : ∀ (x : E), ‖↑e' (↑↑e.toLinearEquiv x)‖ = ‖x‖) }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Lemmas about mixing the group structure with definitions. Because we have multiple ways to
express LinearIsometryEquiv.refl
, LinearIsometryEquiv.symm
, and
LinearIsometryEquiv.trans
, we want simp lemmas for every combination.
The assumption made here is that if you're using the group structure, you want to preserve it
after simp.
This copies the approach used by the lemmas near Equiv.Perm.trans_one
.
Reinterpret a LinearIsometryEquiv
as a ContinuousLinearEquiv
.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Construct a linear isometry equiv from a surjective linear isometry.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If a linear isometry has an inverse, it is a linear isometric equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The negation operation on a normed space E
, considered as a linear isometry equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The natural equivalence (E × E₂) × E₃ ≃ E × (E₂ × E₃)
is a linear isometry.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If p
is a submodule that is equal to ⊤
, then LinearIsometryEquiv.ofTop p hp
is the
"identity" equivalence between p
and E
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
LinearEquiv.ofEq
as a LinearIsometryEquiv
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Two linear isometries are equal if they are equal on basis vectors.
Two linear isometric equivalences are equal if they are equal on basis vectors.
Reinterpret a LinearIsometry
as a LinearIsometryEquiv
to the range.
Equations
- LinearIsometry.equivRange f = { toLinearEquiv := LinearEquiv.ofInjective f.toLinearMap (_ : Function.Injective ↑f), norm_map' := (_ : ∀ (x : F), ‖↑f.toLinearMap x‖ = ‖x‖) }