(Semi)linear equivalences #
In this file we define
LinearEquiv σ M M₂,M ≃ₛₗ[σ] M₂: an invertible semilinear map. Here,σis aRingHomfromRtoR₂and ane : M ≃ₛₗ[σ] M₂satisfiese (c • x) = (σ c) • (e x). The plain linear version, withσbeingRingHom.id R, is denoted byM ≃ₗ[R] M₂, and the star-linear version (withσbeingstarRingEnd) is denoted byM ≃ₗ⋆[R] M₂.
Implementation notes #
To ensure that composition works smoothly for semilinear equivalences, we use the typeclasses
RingHomCompTriple, RingHomInvPair and RingHomSurjective from
Algebra/Ring/CompTypeclasses.
The group structure on automorphisms, LinearEquiv.automorphismGroup, is provided elsewhere.
TODO #
- Parts of this file have not yet been generalized to semilinear maps
Tags #
linear equiv, linear equivalences, linear isomorphism, linear isomorphic
- toFun : M → M₂
- map_add' : ∀ (x y : M), AddHom.toFun s.toAddHom (x + y) = AddHom.toFun s.toAddHom x + AddHom.toFun s.toAddHom y
- map_smul' : ∀ (r : R) (x : M), AddHom.toFun s.toAddHom (r • x) = ↑σ r • AddHom.toFun s.toAddHom x
- invFun : M₂ → M
The backwards directed function underlying a linear equivalence.
- left_inv : Function.LeftInverse s.invFun s.toFun
LinearEquiv.invFunis a left inverse to the linear equivalence's underlying function. - right_inv : Function.RightInverse s.invFun s.toFun
LinearEquiv.invFunis a right inverse to the linear equivalence's underlying function.
A linear equivalence is an invertible linear map.
Instances For
The additive equivalence of types underlying a linear equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The notation M ≃ₛₗ[σ] M₂ denotes the type of linear equivalences between M and M₂ over a
ring homomorphism σ.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The notation M ≃ₗ [R] M₂ denotes the type of linear equivalences between M and M₂ over
a plain linear map M →ₗ M₂.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The notation M ≃ₗ⋆[R] M₂ denotes the type of star-linear equivalences between M and M₂
over the ⋆ endomorphism of the underlying starred ring R.
Equations
- One or more equations did not get rendered due to their size.
Instances For
- coe : F → M → M₂
- inv : F → M₂ → M
- left_inv : ∀ (e : F), Function.LeftInverse (EquivLike.inv e) (EquivLike.coe e)
- right_inv : ∀ (e : F), Function.RightInverse (EquivLike.inv e) (EquivLike.coe e)
- coe_injective' : ∀ (e g : F), EquivLike.coe e = EquivLike.coe g → EquivLike.inv e = EquivLike.inv g → e = g
Applying a semilinear equivalence
foverσtor • xequalsσ r • f x.
SemilinearEquivClass F σ M M₂ asserts F is a type of bundled σ-semilinear equivs
M → M₂.
See also LinearEquivClass F R M M₂ 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
LinearEquivClass F R M M₂ asserts F is a type of bundled R-linear equivs M → M₂.
This is an abbreviation for SemilinearEquivClass F (RingHom.id R) M M₂.
Equations
- LinearEquivClass F R M M₂ = SemilinearEquivClass F (RingHom.id R) M M₂
Instances For
Equations
- SemilinearEquivClass.instSemilinearMapClass F = SemilinearMapClass.mk (_ : ∀ (f : F) (r : R) (x : M), ↑f (r • x) = ↑σ r • ↑f x)
Equations
- LinearEquiv.instCoeLinearEquivLinearMap = { coe := LinearEquiv.toLinearMap }
The equivalence of types underlying a linear equivalence.
Equations
- LinearEquiv.toEquiv f = (LinearEquiv.toAddEquiv f).toEquiv
Instances For
Equations
- LinearEquiv.instSemilinearEquivClassLinearEquiv = SemilinearEquivClass.mk (_ : ∀ (x : M ≃ₛₗ[σ] M₂) (r : R) (x_1 : M), AddHom.toFun x.toAddHom (r • x_1) = ↑σ r • AddHom.toFun x.toAddHom x_1)
The identity map is a linear equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Linear equivalences are symmetric.
Equations
- One or more equations did not get rendered due to their size.
Instances For
See Note [custom simps projection]
Equations
- LinearEquiv.Simps.apply e = ↑e
Instances For
See Note [custom simps projection]
Equations
Instances For
Linear equivalences are transitive.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The notation e₁ ≪≫ₗ e₂ denotes the composition of the linear equivalences e₁ and e₂.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The two paths coercion can take to an AddMonoidHom are equivalent
An involutive linear map is a linear equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If M and M₂ are both R-semimodules and S-semimodules and R-semimodule structures
are defined by an action of R on S (formally, we have two scalar towers), then any S-linear
equivalence from M to M₂ is also an R-linear equivalence.
See also LinearMap.restrictScalars.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Restriction from R-linear automorphisms of M to R-linear endomorphisms of M,
promoted to a monoid hom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The tautological action by M ≃ₗ[R] M on M.
This generalizes Function.End.applyMulAction.
LinearEquiv.applyDistribMulAction is faithful.
Any two modules that are subsingletons are isomorphic.
Equations
- One or more equations did not get rendered due to their size.
Instances For
g : R ≃+* S is R-linear when the module structure on S is Module.compHom S g .
Equations
- One or more equations did not get rendered due to their size.
Instances For
Each element of the group defines a linear equivalence.
This is a stronger version of DistribMulAction.toAddEquiv.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Each element of the group defines a module automorphism.
This is a stronger version of DistribMulAction.toAddAut.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An additive equivalence whose underlying function preserves smul is a linear equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An additive equivalence between commutative additive monoids is a linear equivalence between ℕ-modules
Equations
- AddEquiv.toNatLinearEquiv e = AddEquiv.toLinearEquiv e (_ : ∀ (c : ℕ) (a : M), ↑e (c • a) = c • ↑e a)
Instances For
An additive equivalence between commutative additive groups is a linear equivalence between ℤ-modules
Equations
- AddEquiv.toIntLinearEquiv e = AddEquiv.toLinearEquiv e (_ : ∀ (c : ℤ) (a : M), ↑(AddEquiv.toAddMonoidHom e) (c • a) = c • ↑(AddEquiv.toAddMonoidHom e) a)