Difference between revisions of "ApCoCoA-1:Symbolic data Computations"

From ApCoCoAWiki
Line 1: Line 1:
=== Computation Examples for [[:ApCoCoA:Symbolic data|Non-abelian Groups]] ===
+
=== Computation of [[:ApCoCoA:Symbolic data|Non-abelian Groups]] ===
  
==== <div id="Baumslag_groups">Computations of Baumslag groups</div> ====
+
==== <div id="Baumslag_groups">[[:ApCoCoA:Symbolic data#Baumslag_groups|Baumslag groups]]</div> ====
  
Recall that the Baumslag-Solitar groups have the following presentation
+
Recall that the Baumslag-Solitar groups have the following presentation.
 
  BS(m,n)<a, b | b*a^m = a^n*b> where m, n are natural numbers
 
  BS(m,n)<a, b | b*a^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.
 
We enumerate partial Groebner bases for the Baumslag-Solitar groups as follows.
 
  /*Use the ApCoCoA package ncpoly.*/
 
  /*Use the ApCoCoA package ncpoly.*/
Line 37: Line 47:
 
  EndDefine;
 
  EndDefine;
  
==== <div id="SL_3_8">Computations of SL(3,8)</div> ====
+
==== <div id="SL_3_8">SL(3,8)</div> ====
 
  /* SL(3,8) has a presentation with generators a, b, c, d, e and the following relators
 
  /* SL(3,8) has a presentation with generators a, b, c, d, e and the following relators
 
     a^2, b^2, c^7, de, ed,
 
     a^2, b^2, c^7, de, ed,

Revision as of 12:47, 1 July 2013

Computation of Non-abelian Groups

Recall that the Baumslag-Solitar groups have the following presentation.

BS(m,n)<a, b | b*a^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;

SL(3,8)

/* SL(3,8) has a presentation with generators a, b, c, d, e and the following relators
    a^2, b^2, c^7, de, ed,
    (cb)^2,
    (ba)^3,
    (acac^6)^2,
    c^2ac^6ac^5ac,
    dbe^2, 
    (ce)^2cd^2
    aead(ae)^2babd^2,
    eadae^2babd^2(ae)^2babd^2,
    ec^6daecdc^6aca,
    ec^6daecec^6d^2ae^2cd^2,
    ec^6daecec^6d^2ae^2cd^2.
    The following commands check whether the last relator, i.e. ec^6daecec^6d^2ae^2cd^2
    can be rewritten by the others, via Groebner basis techniques.
*/
Use ZZ/(2)[a,b,c,d,e];
G:=[[[a^2], [1]],
    [[b^2], [1]], 
    [[c^7], [1]],
    [[d, e], [1]],
    [[e, d], [1]],
    [[c, b, c, b], [1]],
    [[b, a, b, a, b, a], [1]],
    [[a, c, a, c^6, a, c, a, c^6], [1]],
    [[c^2, a, c^6, a, c^5, a, c], [1]],
    [[b, d, b, e^2], [1]], 
    [[c, e, c, e, c, d^2], [1]],
    [[a, e, a, d, a, e, a, e, b, a, b, d^2], [1]],
    [[e, a, d, a, e^2, b, a, b, d^2, a, e, a, e, b, a, b, d^2], [1]],
    [[e, c^6, d, a, e, c, d, c^6, a, c, a], [1]]];
F:=[ [e,c^6, d, a, e, c, e, c^6, d^2, a, e^2, c, d^2] ];
Gb:=NC.GB(G,31,1,100,5000);
NC.NR(F,Gb);