Symmetric tensor power of a semimodule over a commutative semiring #
We define the n
th symmetric tensor power of M
as the TensorPower
quotiented by the relation
that the tprod
of n
elements is equal to the tprod
of the same elements permuted by a
permutation of Fin n
. We denote this space by Sym[R]^n M
, and the canonical multilinear map
from M ^ n
to Sym[R]^n M
by ⨂ₛ[R] i, f i
.
Main definitions: #
SymmetricPower.module
: the symmetric tensor power is a module overR
.
TODO: #
- Grading: show that there is a map
Sym[R]^i M × Sym[R]^j M → Sym[R]^(i + j) M
that is associative and commutative, and thatn ↦ Sym[R]^n M
is a graded (semi)ring and algebra. - Universal property: linear maps from
Sym[R]^n M
toN
correspond to symmetric multilinear mapsM ^ n
toN
. - Relate to homogneous (multivariate) polynomials of degree
n
.
The relation on the n
ᵗʰ tensor power of M
that two tensors are equal if they are related by
a permutation of Fin n
.
- perm {R : Type u} [CommSemiring R] {M : Type v} [AddCommMonoid M] [Module R M] {n : ℕ} (e : Equiv.Perm (Fin n)) (f : Fin n → M) : Rel R M n ((PiTensorProduct.tprod R) fun (i : Fin n) => f i) ((PiTensorProduct.tprod R) fun (i : Fin n) => f (e i))
Instances For
The symmetric tensor power of a semimodule M
over a commutative semiring R
is the quotient of the n
ᵗʰ tensor power by the relation that two tensors are equal
if they are related by a permutation of Fin n
.
Equations
- SymmetricPower R M n = (addConGen (SymmetricPower.Rel R M n)).Quotient
Instances For
The symmetric tensor power of a semimodule M
over a commutative semiring R
is the quotient of the n
ᵗʰ tensor power by the relation that two tensors are equal
if they are related by a permutation of Fin n
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- SymmetricPower.instAddCommMonoid R M n = (addConGen (SymmetricPower.Rel R M n)).addCommMonoid
The canonical map from the n
ᵗʰ tensor power to the n
ᵗʰ symmetric tensor power.
Equations
- SymmetricPower.mk' R M n = (addConGen (SymmetricPower.Rel R M n)).mk'
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- SymmetricPower.module R M n R₁ = { toSMul := SymmetricPower.smul R M n, one_smul := ⋯, mul_smul := ⋯, smul_zero := ⋯, smul_add := ⋯, add_smul := ⋯, zero_smul := ⋯ }
Equations
- SymmetricPower.instModule R M n = SymmetricPower.module R M n R
The canonical map from the n
ᵗʰ tensor power to the n
ᵗʰ symmetric tensor power.
Equations
- SymmetricPower.mk R M n = { toFun := (↑(addConGen (SymmetricPower.Rel R M n)).mk').toFun, map_add' := ⋯, map_smul' := ⋯ }
Instances For
The multilinear map that takes n
elements of M
and returns their symmetric tensor product.
Denoted ⨂ₛ[R] i, f i
.
Equations
- SymmetricPower.tprod R = { toMultilinearMap := (SymmetricPower.mk R M n).compMultilinearMap (PiTensorProduct.tprod R), map_perm_apply' := ⋯ }
Instances For
The multilinear map that takes n
elements of M
and returns their symmetric tensor product.
Denoted ⨂ₛ[R] i, f i
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pretty printer defined by notation3
command.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The pure tensors (i.e. the elements of the image of SymmetricPower.tprod
) span the symmetric
tensor product.
Equations
- SymmetricPower.liftAux f = { toFun := (↑((addConGen (SymmetricPower.Rel R M n)).lift ↑(PiTensorProduct.lift ↑f) ⋯)).toFun, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- SymmetricPower.map n f = (SymmetricPower.lift R M (SymmetricPower R N n) n) ((SymmetricPower.tprod R).compLinearMap f)
Instances For
Functoriality of map
.
Functoriality of map
.
map
converts linear equiv to linear equiv.
Equations
- SymmetricPower.mapLinearEquiv n e = LinearEquiv.ofLinear (SymmetricPower.map n ↑e) (SymmetricPower.map n ↑e.symm) ⋯ ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- SymmetricPower.«term_✱_» = Lean.ParserDescr.trailingNode `SymmetricPower.«term_✱_» 70 70 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "✱") (Lean.ParserDescr.cat `term 71))
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Naturality of baseChange
.
Equations
- SymmetricPower.instOne R A n = { one := (SymmetricPower.tprod R) 1 }
Equations
- SymmetricPower.eval R A n = (SymmetricPower.lift R A A n) (mkPiAlgebra R (Fin n) A)
Instances For
Equations
- SymmetricPower.evalSelf R n = LinearEquiv.ofLinear (SymmetricPower.eval R R n) (LinearMap.smulRight 1 1) ⋯ ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- SymmetricPower.instOneOfNatNat R M = { one := (SymmetricPower.tprod R) ![] }
Equations
- SymmetricPower.gMul R M = { mul := fun {i j : ℕ} (x : SymmetricPower R M i) (y : SymmetricPower R M j) => ((SymmetricPower.mul R M i j) x) y }
Equations
- SymmetricPower.gOne R M = { one := 1 }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- instAddCommGroupSymmetricPower R M n = (addConGen (SymmetricPower.Rel R M n)).addCommGroup