# freeAlgebra -- Create a FreeAlgebra

## Synopsis

• Usage:
A = freeAlgebra(R,xs)
• Inputs:
• R, a ring,
• xs, , containing the variables, and any options
• Outputs:
• A, ,

## Description

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 :

• "freeAlgebra(Ring,BasicList)"

## For the programmer

The object freeAlgebra is .