A = freeAlgebra(R,xs)
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.



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$.



This general construction is automated in ncGraphIdeal and ncKernel.
The object freeAlgebra is a method function.