Arrow Research search
Back to LOPSTR

LOPSTR 2024

Improving Logic Programs by Adding Functions

Conference Paper Synthesis and Transformation Formal Methods · Logic in Computer Science

Abstract

Abstract Logic programming is based on defining relations. Functions are often considered as syntactic sugar which can be transformed into predicates so that their logic is not used for computational purposes. In this paper, we present a method to use functions to improve the operational behavior of logic programs without loosing the flexibility of logic programming. For this purpose, predicates and goals are transformed into functions and nested expressions. By evaluating these functions in a demand-driven manner wherever possible and taking potential failures into account, we ensure that the execution of the transformed programs will never require more steps than the original programs but can decrease the number of steps—in the best case reducing infinite search spaces to finite ones. Thus, we obtain a systematic method to improve the operational behavior of logic programs without changing their semantics.

Authors

Keywords

No keywords are indexed for this paper.

Context

Venue
International Symposium on Logic-Based Program Synthesis and Transformation
Archive span
1990-2025
Indexed papers
560
Paper id
88461438503931347
v2026.09.13