Equivalence Checking of Non-deterministic Operations
Sergio Antoy, Michael Hanus

TL;DR
This paper introduces a practical method for checking the semantic equivalence of non-deterministic operations in software, aiding regression testing and version validation.
Contribution
It develops a general notion of equivalence for non-deterministic functional logic programs and integrates it into a property-based testing tool.
Findings
Method effectively checks equivalence in non-deterministic contexts
Integrated tool used in software package manager for versioning
Supports automation of regression testing processes
Abstract
Checking the semantic equivalence of operations is an important task in software development. For instance, regression testing is a routine task performed 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 number version. A solid foundation is required to support a good automation of this process. 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 is integrated in a property-based testing tool which is used in a software package manager to check the semantic versioning of software packages.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Software Testing and Debugging Techniques · Logic, programming, and type systems
