mathlib documentation

linear_algebra.​tensor_algebra

linear_algebra.​tensor_algebra

Tensor Algebras

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

  1. tensor_algebra R M is the tensor algebra itself. It is endowed with an R-algebra structure.
  2. tensor_algebra.ι R M is the canonical R-linear map M → tensor_algebra R M.
  3. Given a linear map f : M → A to an R-algebra A, lift R M f is the lift of f to an R-algebra morphism tensor_algebra R M → A.

Theorems

  1. ι_comp_lift states that the composition (lift R M f) ∘ (ι R M) is identical to f.
  2. lift_unique states that whenever an R-algebra morphism g : tensor_algebra R M → A is given whose composition with ι R M is f, then one has g = lift R M f.
  3. hom_ext is a variant of lift_unique in the form of an extensionality theorem.
  4. lift_comp_ι is a combination of ι_comp_lift and lift_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. This is done as a quotient of an inductive type by an inductively defined relation. Explicltly, the construction involves three steps:

  1. We construct an inductive type tensor_algebra.pre R M, the terms of which should be thought of as representatives for the elements of tensor_algebra R M. It is the free type with maps from R and M, and with two binary operations add and mul.
  2. We construct an inductive relation tensor_algebra.rel R M on tensor_algebra.pre R M. This is the smallest relation for which the quotient is an R-algebra where addition resp. multiplication are induced by add resp. mul from 1, and for which the map from R is the structure map for the algebra while the map from M is R-linear.
  3. The tensor algebra tensor_algebra R M is the quotient of tensor_algebra.pre R M by the relation tensor_algebra.rel R M.
inductive tensor_algebra.​pre (R : Type u_1) [comm_semiring R] (M : Type u_2) [add_comm_group M] [semimodule R M] :
Type (max u_1 u_2)

This inductive type is used to express representatives of the tensor algebra.

Coercion from M to pre R M. Note: Used for notation only.

Equations

Coercion from R to pre R M. Note: Used for notation only.

Equations
def tensor_algebra.​pre.​has_mul (R : Type u_1) [comm_semiring R] (M : Type u_2) [add_comm_group M] [semimodule R M] :

Multiplication in pre R M defined as pre.mul. Note: Used for notation only.

Equations
def tensor_algebra.​pre.​has_add (R : Type u_1) [comm_semiring R] (M : Type u_2) [add_comm_group M] [semimodule R M] :

Addition in pre R M defined as pre.add. Note: Used for notation only.

Equations
def tensor_algebra.​pre.​has_zero (R : Type u_1) [comm_semiring R] (M : Type u_2) [add_comm_group M] [semimodule R M] :

Zero in pre R M defined as the image of 0 from R. Note: Used for notation only.

Equations
def tensor_algebra.​pre.​has_one (R : Type u_1) [comm_semiring R] (M : Type u_2) [add_comm_group M] [semimodule R M] :

One in pre R M defined as the image of 1 from R. Note: Used for notation only.

Equations

Scalar multiplication defined as multiplication by the image of elements from R. Note: Used for notation only.

Equations
def tensor_algebra.​lift_fun (R : Type u_1) [comm_semiring R] (M : Type u_2) [add_comm_group M] [semimodule R M] {A : Type u_3} [semiring A] [algebra R A] :
(M →ₗ[R] A)tensor_algebra.pre R M → A

Given a linear map from M to an R-algebra A, lift_fun provides a lift of f to a function from pre R M to A. This is mainly used in the construction of tensor_algebra.lift.

Equations
inductive tensor_algebra.​rel (R : Type u_1) [comm_semiring R] (M : Type u_2) [add_comm_group M] [semimodule R M] :

An inductively defined relation on pre R M used to force the initial algebra structure on the associated quotient.

def tensor_algebra (R : Type u_1) [comm_semiring R] (M : Type u_2) [add_comm_group M] [semimodule R M] :
Type (max u_1 u_2)

The tensor algebra of the module M over the commutative semiring R.

Equations
@[instance]
def tensor_algebra.​semiring (R : Type u_1) [comm_semiring R] (M : Type u_2) [add_comm_group M] [semimodule R M] :

Equations
@[instance]
def tensor_algebra.​inhabited (R : Type u_1) [comm_semiring R] (M : Type u_2) [add_comm_group M] [semimodule R M] :

Equations
@[instance]
def tensor_algebra.​has_scalar (R : Type u_1) [comm_semiring R] (M : Type u_2) [add_comm_group M] [semimodule R M] :

Equations
@[instance]
def tensor_algebra.​algebra (R : Type u_1) [comm_semiring R] (M : Type u_2) [add_comm_group M] [semimodule R M] :

Equations
def tensor_algebra.​ι (R : Type u_1) [comm_semiring R] (M : Type u_2) [add_comm_group M] [semimodule R M] :

The canonical linear map M →ₗ[R] tensor_algebra R M.

Equations
def tensor_algebra.​lift (R : Type u_1) [comm_semiring R] (M : Type u_2) [add_comm_group M] [semimodule R M] {A : Type u_3} [semiring A] [algebra R A] :
(M →ₗ[R] A)(tensor_algebra R M →ₐ[R] A)

Given a linear map f : M → A where A is an R-algebra, lift R M f is the unique lift of f to a morphism of R-algebras tensor_algebra R M → A.

Equations
@[simp]
theorem tensor_algebra.​ι_comp_lift {R : Type u_1} [comm_semiring R] {M : Type u_2} [add_comm_group M] [semimodule R M] {A : Type u_3} [semiring A] [algebra R A] (f : M →ₗ[R] A) :

@[simp]
theorem tensor_algebra.​lift_unique {R : Type u_1} [comm_semiring R] {M : Type u_2} [add_comm_group M] [semimodule R M] {A : Type u_3} [semiring A] [algebra R A] (f : M →ₗ[R] A) (g : tensor_algebra R M →ₐ[R] A) :

@[simp]
theorem tensor_algebra.​lift_comp_ι {R : Type u_1} [comm_semiring R] {M : Type u_2} [add_comm_group M] [semimodule R M] {A : Type u_3} [semiring A] [algebra R A] (g : tensor_algebra R M →ₐ[R] A) :

theorem tensor_algebra.​hom_ext {R : Type u_1} [comm_semiring R] {M : Type u_2} [add_comm_group M] [semimodule R M] {A : Type u_3} [semiring A] [algebra R A] {f g : tensor_algebra R M →ₐ[R] A} :