Symmetric tensor power of a semimodule over a commutative semiring #
We define the nth 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) Mthat is associative and commutative, and thatn ↦ Sym[R]^n Mis a graded (semi)ring and algebra. - Universal property: linear maps from
Sym[R]^n MtoNcorrespond to symmetric multilinear mapsM ^ ntoN. - 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