This function creates a free algebra over $R$ with variables from the BasicList xs. Options are also passed as part of the BasicList. The variables are not in scope after a call to this function by default. If you wish to have them in scope, one may use the return value, or pass the option true to UseVariables.
i1 : A = freeAlgebra(QQ,{x,y,z})
o1 = A
o1 : FreeAlgebra
|
i2 : use A o2 = A o2 : FreeAlgebra |
i3 : assert(x == A_0) |
Other options are Degrees, DegreeRank, Weights, and Heft which use the same syntax and play the same role as in the case of a commutative polynomial ring.
In particular, to create noncommutative elimination orders, one must use Weights that are chosen accordingly. The following example is the graph ideal of the ring homomorphism from $\mathbb{Q}\langle a,b,c\rangle$ to $\mathbb{Q}\langle x,y\rangle$ satisfying $a \mapsto xyx$, $b \mapsto yxy$ and $c \mapsto xy$.
i4 : B = freeAlgebra(QQ,{x,y,a,b,c,Weights=>{1,1,0,0,0},Degrees=>{1,1,3,3,2}})
o4 = B
o4 : FreeAlgebra
|
i5 : I = ideal {a - x*y*x, b - y*x*y, c - x*y}
o5 = ideal (- x*y*x + a, - y*x*y + b, - x*y + c)
o5 : Ideal of B
|
i6 : Igb = NCGB(I,10)
o6 = | xy-c cx-a yc-b ay-c2 ya-bx xb-c2 c3-ab abx-c2a abc-cab |
1 9
o6 : Matrix B <--- B
|
This general construction is automated in ncGraphIdeal and ncKernel.
The object freeAlgebra is a method function.