next | previous | forward | backward | up | top | index | toc | Macaulay2 website
AssociativeAlgebras :: freeAlgebra

freeAlgebra -- Create a FreeAlgebra



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.

Ways to use freeAlgebra :

For the programmer

The object freeAlgebra is a method function.