Making ProB compatible with SWI-Prolog
David Gele{\ss}us, Michael Leuschel

TL;DR
This paper details the process of adapting the ProB tool, originally developed in SICStus Prolog, to also run on SWI-Prolog, enhancing cross-implementation compatibility and verification.
Contribution
We refactored ProB's codebase to support SWI-Prolog, addressing compatibility issues and improving modularity for multi-implementation support.
Findings
Successfully supported ProB on SWI-Prolog with minimal code changes
Identified and resolved key compatibility issues between SICStus and SWI-Prolog
Enhanced verification by enabling cross-platform consistency checks
Abstract
Even though the core of the Prolog programming language has been standardized by ISO since 1995, it remains difficult to write complex Prolog programs that can run unmodified on multiple Prolog implementations. Indeed, implementations sometimes deviate from the ISO standard and the standard itself fails to cover many features that are essential in practice. Most Prolog applications thus have to rely on non-standard features, often making them dependent on one particular Prolog implementation and incompatible with others. We examine one such Prolog application: ProB, which has been developed for over 20 years in SICStus Prolog. The article describes how we managed to refactor the codebase of ProB to also support SWI-Prolog, with the goal of verifying ProB's results using two independent toolchains. This required a multitude of adjustments, ranging from extending the SICStus emulation…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Software System Performance and Reliability
