Title
Derivation of logic programs by functional methods
Abstract
In this note we present a method for the calculational derivation of logic programs, employing techniques recently developed for the derivation of functional programs. It has been proposed (10) that the process of synthesizing logic programs should begin with a specification that is itself a (possibly inecient) logic program; subsequently transformations might be applied to obtain from this a logic program with more desirable properties. The diculty with this point of view is that some problem descriptions that one might like to consider are not trivially equivalent to logic programs. In these cases, important design decisions are involved in their reformulation; hence, this phase should be considered part of the programming process. Moreover, if the initial specification were required to be a logic program itself, it would in many cases be less than clear whether the specification really describes the problem we are interested in. Finally, such a requirement tends to load the dice in favour of solutions whose structure resembles that of the specification, making them much easier to derive than all other ones. Therefore, we take a dierent approach. The predicates occurring in logic programs may be interpreted as boolean functions. Starting with a specification of arbitrary form, we may derive, for these boolean functions, functional programs. This may be done by calculational techniques, such as the ones developed by Burstall and Darlington (4), Bird (2, section 5.5) (1), and Hoogerwoord (9). In the next section, we shall prove a theorem that states precisely when and how these functional programs may be transformed into logic programs. Several other methods for the synthesis of logic programs contain intermediate results that are, in eect, functional programs. In particular, the 'logic descriptions' of Deville (6) and the 'tracts' of Bundy et al. (3) may be so regarded.
Year
DOI
Venue
1991
10.1016/0020-0190(91)90006-4
Inf. Process. Lett.
Keywords
Field
DocType
logic programming,functional programming,functional method,program derivation.,logic program,boolean function,program derivation
Computational logic,Discrete mathematics,Horn clause,Programming language,Logic optimization,Multimodal logic,Logic programming,Predicate functor logic,Mathematics,Higher-order logic,Dynamic logic (modal logic)
Journal
Volume
Issue
ISSN
39
6
0020-0190
Citations 
PageRank 
References 
0
0.34
2
Authors
1
Name
Order
Citations
PageRank
A. Bijlsma1367.02