ApCoCoA-1:Baumslag groups
From ApCoCoAWiki
Baumslag-Solitar groups have the following presentation.
BS(m,n)<a, b | ba^{m} = a^{n}b> where m, n are natural numbers
XML data:
<vars>a[1],a[2],b[1],b[2]</vars> <params>m,n</params> <rels> <ncpoly>a[1]*a[2]-1</ncpoly> <ncpoly>a[2]*a[1]-1</ncpoly> <ncpoly>b[1]*b[2]-1</ncpoly> <ncpoly>b[2]*b[1]-1</ncpoly> <ncpoly>b[1]*a[1]^{m}-a[1]^{n}*b[1]</ncpoly> </rels>
We enumerate partial Groebner bases for the Baumslag-Solitar groups as follows.
/*Use the ApCoCoA package ncpoly.*/ Use ZZ/(2)[a[1..2],b[1..2]]; NC.SetOrdering("LLEX"); A1:=[[a[1],a[2]],[1]]; A2:=[[a[2],a[1]],[1]]; B1:=[[b[1],b[2]],[1]]; B2:=[[b[2],b[1]],[1]]; -- Relation ba^2=a^3b. Change 2 and 3 in "()" to make another relation R:=[[b[1],a[1]^(2)],[a[1]^(3),b[1]]]; G:=[A1,A2,B1,B2,R]; -- Enumerate a partial Groebner basis (see NC.GB for more details) NC.GB(G,31,1,100,1000);
/*Use the ApCoCoA package gbmr.*/ -- See NCo.BGB for more details on the parameters DB, LB and OFlag. Define BS(M,N,DB,LB,OFlag) $apcocoa/gbmr.SetX("aAbB"); $apcocoa/gbmr.SetOrdering("LLEX"); G:= [["aA",""],["Aa",""],["bB",""],["bB",""]]; BA:= "b"; AB:= "b"; For I:= 1 To ARGV[1] Do BA:= BA + "a"; EndFor; For I:= 1 To ARGV[2] Do AB:= "a" + Ab; EndFor; Append(G,[BA,AB]); Return $apcocoa/gbmr.BGB(G,DB,LB,OFlag); EndDefine;