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, we propose a concrete framework to support this general approach to coding. We 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.
Equivalence of operations was defined for functional logic programs in REF .
Contracts and Specifications for Functional Logic Programming
PADL
Computer Science