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
Alias of Module.End.isUnit_iff
.
Equations
- One or more equations did not get rendered due to their size.
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 = { smul := fun (x1 : M ≃ₗ[R] M) (x2 : M) => x1 x2, one_smul := ⋯, mul_smul := ⋯, smul_zero := ⋯, smul_add := ⋯ }
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
Instances For
A linear isomorphism between the domains and codomains of two spaces of linear maps gives an additive isomorphism between the two function spaces.
See also LinearEquiv.arrowCongr
for the linear version of this isomorphism.
Equations
Instances For
A linear isomorphism between the domains an codomains of two spaces of linear maps gives a linear isomorphism with respect to an action on the domains.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If M
and M₂
are linearly isomorphic then the endomorphism rings of M
and M₂
are isomorphic.
See LinearEquiv.conj
for the linear version of this isomorphism.
Equations
- e.conjRingEquiv = { toEquiv := (e.arrowCongrAddEquiv e).toEquiv, map_mul' := ⋯, map_add' := ⋯ }
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.
See LinearEquiv.arrowCongrAddEquiv
for the additive version of this isomorphism that works
over a not necessarily commutative semiring.
Equations
- e₁.arrowCongr e₂ = { toFun := (e₁.arrowCongrAddEquiv e₂).toFun, map_add' := ⋯, map_smul' := ⋯, invFun := (e₁.arrowCongrAddEquiv e₂).invFun, left_inv := ⋯, right_inv := ⋯ }
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.
See LinearEquiv.conjRingEquiv
for the isomorphism between endomorphism rings,
which works over a not necessarily commutative semiring.
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
- One or more equations did not get rendered due to their size.
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 := ⋯ }