Tensor power of a semimodule over a commutative semirings #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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 pi_tensor_product
.
This file introduces the notation ⨂[R]^n M
for tensor_power R n M
, which in turn is an
abbreviation for ⨂[R] i : fin n, M
.
Main definitions: #
tensor_power.gsemiring
: the tensor powers form a graded semiring.tensor_power.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 graded_monoid
should be preferred.
Homogenous tensor powers $M^{\otimes n}$. ⨂[R]^n M
is a shorthand for
⨂[R] (i : fin n), M
.
Equations
- tensor_power R n M = pi_tensor_product R (λ (i : fin n), M)
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
A variant of pi_tensor_prod.tmul_equiv
with the result indexed by fin (n + m)
.
Equations
As a graded monoid, ⨂[R]^i M
has a (*) : ⨂[R]^i M → ⨂[R]^j M → ⨂[R]^(i + j) M
.
Equations
- tensor_power.ghas_mul = {mul := λ (i j : ℕ) (a : tensor_power R i M) (b : tensor_power R j M), ⇑(⇑((tensor_product.mk R (tensor_power R i M) (tensor_power R j M)).compr₂ ↑tensor_power.mul_equiv) a) b}
Cast between "equal" tensor powers.
Equations
- tensor_power.cast R M h = pi_tensor_product.reindex R M (fin.cast h).to_equiv
Equations
- tensor_power.gmonoid = {mul := graded_monoid.ghas_mul.mul tensor_power.ghas_mul, one := graded_monoid.ghas_one.one tensor_power.ghas_one, one_mul := _, mul_one := _, mul_assoc := _, gnpow := graded_monoid.gmonoid.gnpow_rec {one := graded_monoid.ghas_one.one tensor_power.ghas_one}, gnpow_zero' := _, gnpow_succ' := _}
The canonical map from R
to ⨂[R]^0 M
corresponding to the algebra_map of the tensor
algebra.
Equations
Equations
- tensor_power.gsemiring = {mul := graded_monoid.gmonoid.mul tensor_power.gmonoid, mul_zero := _, zero_mul := _, mul_add := _, add_mul := _, one := graded_monoid.gmonoid.one tensor_power.gmonoid, one_mul := _, mul_one := _, mul_assoc := _, gnpow := graded_monoid.gmonoid.gnpow tensor_power.gmonoid, gnpow_zero' := _, gnpow_succ' := _, nat_cast := λ (n : ℕ), ⇑tensor_power.algebra_map₀ ↑n, nat_cast_zero := _, nat_cast_succ := _}
The tensor powers form a graded algebra.
Note that this instance implies algebra R (⨁ n : ℕ, ⨂[R]^n M)
via direct_sum.algebra
.
Equations
- tensor_power.galgebra = {to_fun := tensor_power.algebra_map₀.to_linear_map.to_add_monoid_hom, map_one := _, map_mul := _, commutes := _, smul_def := _}