BacktrackKit

An extensible, easy to understand backtracking framework

Version 1.2.0
Released 2026-10-01

This project is maintained by Christopher Jefferson, Wilf A. Wilson

Build Status Code Coverage

The GAP package BacktrackKit

This package provides a simple implementation of Leon’s partition backtrack framework.

This package is intended to be a package for learning the algorithms of partition backtrack, and the performance is extremely poor – orders of magnitude slower than the algorithms in GAP. If you want to see a modern, high-performance extension to partition backtrack, look at the vole package.

BacktrackKit currently requires (currently) GAP version >= 4.13.0, and sufficiently recent versions of the following packages (see the PackageInfo.g file for specific versions):

Contact

This package is a work in progress, both in terms of code and documentation.

If you have any issues or questions about this package, please post an issue at https://github.com/peal/BacktrackKit/issues

History

1.0.0

0.6.2

0.6.1

0.6.0

Refiners now have a “constraint” member, which is a new type of GAP object, and which stores information about the constraint that the refiner refiners with respect to. Constraints are available via the Constraint record.

0.5.1

Add IsEven and IsOdd refiners, to more efficiently handle alternating groups

0.5.0

CI and releases

CI tests the development, latest, and oldest supported GAP versions on Linux, plus development GAP on Windows, with both normal and OnlyNeeded loading. The Docs workflow builds the manual and uploads its PDF.

To release, update the version and date in PackageInfo.g, push to master, then run Actions → Release on master with dry-run selected first. Inspect the generated archives and manuals, then rerun without dry-run to publish the GitHub release and update the package website. Existing website customisations are preserved. Use force only when intentionally replacing an existing release or bypassing the release-date check.