#### 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 considered as a field
    ==> // 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 considered as a field
    ==> // 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.

User manual for Singular version 4.4.1, 2025, generated by texi2html.