Macaulay2 » Documentation
Packages » Macaulay2Doc > rings > symmetric algebras
next | previous | forward | backward | up | index | toc

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 ]
        0   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 ], {a*p , b*p , c*p , d*p , a, b, c, d})
             0      0   3       0     0     0     0

o4 : RingMap R[p ] <-- R[p ..p ]
                0         0   3
i5 : symmetricAlgebra transpose vars R

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

o5 : RingMap R[p ..p ] <-- R[p ]
                0   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..v]

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

o12 = R[t ..t ]
         0   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