Hostname: page-component-848d4c4894-x5gtn Total loading time: 0 Render date: 2024-05-24T11:46:11.899Z Has data issue: false hasContentIssue false

Verifying termination and error-freedom of logic programs with block declarations

Published online by Cambridge University Press:  25 June 2001

JAN-GEORG SMAUS
Affiliation:
CWI, Kruislaan 413, 1098 SJ Amsterdam, The Netherlands (e-mail: jan.smaus@cwi.nl)
PATRICIA M. HILL
Affiliation:
School of Computer Studies, University of Leeds, Leeds LS2 9JT, UK (e-mail: hill@scs.leeds.ac.uk)
ANDY KING
Affiliation:
University of Kent at Canterbury, Canterbury, CT2 7NF, UK (e-mail: a.m.king@ukc.ac.uk)

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.

Type
Research Article
Copyright
© 2001 Cambridge University Press

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)