# twoSidedNCGroebnerBasisBergman -- Calls Bergman to compute a two sided noncommutative Groebner Basis.

## Synopsis

• Usage:
twoSidedNCGroebnerBasisBergman I
• Inputs:
• I, an instance of the type NCIdeal, or a List of NCRingElements
• Optional inputs:
• DegreeLimit => an integer, default value 10, specifies the maximum degree for the Groebner basis calculation
• NumModuleVars => an integer, default value 0, specifies the number of module variables in the ring of the Groebner basis
• MakeMonic => , default value true, specifies whether the Bergman output should be made monic
• CacheBergmanGB => , default value true, specifies whether or not to cache the Groebner basis for later use
• Outputs:

## Description

This command calls the computer algebra system Bergman to compute a noncommutative Groebner basis.

Since Groebner bases in the tensor algebra need not be finitely generated, one should specify a degree limit on the computation unless one has a reason to believe the Groebner basis is finite.

 i1 : A = QQ{x,y,z} o1 = A o1 : NCPolynomialRing i2 : p = y*z + z*y - x^2 2 o2 = zy+yz-x o2 : A i3 : q = x*z + z*x - y^2 2 o3 = zx-y +xz o3 : A i4 : r = z^2 - x*y - y*x 2 o4 = z -yx-xy o4 : A i5 : I = ncIdeal {p,q,r} 2 2 2 o5 = Two-sided ideal {zy+yz-x , zx-y +xz, z -yx-xy} o5 : NCIdeal i6 : Igb = twoSidedNCGroebnerBasisBergman I --Calling Bergman for NCGB calculation. Complete! 2 2 2 o6 = y x-xy ; Lead Term = (y x, 1) 2 2 2 yx -x y; Lead Term = (yx , 1) 2 zx-y +xz; Lead Term = (zx, 1) 2 zy+yz-x ; Lead Term = (zy, 1) 2 2 z -yx-xy; Lead Term = (z , 1) o6 : NCGroebnerBasis

## Ways to use twoSidedNCGroebnerBasisBergman :

• "twoSidedNCGroebnerBasisBergman(List)"
• "twoSidedNCGroebnerBasisBergman(NCIdeal)"

## For the programmer

The object twoSidedNCGroebnerBasisBergman is .