This repository contains GAP, MAGMA, and PYTHON code that accompany a joint publication [TODO]. With these, you can recreate all computations that are referenced in the publication, see Section (Re-)Generating the Output.
The GAP package D# provides methods for computing the distinguishing number of a permutation group and a corresponding witnessing partition.
The MAGMA files provide the same functionality.
The PYTHON files are needed for a few numerical computations in the paper.
1. To get the newest version of this package download the archive file DistinguishingNumber-x.x.tar.gz from
2. The installation for all systems require to unpack the archive file,
which creates a subdirectory called DistinguishingNumber/.
The location is only important for the GAP installation process.
Thus we recommend putting it in a GAP pkg/ directory, see Step 2 in Installation for GAP.
3. You can now follow the instructions of the installation for each system, skipping the parts where the archive is downloaded and unpacked.
1. To get the newest version of this GAP 4 package download the archive file DistinguishingNumber-x.x.tar.gz from
2. Locate a pkg/ directory where GAP searches for packages, see
in the GAP manual for more information.
3. Unpack the archive file in such a pkg/ directory
which creates a subdirectory called DistinguishingNumber/.
4. Now you can use the package within GAP by entering LoadPackage("DistinguishingNumber"); on the GAP prompt.
1. To get the newest version of this MAGMA package download the archive file DistinguishingNumber-x.x.tar.gz from
2. Unpack the archive file in an arbitrary location
which creates a subdirectory called DistinguishingNumber/.
3. Start MAGMA from within the unpacked directory.
You can use the package now by entering load "read.mag"; on the MAGMA prompt.
1. To get the newest version of this PYTHON package download the archive file DistinguishingNumber-x.x.tar.gz from
2. Unpack the archive file in an arbitrary location
which creates a subdirectory called DistinguishingNumber/.
3. Run the following to make the PYTHON package executable from within the unpacked directory.
pip install -e ./
We recommend calling the scripts not by hand, but rather by running
python runScripts.py <scripts>
For an explanation of the correct usage and all options, see the internal help via
python runScripts.py --help
We include a list of example usages:
| code | comment |
|---|---|
python runScripts.py scripts/lemma_2_4 |
run all scripts from lemma_2_4 |
python runScripts.py lemma_2_4 |
run all scripts from lemma_2_4 |
python runScripts.py lemma_2_5/**/*.py |
run all python scripts from lemma_2_5 |
python runScripts.py *_2_*/**/* |
run all scripts from section 2 |
python runScripts.py |
run all scripts |
- gap
- gap packages:
- io
- ProgressBar
- magma
- python3
- python3 packages:
- argparse
- datetime
- functools
- glob
- multiprocessing
- numpy
- os
- pandas
- subprocess
- time
DistinguishingNumber is free software you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. For details, see the file LICENSE distributed as part of this package or see the FSF's own site.