ApCoCoA-1:HowTo:Run ApCoCoA on a Computing Server

From ApCoCoAWiki
Revision as of 15:16, 19 June 2013 by Xiu (talk | contribs)


This HowTo shows you how to run ApCoCoA on a Linux server with terminal.


  • Download ApCoCoA QT and unzip the file. (This HowTo takes ApCoCoA 1.9.0 as an example.)
wget http://www.apcocoa.org/download/apcocoa/linux-x86_64/apcocoa-1.9.0-QT-linux-x86_64.tgz
tar xzvf apcocoa-1.9.0-QT-linux-x86_64.tgz

Run ApCoCoA

Go to the folder ApCoCoA-1.9.0. The contents in the folder are as follows.

ApCoCoA files.jpg

In the following, assume that you are working at the directory ApCoCoA-1.9.0/.

ApCoCoA with Text Interface

Run the following command at terminal to start the ApCoCoA text interface.


ApCoCoA text.jpg

You can run any (Ap)CoCoA command in this interface.

ApCoCoA text1.jpg


In many cases you also need to run the ApCoCoAServer. Here, assume that you have some terminal tools, like "screen", "tmux", etc., to create new terminal sessions, and that you are able to switch between terminal sessions without having to stop the running program.

Create a new terminal session for the ApCoCoAServer and run the following command to start the ApCoCoAServer.


ApCoCoA Server0.jpg

Observe that the ApCoCoAServer is running on the default port 49344 (0xc0c0). One can change the port number to n by using option -p as follows.

./ApCoCoAServer -p n

Now let us switch to the terminal session for the ApCoCoA text interface again. Execute the following commands.

NCo.IsFinite(X, M); -- Check whether <x,y>/<x^3,yxy,xyx> is finite

The function NCo.IsFinite uses the ApCoCoAServer. You will get the following result in the ApCoCoA text interface.

ApCoCoA text2.jpg

And you can see the following message in the terminal session for the ApCoCoAServer.

ApCoCoA Server1.jpg

ApCoCoA Program Files

If you want to reuse a long sequence of commands or some user-defined functions, it is convenient to put those commands and functions in some ApCoCoA program files as batch files and then ask ApCoCoA to process them when it starts.

For example, we have a presentation for SL(3,8) as follows. and we wa put the following commands in a file named SL_3_8.coc.

/* 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,
    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] ];