Hostname: page-component-6898cfcb55-th4rj Total loading time: 0 Render date: 2026-11-11T11:15:34.732Z Has data issue: false hasContentIssue false

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

Published online by Cambridge University Press:  14 October 2016

MICHAEL FRANK
Affiliation:
Department of Computer Science, Ben-Gurion University of the Negev, Beer-Sheva, Israel (e-mail: frankm@cs.bgu.ac.il, mcodish@cs.bgu.ac.il)
MICHAEL CODISH
Affiliation:
Department of Computer Science, Ben-Gurion University of the Negev, Beer-Sheva, Israel (e-mail: frankm@cs.bgu.ac.il, mcodish@cs.bgu.ac.il)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

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 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.

Information

Type
Regular Papers
Copyright
Copyright © Cambridge University Press 2016