  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.
