Efficient Groundness Analysis in Prolog
Jacob M. Howe, Andy King

TL;DR
This paper presents an efficient Prolog implementation of groundness analysis using a new representation of definite Boolean functions, leading to scalable and fast analysis without the need for widening.
Contribution
It introduces a novel representation and algorithms for definite Boolean functions, optimizing groundness analysis in Prolog for improved efficiency and scalability.
Findings
Analysis runs efficiently on large benchmarks
No widening needed for convergence in large cases
Quadratic-time entailment checking enhances performance
Abstract
Boolean functions can be used to express the groundness of, and trace grounding dependencies between, program variables in (constraint) logic programs. In this paper, a variety of issues pertaining to the efficient Prolog implementation of groundness analysis are investigated, focusing on the domain of definite Boolean functions, Def. The systematic design of the representation of an abstract domain is discussed in relation to its impact on the algorithmic complexity of the domain operations; the most frequently called operations should be the most lightweight. This methodology is applied to Def, resulting in a new representation, together with new algorithms for its domain operations utilising previously unexploited properties of Def -- for instance, quadratic-time entailment checking. The iteration strategy driving the analysis is also discussed and a simple, but very effective,…
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
TopicsLogic, programming, and type systems · Formal Methods in Verification · Software Testing and Debugging Techniques
