Logic Programming with Graph Automorphism: Integrating nauty with Prolog (Tool Description)*. Issue 5 (14th October 2016) - FRANK, MICHAEL
Abstract: This paper presents thepl-nauty library, a Prolog interface to thenauty graph-automorphism tool. Adding the capabilities ofnauty 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 ofnauty 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 connectingnauty 's C library with Prolog, andpl-gtools, a Prolog framework integrating the software component ofpl-nauty, calledgtools, 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.