Further results on (semi)linear equivalences. #
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
- LinearEquiv.restrictScalars R f = { toFun := ⇑f, map_add' := ⋯, map_smul' := ⋯, invFun := ⇑f.symm, left_inv := ⋯, right_inv := ⋯ }
Instances For
Equations
Restriction from R-linear automorphisms of M to R-linear endomorphisms of M,
promoted to a monoid hom.
Equations
- LinearEquiv.automorphismGroup.toLinearMapMonoidHom = { toFun := fun (e : M ≃ₗ[R] M) => ↑e, map_one' := ⋯, map_mul' := ⋯ }
Instances For
The tautological action by M ≃ₗ[R] M on M.
This generalizes Function.End.applyMulAction.
Equations
LinearEquiv.applyDistribMulAction is faithful.
Any two modules that are subsingletons are isomorphic.
Equations
- LinearEquiv.ofSubsingleton M M₂ = { toFun := fun (x : M) => 0, map_add' := ⋯, map_smul' := ⋯, invFun := fun (x : M₂) => 0, left_inv := ⋯, right_inv := ⋯ }
Instances For
g : R ≃+* S is R-linear when the module structure on S is Module.compHom S g .
Equations
- Module.compHom.toLinearEquiv g = { toFun := ⇑g, map_add' := ⋯, map_smul' := ⋯, invFun := ⇑g.symm, left_inv := ⋯, right_inv := ⋯ }
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
- DistribMulAction.toModuleAut R M = { toFun := DistribMulAction.toLinearEquiv R M, map_one' := ⋯, map_mul' := ⋯ }
Instances For
An additive equivalence whose underlying function preserves smul is a linear equivalence.
Equations
- e.toLinearEquiv h = { toFun := e.toFun, map_add' := ⋯, map_smul' := h, invFun := e.invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
An additive equivalence between commutative additive monoids is a linear equivalence between ℕ-modules
Equations
- e.toNatLinearEquiv = e.toLinearEquiv ⋯
Instances For
An additive equivalence between commutative additive groups is a linear equivalence between ℤ-modules
Equations
- e.toIntLinearEquiv = e.toLinearEquiv ⋯
Instances For
The equivalence between R-linear maps from R to M, and points of M itself.
This says that the forgetful functor from R-modules to types is representable, by R.
This is an S-linear equivalence, under the assumption that S acts on M commuting with R.
When R is commutative, we can take this to be the usual action with S = R.
Otherwise, S = ℕ shows that the equivalence is additive.
See note [bundled maps over different rings].
Equations
- LinearMap.ringLmapEquivSelf R S M = { toFun := fun (f : R →ₗ[R] M) => f 1, map_add' := ⋯, map_smul' := ⋯, invFun := LinearMap.smulRight 1, left_inv := ⋯, right_inv := ⋯ }
Instances For
The R-linear equivalence between additive morphisms A →+ B and ℕ-linear morphisms A →ₗ[ℕ] B.
Equations
- addMonoidHomLequivNat R = { toFun := AddMonoidHom.toNatLinearMap, map_add' := ⋯, map_smul' := ⋯, invFun := LinearMap.toAddMonoidHom, left_inv := ⋯, right_inv := ⋯ }
Instances For
The R-linear equivalence between additive morphisms A →+ B and ℤ-linear morphisms A →ₗ[ℤ] B.
Equations
- addMonoidHomLequivInt R = { toFun := AddMonoidHom.toIntLinearMap, map_add' := ⋯, map_smul' := ⋯, invFun := LinearMap.toAddMonoidHom, left_inv := ⋯, right_inv := ⋯ }
Instances For
Ring equivalence between additive group endomorphisms of an AddCommGroup A and
ℤ-module endomorphisms of A.
Equations
- addMonoidEndRingEquivInt A = { toFun := (↑(addMonoidHomLequivInt ℤ)).toFun, invFun := (addMonoidHomLequivInt ℤ).invFun, left_inv := ⋯, right_inv := ⋯, map_mul' := ⋯, map_add' := ⋯ }
Instances For
Between two zero modules, the zero map is an equivalence.
Equations
- LinearEquiv.instZero = { zero := let __src := 0; { toFun := 0, map_add' := ⋯, map_smul' := ⋯, invFun := 0, left_inv := ⋯, right_inv := ⋯ } }
Between two zero modules, the zero map is the only equivalence.
Equations
- LinearEquiv.instUnique = { default := 0, uniq := ⋯ }
Linear equivalence between a curried and uncurried function.
Differs from TensorProduct.curry.
Equations
- LinearEquiv.curry R M V V₂ = { toFun := (Equiv.curry V V₂ M).toFun, map_add' := ⋯, map_smul' := ⋯, invFun := (Equiv.curry V V₂ M).invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
If a linear map has an inverse, it is a linear equivalence.
Equations
- LinearEquiv.ofLinear f g h₁ h₂ = { toLinearMap := f, invFun := ⇑g, left_inv := ⋯, right_inv := ⋯ }
Instances For
x ↦ -x as a LinearEquiv
Equations
- LinearEquiv.neg R = { toFun := (Equiv.neg M).toFun, map_add' := ⋯, map_smul' := ⋯, invFun := (Equiv.neg M).invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
Multiplying by a unit a of the ring R is a linear equivalence.
Equations
Instances For
A linear isomorphism between the domains and codomains of two spaces of linear maps gives a linear isomorphism between the two function spaces.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If M₂ and M₃ are linearly isomorphic then the two spaces of linear maps from M into M₂
and M into M₃ are linearly isomorphic.
Equations
- f.congrRight = (LinearEquiv.refl R M).arrowCongr f
Instances For
If M and M₂ are linearly isomorphic then the two spaces of linear maps from M and M₂ to
themselves are linearly isomorphic.
Equations
- e.conj = e.arrowCongr e
Instances For
An R-linear isomorphism between two R-modules M₂ and M₃ induces an S-linear
isomorphism between M₂ →ₗ[R] M and M₃ →ₗ[R] M, if M is both an R-module and an
S-module and their actions commute.
Equations
Instances For
Multiplying by a nonzero element a of the field K is a linear equivalence.
Equations
- LinearEquiv.smulOfNeZero K M a ha = LinearEquiv.smulOfUnit (Units.mk0 a ha)
Instances For
An equivalence whose underlying function is linear is a linear equivalence.
Equations
- e.toLinearEquiv h = { toFun := e.toFun, map_add' := ⋯, map_smul' := ⋯, invFun := e.invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
Given an R-module M and a function m → n between arbitrary types,
construct a linear map (n → M) →ₗ[R] (m → M)
Equations
- LinearMap.funLeft R M f = { toFun := fun (x : n → M) => x ∘ f, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Given an R-module M and an equivalence m ≃ n between arbitrary types,
construct a linear equivalence (n → M) ≃ₗ[R] (m → M)
Equations
- LinearEquiv.funCongrLeft R M e = LinearEquiv.ofLinear (LinearMap.funLeft R M ⇑e) (LinearMap.funLeft R M ⇑e.symm) ⋯ ⋯
Instances For
The product over S ⊕ T of a family of modules is isomorphic to the product of
(the product over S) and (the product over T).
This is Equiv.sumPiEquivProdPi as a LinearEquiv.
Equations
- LinearEquiv.sumPiEquivProdPi R S T A = { toFun := (Equiv.sumPiEquivProdPi A).toFun, map_add' := ⋯, map_smul' := ⋯, invFun := (Equiv.sumPiEquivProdPi A).invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
The product Π t : α, f t of a family of modules is linearly isomorphic to the module
f ⬝ when α only contains ⬝.
This is Equiv.piUnique as a LinearEquiv.
Equations
- LinearEquiv.piUnique R f = { toFun := (Equiv.piUnique f).toFun, map_add' := ⋯, map_smul' := ⋯, invFun := (Equiv.piUnique f).invFun, left_inv := ⋯, right_inv := ⋯ }