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 M
is the tensor algebra itself. It is endowed with an R-algebra structure.tensor_algebra.ι R
is the canonical R-linear mapM → tensor_algebra R M
.- Given a linear map
f : M → A
to an R-algebraA
,lift R f
is the lift off
to anR
-algebra morphismtensor_algebra R M → A
.
Theorems #
ι_comp_lift
states that the composition(lift R f) ∘ (ι R)
is identical tof
.lift_unique
states that whenever an R-algebra morphismg : tensor_algebra R M → A
is given whose composition withι R
isf
, then one hasg = lift R f
.hom_ext
is a variant oflift_unique
in the form of an extensionality theorem.lift_comp_ι
is a combination ofι_comp_lift
andlift_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
.