A Generic Framework for the Analysis and Specialization of Logic Programs
German Puebla, Elvira Albert, Manuel Hermenegildo

TL;DR
This paper introduces a fully described, generic algorithm that efficiently combines abstract interpretation and partial deduction to improve logic program analysis and specialization, surpassing individual techniques in precision.
Contribution
It presents the first comprehensive algorithm integrating abstract interpretation and partial deduction, adaptable to various control strategies and abstract domains.
Findings
Achieves more precise analysis results than individual techniques.
Supports different control strategies and abstract domains.
Implemented as a key component of the CiaoPP system.
Abstract
The relationship between abstract interpretation and partial deduction has received considerable attention and (partial) integrations have been proposed starting from both the partial deduction and abstract interpretation perspectives. In this work we present what we argue is the first fully described generic algorithm for efficient and precise integration of abstract interpretation and partial deduction. Taking as starting point state-of-the-art algorithms for context-sensitive, polyvariant abstract interpretation and (abstract) partial deduction, we present an algorithm which combines the best of both worlds. Key ingredients include the accurate success propagation inherent to abstract interpretation and the powerful program transformations achievable by partial deduction. In our algorithm, the calls which appear in the analysis graph are not analyzed w.r.t. the original definition of…
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
