next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
Macaulay2Doc > rings > symmetric algebras

symmetric algebras

Polynomial rings are symmetric algebras with explicit generators, and we have already seen how to construct them. But if you have a module, then its symmetric algebra can be constructed with symmetricAlgebra.
i1 : R = QQ[a..d];
i2 : symmetricAlgebra R^3

o2 = R[p , p , p ]
        0   1   2

o2 : PolynomialRing
Maps between symmetric algebras can be constructed functorially.
i3 : vars R

o3 = | a b c d |

             1       4
o3 : Matrix R  <--- R
i4 : symmetricAlgebra vars R

o4 = map(R[p ],R[p , p , p , p ],{a*p , b*p , c*p , d*p , a, b, c, d})
            0     0   1   2   3      0     0     0     0

o4 : RingMap R[p ] <--- R[p , p , p , p ]
                0          0   1   2   3
i5 : symmetricAlgebra transpose vars R

o5 = map(R[p , p , p , p ],R[p ],{a*p  + b*p  + c*p  + d*p , a, b, c, d})
            0   1   2   3     0      0      1      2      3

o5 : RingMap R[p , p , p , p ] <--- R[p ]
                0   1   2   3          0
Until the ring is used with use or assigned to a global variable, its generators are not assigned to global variables.
i6 : a

o6 = a

o6 : R
i7 : p_0

o7 = p
      0

o7 : IndexedVariable
i8 : S = o2;
i9 : a

o9 = a

o9 : R
i10 : p_0

o10 = p
       0

o10 : S
To specify the names of the variables when creating the ring, use the Variables option or the VariableBaseName option.
i11 : symmetricAlgebra(R^3, Variables => {t,u,v})

o11 = R[t, u, v]

o11 : PolynomialRing
i12 : symmetricAlgebra(R^3, VariableBaseName => t)

o12 = R[t , t , t ]
         0   1   2

o12 : PolynomialRing
We can construct the symmetric algebra of a module that isn't necessarily free.
i13 : use R

o13 = R

o13 : PolynomialRing
i14 : symmetricAlgebra(R^1/(a,b^3))

          R[p ]
             0
o14 = ------------
              3
      (a*p , b p )
          0     0

o14 : QuotientRing