Logic Programming with Graph Automorphism: Integrating nauty with Prolog (Tool Description)

Michael Frank, Michael Codish

Research output: Contribution to journalArticlepeer-review

4 Scopus citations

Abstract

This paper presents the pl-nauty library, a Prolog interface to the nauty graph-automorphism tool. Adding the capabilities of nauty to Prolog combines the strength of the generate and prune approach that is commonly used in logic programming and constraint solving, with the ability to reduce symmetries while reasoning over graph objects. Moreover, it enables the integration of nauty in existing tool-chains, such as SAT-solvers or finite domain constraints compilers which exist for Prolog. The implementation consists of two components: pl-nauty, an interface connecting nauty's C library with Prolog, and pl-gtools, a Prolog framework integrating the software component of pl-nauty, called gtools, with Prolog. The complete tool is available as a SWI-Prolog module. We provide a series of usage examples including two that apply to generate Ramsey graphs.

Original languageEnglish
Pages (from-to)688-702
Number of pages15
JournalTheory and Practice of Logic Programming
Volume16
Issue number5-6
DOIs
StatePublished - 1 Sep 2016

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture
  • Computational Theory and Mathematics
  • Artificial Intelligence

Fingerprint

Dive into the research topics of 'Logic Programming with Graph Automorphism: Integrating nauty with Prolog (Tool Description)'. Together they form a unique fingerprint.

Cite this