Predicate Specialization for Definitional Higher-order Logic Programs
Antonis Troumpoukis, Angelos Charalambidis

TL;DR
This paper introduces a program specialization technique using partial evaluation to transform certain higher-order logic programs into efficient first-order programs, enabling execution with standard interpreters and potential optimizations.
Contribution
It presents a novel partial evaluation method for higher-order logic programs that produces first-order equivalents without extra data structures.
Findings
Transformations improve execution efficiency.
First-order programs are compatible with existing interpreters.
Experimental results support the effectiveness of the approach.
Abstract
Higher-order logic programming is an interesting extension of traditional logic programming that allows predicates to appear as arguments and variables to be used where predicates typically occur. Higher-order characteristics are indeed desirable but on the other hand they are also usually more expensive to support. In this paper we propose a program specialization technique based on partial evaluation that can be applied to a modest but useful class of higher-order logic programs and can transform them into first-order programs without introducing additional data structures. The resulting first-order programs can be executed by conventional logic programming interpreters and benefit from other optimizations that might be available. We provide an implementation and experimental results that suggest the efficiency of the transformation.
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, Reasoning, and Knowledge · Logic, programming, and type systems · Formal Methods in Verification
