Equivalence Checking of Non-deterministic Operations

by Sergio Antoy, Michael Hanus

Proc. of the 14th International Symposium on Functional and Logic Programming (FLOPS 2018), Springer LNCS 10818, pp. 149-165, 2018
© Springer-Verlag

Checking the semantic equivalence of operations is an important task in software development. For instance, regression testing is a routine task when software systems are developed and improved, and software package managers require the equivalence of operations in different versions of a package within the same major version. In order to support a good automation of this process, a solid foundation is required. It has been shown that the notion of equivalence is not obvious when non-deterministic features are present. In this paper, we discuss a general notion of equivalence in functional logic programs and develop a practical method to check it. Our method can be integrated in a property-based testing tool which is used in a software package manager to check the semantic versioning of software packages.

Preprint (PDF) BibTeX-Entry Online