Extras for ring_theory.tensor_product
#
This file in mathlib starts with some heterobasic results, but quickly drops back to forcing various rings or algebra to be equal. This isn't enough for us when trying to base change a quadratic form.
https://github.com/leanprover-community/mathlib4/pull/6035 adds some of these results to mathlib4.
The A
-module structure on A ⊗[R] M
#
Heterobasic tensor_product.map
.
Equations
- tensor_product.algebra_tensor_module.map f g = tensor_product.algebra_tensor_module.lift ((show (Q →ₗ[R] tensor_product R P Q) →ₗ[A] N →ₗ[R] tensor_product R P Q, from {to_fun := λ (h : Q →ₗ[R] tensor_product R P Q), h.comp g, map_add' := _, map_smul' := _}).comp ((tensor_product.algebra_tensor_module.mk R A P Q).comp f))
Heterobasic map_bilinear
Heterobasic tensor_product.congr
.
Equations
Equations
Heterobasic tensor_product.left_comm
.
Equations
- tensor_product.algebra_tensor_module.left_comm R A M P Q = let e₁ : tensor_product A M (tensor_product R P Q) ≃ₗ[A] tensor_product R (tensor_product A M P) Q := (tensor_product.algebra_tensor_module.assoc R A M Q P).symm, e₂ : tensor_product R (tensor_product A M P) Q ≃ₗ[A] tensor_product R (tensor_product A P M) Q := tensor_product.algebra_tensor_module.congr (tensor_product.comm A M P) 1, e₃ : tensor_product R (tensor_product A P M) Q ≃ₗ[A] tensor_product A P (tensor_product R M Q) := tensor_product.algebra_tensor_module.assoc R A P Q M in e₁.trans (e₂.trans e₃)
Equations
A variant of algebra_tensor_module.uncurry
, where only the outermost map is
A
-linear.
Equations
- tensor_product.algebra_tensor_module.uncurry' R A N P Q = {to_fun := tensor_product.algebra_tensor_module.lift _, map_add' := _, map_smul' := _}
A variant of algebra_tensor_module.lcurry
, where only the outermost map is
A
-linear.
Equations
- tensor_product.algebra_tensor_module.lcurry' R A N P Q = {to_fun := tensor_product.algebra_tensor_module.curry _, map_add' := _, map_smul' := _}
A variant of algebra_tensor_module.assoc
, where only the outermost map is
A
-linear.
Equations
- tensor_product.algebra_tensor_module.assoc' R A M N Q = linear_equiv.of_linear (tensor_product.algebra_tensor_module.lift (tensor_product.algebra_tensor_module.lift ((tensor_product.algebra_tensor_module.lcurry' R A N (tensor_product R M (tensor_product R N Q)) Q).comp (tensor_product.algebra_tensor_module.mk R A M (tensor_product R N Q))))) (tensor_product.algebra_tensor_module.lift ((tensor_product.algebra_tensor_module.uncurry' R A N (tensor_product R (tensor_product R M N) Q) Q).comp (tensor_product.algebra_tensor_module.curry (tensor_product.algebra_tensor_module.mk R A (tensor_product R M N) Q)))) _ _
A tensor product analogue of mul_right_comm
.
Equations
- tensor_product.algebra_tensor_module.right_comm R A M P Q = linear_equiv.of_linear (tensor_product.algebra_tensor_module.lift (tensor_product.lift ((tensor_product.algebra_tensor_module.lcurry R A M Q (tensor_product A (tensor_product R M Q) P)).comp (tensor_product.algebra_tensor_module.mk A A (tensor_product R M Q) P).flip).flip)) (tensor_product.lift (tensor_product.algebra_tensor_module.lift ((linear_map.restrict_scalars R (tensor_product.lcurry A M P (tensor_product R (tensor_product A M P) Q))).comp (tensor_product.algebra_tensor_module.mk R A (tensor_product A M P) Q).flip).flip)) _ _
Heterobasic version of tensor_tensor_tensor_comm
.
Equations
- tensor_product.algebra_tensor_module.tensor_tensor_tensor_comm R A M N P Q = ((tensor_product.algebra_tensor_module.assoc R A (tensor_product R M N) Q P).symm.trans (tensor_product.algebra_tensor_module.congr (tensor_product.algebra_tensor_module.right_comm R A M P N).symm 1)).trans (tensor_product.algebra_tensor_module.assoc' R A (tensor_product A M P) N Q)
a stronger version of alg_hom_of_linear_map_tensor_product
a stronger version of map
a stronger version of include_left
a stronger version of ext