# 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