Stallings Graphs Research Code

This is the reference manual for Pascal Weil’s stallings_graphs Research Code extension to the Sage mathematical software system. Sage is free open source math software that supports research and teaching in algebra, geometry, number theory, cryptography, and related areas.

About this package

stallings_graphs Research Code implements tools to experiment with finitely generated subgroups of infinite groups in Sage, via a set of new Python classes. Many of the modules correspond to research code written for published articles (random generation, decision for various properties, etc). It is meant to be reused and reusable (full documentation including doctests).

Comments are welcome.

Install

To install this module, you do:

sage -pip install stallings_graphs

or:

sage -pip install http://www.labri.fr/perso/weil/software/stallings_graphs-0.2.tar.gz

To use this module, you need to import it:

from stallings_graphs import *

This reference manual contains many examples that illustrate the usage of stallings_graphs. The examples are all tested with each release of stallings_graphs, and should produce exactly the same output as in this manual, except for line breaks.

Licence

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

Prerequisites

Installing stallings_graph requires a working SageMath installation. Depending on the usage (especially to produce LaTeX, pdf, png outputs), it might be necessary to install the optional package dot2tex:

sage -i dot2tex

as well as the external packages ImageMagick, Graphviz.

On OSX, after installing Homebrew, one may do:

sudo brew install graphviz imagemagick

On Debian or Ubuntu, one may do:

sudo apt install graphviz imagemagick

Note that graphviz must be installed before dot2tex.

The package stallings_graph also uses Sébastien Labbé’s slabbe package and Thierry Coulbois’s train_track package. Both are automatically installed when stallings_graphs is installed.

Release history

Version 0.2, released September 2020 (Pascal Weil)

  • the package now works with Python 3
  • some bug fixes
  • addition of new methods on finitely generated subgroups, including the decision of free factors and the computation of the lattice of algebraic extensions of a subgroup
  • definition and usage of morphisms between free groups, by means of a connection to Thierry Coulbois’s train_track package

Version 0.1, released March 2019 (Pascal Weil)

References, Indices and tables

[BNW2008]
  1. Bassino, C. Nicaud, P. Weil. Random generation of finitely generated subgroups of a free group, International Journal of Algebra and Computation 18 (2008) 1-31.
[MVW2007]
  1. Miasnikov, E. Ventura, P. Weil. Algebraic extensions in free groups, in (G.N. Arzhantseva, L. Bartholdi, J. Burillo, E. Ventura eds.) Geometric group theory, Geneva and Barcelona conferences, Trends in Mathematics, Birkhaüser (2007), pp. 225-253.
[SW2008]
  1. Silva, P. Weil. On an algorithm to decide whether a free group is a free factor of another, Theoretical Informatics and Applications 42 (2008) 395-414.
[T2006]
  1. Touikan, A Fast Algorithm for Stallings’ Folding Process, International Journal of Algebra and Computation 16 2006 1031-1045.