Tensor Algebras #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Given a commutative semiring R, and an R-module M, we construct the tensor algebra of M.
This is the free R-algebra generated (R-linearly) by the module M.
Notation #
tensor_algebra R Mis the tensor algebra itself. It is endowed with an R-algebra structure.tensor_algebra.ι Ris the canonical R-linear mapM → tensor_algebra R M.- Given a linear map
f : M → Ato an R-algebraA,lift R fis the lift offto anR-algebra morphismtensor_algebra R M → A.
Theorems #
ι_comp_liftstates that the composition(lift R f) ∘ (ι R)is identical tof.lift_uniquestates that whenever an R-algebra morphismg : tensor_algebra R M → Ais given whose composition withι Risf, then one hasg = lift R f.hom_extis a variant oflift_uniquein the form of an extensionality theorem.lift_comp_ιis a combination ofι_comp_liftandlift_unique. It states that the lift of the composition of an algebra morphism withιis the algebra morphism itself.
Implementation details #
As noted above, the tensor algebra of M is constructed as the free R-algebra generated by M,
modulo the additional relations making the inclusion of M into an R-linear map.
- add : ∀ {R : Type u_1} [_inst_1 : comm_semiring R] {M : Type u_2} [_inst_2 : add_comm_monoid M] [_inst_3 : module R M] {a b : M}, tensor_algebra.rel R M (free_algebra.ι R (a + b)) (free_algebra.ι R a + free_algebra.ι R b)
- smul : ∀ {R : Type u_1} [_inst_1 : comm_semiring R] {M : Type u_2} [_inst_2 : add_comm_monoid M] [_inst_3 : module R M] {r : R} {a : M}, tensor_algebra.rel R M (free_algebra.ι R (r • a)) (⇑(algebra_map R (free_algebra R M)) r * free_algebra.ι R a)
An inductively defined relation on pre R M used to force the initial algebra structure on
the associated quotient.
The tensor algebra of the module M over the commutative semiring R.
Equations
- tensor_algebra R M = ring_quot (tensor_algebra.rel R M)
Equations
The canonical linear map M →ₗ[R] tensor_algebra R M.
Equations
- tensor_algebra.ι R = {to_fun := λ (m : M), ⇑(ring_quot.mk_alg_hom R (tensor_algebra.rel R M)) (free_algebra.ι R m), map_add' := _, map_smul' := _}
Given a linear map f : M → A where A is an R-algebra, lift R f is the unique lift
of f to a morphism of R-algebras tensor_algebra R M → A.
Equations
- tensor_algebra.lift R = {to_fun := ⇑(ring_quot.lift_alg_hom R) ∘ λ (f : M →ₗ[R] A), ⟨⇑(free_algebra.lift R) ⇑f, _⟩, inv_fun := λ (F : tensor_algebra R M →ₐ[R] A), F.to_linear_map.comp (tensor_algebra.ι R), left_inv := _, right_inv := _}
If C holds for the algebra_map of r : R into tensor_algebra R M, the ι of x : M,
and is preserved under addition and muliplication, then it holds for all of tensor_algebra R M.
The left-inverse of algebra_map.
Equations
The canonical map from tensor_algebra R M into triv_sq_zero_ext R M that sends
tensor_algebra.ι to triv_sq_zero_ext.inr.
Equations
The left-inverse of ι.
As an implementation detail, we implement this using triv_sq_zero_ext which has a suitable
algebra structure.
Equations
- tensor_algebra.ι_inv = let _inst : module Rᵐᵒᵖ M := module.comp_hom M ((ring_hom.id R).from_opposite tensor_algebra.ι_inv._proof_1) in (triv_sq_zero_ext.snd_hom R M).comp tensor_algebra.to_triv_sq_zero_ext.to_linear_map
The generators of the tensor algebra are disjoint from its scalars.
Construct a product of n elements of the module within the tensor algebra.
See also pi_tensor_product.tprod.
Equations
- tensor_algebra.tprod R M n = (multilinear_map.mk_pi_algebra_fin R n (tensor_algebra R M)).comp_linear_map (λ (_x : fin n), tensor_algebra.ι R)
The canonical image of the free_algebra in the tensor_algebra, which maps
free_algebra.ι R x to tensor_algebra.ι R x.