|
D.3.1.30 symmetricPower
Procedure from library matrix.lib (see matrix_lib).
- Usage:
- symmetricPower(A, k); A module, k int
- Return:
- module: the k-th symmetric power of A
- Note:
- the chosen bases and most of intermediate data will be shown if
printlevel is big enough
Example:
| LIB "matrix.lib";
ring r = (0),(a, b, c, d), dp; r;
==> // coefficients: QQ
==> // number of vars : 4
==> // block 1 : ordering dp
==> // : names a b c d
==> // block 2 : ordering C
module B = a*gen(1) + c* gen(2), b * gen(1) + d * gen(2); print(B);
==> a,b,
==> c,d
// symmetric power over a commutative K-algebra:
print(symmetricPower(B, 2));
==> d2, cd, c2,
==> 2bd,bc+ad,2ac,
==> b2, ab, a2
print(symmetricPower(B, 3));
==> d3, cd2, c2d, c3,
==> 3bd2,2bcd+ad2,bc2+2acd,3ac2,
==> 3b2d,b2c+2abd,2abc+a2d,3a2c,
==> b3, ab2, a2b, a3
// symmetric power over an exterior algebra:
def g = superCommutative(); setring g; g;
==> // coefficients: QQ
==> // number of vars : 4
==> // block 1 : ordering dp
==> // : names a b c d
==> // block 2 : ordering C
==> // noncommutative relations:
==> // ba=-ab
==> // ca=-ac
==> // da=-ad
==> // cb=-bc
==> // db=-bd
==> // dc=-cd
==> // quotient ring from ideal
==> _[1]=d2
==> _[2]=c2
==> _[3]=b2
==> _[4]=a2
module B = a*gen(1) + c* gen(2), b * gen(1) + d * gen(2); print(B);
==> a,b,
==> c,d
print(symmetricPower(B, 2)); // much smaller!
==> 0,cd, 0,
==> 0,-bc+ad,0,
==> 0,ab, 0
print(symmetricPower(B, 3)); // zero! (over an exterior algebra!)
==> 0,0,0,0
| See also:
exteriorPower.
|