Right-exactness properties of tensor product #
Modules #
-
TensorProduct.rTensor.surjective
asserts that when one tensors a surjective map on the right, one still gets a surjective linear map. -
TensorProduct.lTensor.surjective
asserts that when one tensors a surjective map on the left, one still gets a surjective linear map. -
TensorProduct.rTensor_exact
says that when one tensors a short exact sequence on the right, one still gets a short exact sequence (right-exactness ofTensorProduct.rTensor
), andrTensor.equiv
gives the LinearEquiv that follows from this combined withTensorProduct.rTensor.surjective
. -
TensorProduct.lTensor_exact
says that when one tensors a short exact sequence on the left, one still gets a short exact sequence (right-exactness ofTensorProduct.rTensor
) andlTensor.equiv
gives the LinearEquiv that follows from this combined withTensorProduct.lTensor.surjective
. -
For
N : Submodule R M
,LinearMap.exact_subtype_mkQ N
says that the inclusion of the submodule and the quotient map form an exact pair, andlTensor_mkQ
computeker (lTensor Q (N.mkQ))
and similarly forrTensor_mkQ
-
TensorProduct.map_ker
computes the kernel ofTensorProduct.map f g'
in the presence of two short exact sequences.
The proofs are those of [bourbaki1989] (chap. 2, §3, n°6)
Algebras #
In the case of a tensor product of algebras, these results can be particularized to compute some kernels.
-
Algebra.TensorProduct.ker_map
computes the kernel ofAlgebra.TensorProduct.map f g
-
Algebra.TensorProduct.lTensor_ker
andAlgebra.TensorProduct.rTensor_ker
compute the kernels ofAlgebra.TensorProduct.map f id
andAlgebra.TensorProduct.map id g
Note on implementation #
-
All kernels are computed by applying the first isomorphism theorem and establishing some isomorphisms.
-
The proofs are essentially done twice, once for
lTensor
and then forrTensor
. It is possible to applyTensorProduct.flip
to deduce one of them from the other. However, this approach will lead to different isomorphisms, and it is not quicker. -
The proofs of
Ideal.map_includeLeft_eq
andIdeal.map_includeRight_eq
could be easier ifI ⊗[R] B
was naturally anA ⊗[R] B
module, and the map toA ⊗[R] B
was known to be linear. This depends on the B-module structure on a tensor product whose use rapidly conflicts with everything…
TODO #
-
Treat the noncommutative case
-
Treat the case of modules over semirings (For a possible definition of an exact sequence of commutative semigroups, see [Grillet-1969b], Pierre-Antoine Grillet, The tensor product of commutative semigroups, Trans. Amer. Math. Soc. 138 (1969), 281-293, doi:10.1090/S0002-9947-1969-0237688-1 .)
If g
is surjective, then lTensor Q g
is surjective
If g
is surjective, then rTensor Q g
is surjective
The direct map in lTensor.equiv
Equations
- lTensor.toFun Q hfg = Submodule.liftQ (LinearMap.range (LinearMap.lTensor Q f)) (LinearMap.lTensor Q g) (_ : LinearMap.range (LinearMap.lTensor Q f) ≤ LinearMap.ker (LinearMap.lTensor Q g))
Instances For
The inverse map in lTensor.equiv_of_rightInverse
(computably, given a right inverse)
Equations
- One or more equations did not get rendered due to their size.
Instances For
The inverse map in lTensor.equiv
Equations
- lTensor.inverse Q hfg hg = lTensor.inverse_of_rightInverse Q hfg (_ : Function.RightInverse (Function.surjInv hg) ⇑g)
Instances For
For a surjective f : N →ₗ[R] P
,
the natural equivalence between Q ⊗ N ⧸ (image of ker f)
to Q ⊗ P
(computably, given a right inverse)
Equations
- One or more equations did not get rendered due to their size.
Instances For
For a surjective f : N →ₗ[R] P
,
the natural equivalence between Q ⊗ N ⧸ (image of ker f)
to Q ⊗ P
Equations
- lTensor.equiv Q hfg hg = lTensor.linearEquiv_of_rightInverse Q hfg (_ : Function.RightInverse (Function.surjInv hg) ⇑g)
Instances For
Tensoring an exact pair on the left gives an exact pair
Right-exactness of tensor product
The direct map in rTensor.equiv
Equations
- rTensor.toFun Q hfg = Submodule.liftQ (LinearMap.range (LinearMap.rTensor Q f)) (LinearMap.rTensor Q g) (_ : LinearMap.range (LinearMap.rTensor Q f) ≤ LinearMap.ker (LinearMap.rTensor Q g))
Instances For
The inverse map in rTensor.equiv_of_rightInverse
(computably, given a right inverse)
Equations
- One or more equations did not get rendered due to their size.
Instances For
The inverse map in rTensor.equiv
Equations
- rTensor.inverse Q hfg hg = rTensor.inverse_of_rightInverse Q hfg (_ : Function.RightInverse (Function.surjInv hg) ⇑g)
Instances For
For a surjective f : N →ₗ[R] P
,
the natural equivalence between N ⊗[R] Q ⧸ (range (rTensor Q f))
and P ⊗[R] Q
(computably, given a right inverse)
Equations
- One or more equations did not get rendered due to their size.
Instances For
For a surjective f : N →ₗ[R] P
,
the natural equivalence between N ⊗[R] Q ⧸ (range (rTensor Q f))
and P ⊗[R] Q
Equations
- rTensor.equiv Q hfg hg = rTensor.linearEquiv_of_rightInverse Q hfg (_ : Function.RightInverse (Function.surjInv hg) ⇑g)
Instances For
Tensoring an exact pair on the right gives an exact pair
Right-exactness of tensor product (rTensor
)
Kernel of a product map (right-exactness of tensor product)
The ideal of A ⊗[R] B
generated by I
is the image of I ⊗[R] B
The ideal of A ⊗[R] B
generated by I
is the image of A ⊗[R] I
If g
is surjective, then the kernel of (id A) ⊗ g
is generated by the kernel of g
If f
is surjective, then the kernel of f ⊗ (id B)
is generated by the kernel of f
If f
and g
are surjective morphisms of algebras, then
the kernel of Algebra.TensorProduct.map f g
is generated by the kernels of f
and g