Tensor power of a semimodule over a commutative semiring #
We define the n
th tensor power of M
as the n-ary tensor product indexed by Fin n
of M
,
⨂[R] (i : Fin n), M
. This is a special case of PiTensorProduct
.
This file introduces the notation ⨂[R]^n M
for TensorPower R n M
, which in turn is an
abbreviation for ⨂[R] i : Fin n, M
.
Main definitions: #
TensorPower.gsemiring
: the tensor powers form a graded semiring.TensorPower.galgebra
: the tensor powers form a graded algebra.
Implementation notes #
In this file we use ₜ1
and ₜ*
as local notation for the graded multiplicative structure on
tensor powers. Elsewhere, using 1
and *
on GradedMonoid
should be preferred.
Homogeneous tensor powers ⨂[R]^n M
is a shorthand for
⨂[R] (i : Fin n), M
.
Equations
- TensorPower R n M = PiTensorProduct R fun (x : Fin n) => M
Homogeneous tensor powers ⨂[R]^n M
is a shorthand for
⨂[R] (i : Fin n), M
.
Equations
- One or more equations did not get rendered due to their size.
Two dependent pairs of tensor products are equal if their index is equal and the contents are equal after a canonical reindexing.
As a graded monoid, ⨂[R]^i M
has a 1 : ⨂[R]^0 M
.
Equations
- TensorPower.gOne = { one := (PiTensorProduct.tprod R) Fin.elim0 }
A variant of PiTensorProduct.tmulEquiv
with the result indexed by Fin (n + m)
.
Equations
- TensorPower.mulEquiv = (PiTensorProduct.tmulEquiv R M).trans (PiTensorProduct.reindex R (fun (x : Fin n ⊕ Fin m) => M) finSumFinEquiv)
As a graded monoid, ⨂[R]^i M
has a (*) : ⨂[R]^i M → ⨂[R]^j M → ⨂[R]^(i + j) M
.
Equations
- One or more equations did not get rendered due to their size.
Cast between "equal" tensor powers.
Equations
- TensorPower.cast R M h = PiTensorProduct.reindex R (fun (x : Fin i) => M) (finCongr h)
Equations
- One or more equations did not get rendered due to their size.
The canonical map from R
to ⨂[R]^0 M
corresponding to the algebraMap
of the tensor
algebra.
Equations
Equations
- One or more equations did not get rendered due to their size.
The tensor powers form a graded algebra.
Note that this instance implies Algebra R (⨁ n : ℕ, ⨂[R]^n M)
via DirectSum.Algebra
.
Equations
- TensorPower.galgebra = { toFun := (↑TensorPower.algebraMap₀).toAddMonoidHom, map_one := ⋯, map_mul := ⋯, commutes := ⋯, smul_def := ⋯ }