Contractions #
Given modules $M, N$ over a commutative ring $R$, this file defines the natural linear maps: $M^* \otimes M \to R$, $M \otimes M^* \to R$, and $M^* \otimes N → Hom(M, N)$, as well as proving some basic properties of these maps.
Tags #
contraction, dual module, tensor product
The natural left-handed pairing between a module and its dual.
Equations
- contractLeft R M = (TensorProduct.uncurry R (Module.Dual R M) M R).toFun LinearMap.id
Instances For
The natural right-handed pairing between a module and its dual.
Equations
- contractRight R M = (TensorProduct.uncurry R M (Module.Dual R M) R).toFun LinearMap.id.flip
Instances For
The natural map associating a linear map to the tensor product of two modules.
Equations
- dualTensorHom R M N = let M' := Module.Dual R M; (TensorProduct.uncurry R M' N (M →ₗ[R] N)) LinearMap.smulRightₗ
Instances For
As a matrix, dualTensorHom
evaluated on a basis element of M* ⊗ N
is a matrix with a
single one and zeros elsewhere
If M
is free, the natural linear map $M^* ⊗ N → Hom(M, N)$ is an equivalence. This function
provides this equivalence in return for a basis of M
.
Equations
- dualTensorHomEquivOfBasis b = LinearEquiv.ofLinear (dualTensorHom R M N) (∑ i : ι, (TensorProduct.mk R (Module.Dual R M) N) (b.dualBasis i) ∘ₗ LinearMap.applyₗ (b i)) ⋯ ⋯
Instances For
If M
is finite free, the natural map $M^* ⊗ N → Hom(M, N)$ is an
equivalence.
Equations
Instances For
When M
is a finite free module, the map lTensorHomToHomLTensor
is an equivalence. Note
that lTensorHomEquivHomLTensor
is not defined directly in terms of
lTensorHomToHomLTensor
, but the equivalence between the two is given by
lTensorHomEquivHomLTensor_toLinearMap
and lTensorHomEquivHomLTensor_apply
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
When M
is a finite free module, the map rTensorHomToHomRTensor
is an equivalence. Note
that rTensorHomEquivHomRTensor
is not defined directly in terms of
rTensorHomToHomRTensor
, but the equivalence between the two is given by
rTensorHomEquivHomRTensor_toLinearMap
and rTensorHomEquivHomRTensor_apply
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
When M
and N
are free R
modules, the map homTensorHomMap
is an equivalence. Note that
homTensorHomEquiv
is not defined directly in terms of homTensorHomMap
, but the equivalence
between the two is given by homTensorHomEquiv_toLinearMap
and homTensorHomEquiv_apply
.
Equations
- One or more equations did not get rendered due to their size.