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 = QQ [p , p , p , p , p , p , p ]
0 1 2 3 4 5 6
o2 : PolynomialRing
|
Until the ring is used with
use or assigned to a global variable, its generators are not assigned to global variables.
i3 : a
o3 = a
o3 : R
|
i4 : p_0
o4 = p
0
o4 : IndexedVariable
|
i5 : S = o2;
|
i6 : a
o6 = a
o6 : R
|
i7 : p_0
o7 = p
0
o7 : S
|
To specify the names of the variables when creating the ring, use the
Variables option or the
VariableBaseName option.
i8 : symmetricAlgebra(R^3, Variables => {t,u,v})
o8 = QQ [p , p , p , p , p , p , p ]
0 1 2 3 4 5 6
o8 : PolynomialRing
|
i9 : symmetricAlgebra(R^3, VariableBaseName => t)
o9 = QQ [t , t , t , t , t , t , t ]
0 1 2 3 4 5 6
o9 : PolynomialRing
|
We can construct the symmetric algebra of a module that isn't necessarily free.
i10 : use R
o10 = R
o10 : PolynomialRing
|
i11 : symmetricAlgebra(R^1/(a,b^3))
QQ [p , p , p , p , p ]
0 1 2 3 4
o11 = -----------------------
3
(p p , p p )
0 1 0 2
o11 : QuotientRing
|