Verifying Termination and Error-Freedom of Logic Programs with block Declarations
Jan-Georg Smaus, Patricia M. Hill, Andy King
Abstract
We present verification methods for logic programs with delay declarations. The verified properties are termination and freedom from errors related to built-ins. Concerning termination, we present two approaches. The first approach tries to eliminate the well-known problem of speculative output bindings. The second approach is based on identifying the predicates for which the textual position of an atom using this predicate is irrelevant with respect to termination. Three features are distinctive of this work: it allows for predicates to be used in several modes; it shows that block declarations, which are a very simple delay construct, are sufficient to ensure the desired properties; it takes the selection rule into account, assuming it to be as in most Prolog implementations. The methods can be used to verify existing programs and assist in writing new programs.
Create a lesson
Related papers
Compact Quantitative Equational Theories as Monad Restrictions
Matteo Mio, Colin Riba
Universal Construction and Exact Self-Reproduction in Ternary McCulloch-Pitts Networks
Charles C. Norton
Formally Certifying the Vertex Set of a Polyhedron Faster than Informal Enumeration
Xavier Allamigeon, Yazid Id-Sahra, Pierre-Yves Strub
Antichains for Concurrent Parameterized Games
Nathalie Bertrand, Patricia Bouyer, Gaëtan Staquet
An explicit shuffle construction of the homotopy span model of differential linear logic
Paul-André Melliès, Federico Olimpieri, Lionel Vaux Auclair
Modal Extensions of Generalised Nelson Logics
Igor Sedlár, Pietro Vigiani