Contracts and Specifications for Functional Logic Programming
The expressive power of functional logic languages supports high-level specifications as well as efficient implementations of problems in the same language. If specifications are executable, they can be used both as initial prototypical implementations and as contracts for checking the reliable execution of implementations expected to satisfy the specification. In this paper, the authors propose a concrete framework to support this general approach to coding. They discuss the notions of specifications and contracts for functional logic programming and present a tool that supports the development of declarative programs based on these notions.