Multi-Configurable Search Rules in Prolog and Application to Testing
Prolog systems traditionally employ leftmost, depth-first search as their execution strategy. This choice is well justified for efficiency reasons, generally accepted, and useful in practice. However, it is also well-known that it can lead to incompleteness when evaluating programs over infinite search spaces and may not be ideal for complex search spaces. We revisit the role of search strategies in Prolog programs, and present a new approach, developed within the Ciao system, that enables programmable and composable control of search. While advanced search strategies can always be programmed in Prolog, we opt instead for an approach that separates the search strategy used from the actual code, so that different strategies can be used on the same set of clauses. We provide constructs for controlling the search strategies that allow adapting the search dynamically. We also illustrate the usefulness of the proposed approach by applying it in the context of testing (constraint) logic programs, showing how composable search parameters enable more controlled and targeted exploration of program behavior.
Mon 12 JanDisplayed time zone: Brussels, Copenhagen, Madrid, Paris change
11:00 - 12:30 | |||
11:00 30mTalk | An efficient compiler for the IDP-Z3 knowledge base system PADL Wout Piessens KU Leuven, Belgium, Simon Vandevelde KU Leuven, Belgium, Joost Vennekens KU Leuven, Tom Schrijvers KU Leuven | ||
11:30 30mTalk | Multi-Configurable Search Rules in Prolog and Application to Testing PADL Daniela Ferreiro Technical University of Madrid and IMDEA Software Institute, José Morales IMDEA Software Institute, Pedro López-García IMDEA Software Institute, Manuel Hermenegildo Technical University of Madrid (UPM) and IMDEA Software Institute | ||
12:00 30mTalk | Using Prolog to Translate Set Theory and B to SAT PADL Michael Leuschel HHU | ||