Litcius/Paper detail

EqBench: A Dataset of Equivalent and Non-equivalent Program Pairs

Sahar Badihi, Yi Li, Julia Rubin

202111 citationsDOI

Abstract

Equivalence checking techniques help establish whether two versions of a program exhibit the same behavior. The majority of popular techniques for formally proving/refuting equivalence are evaluated on small and simplistic benchmarks, omitting "difficult" programming constructs, such as non-linear arithmetic, loops, floating-point arithmetic, and string and array manipulation. This hinders efficient evaluation of these techniques and the ability to establish their practical applicability in real scenarios. This paper addresses this gap by contributing EqBench - the largest and most comprehensive benchmark for equivalence checking analysis, which contains 147 equivalent and 125 non-equivalent cases, in both C and Java languages. We believe EqBench can facilitate a more realistic evaluation of equivalence checking techniques, assessing their individual strength and weaknesses. EqBench is publicly available at: https://osf.io/93s5b/.

Topics & Concepts

Equivalence (formal languages)Computer scienceFormal equivalence checkingProgramming languageJavaBenchmark (surveying)Model checkingProgram analysisString (physics)Theoretical computer scienceAlgorithmArithmeticDiscrete mathematicsMathematicsGeographyMathematical physicsGeodesySoftware Testing and Debugging TechniquesSoftware Engineering ResearchSoftware Reliability and Analysis Research