PASDA: A partition-based semantic differencing approach with best effort classification of undecided cases.

Johann Glock, Josef Pichler, Martin Pinzger

Research output: Contribution to journalArticlepeer-review

Abstract

Equivalence checking is used to verify whether two programs produce equivalent outputs when given equivalent inputs. Research in this field mainly focused on improving equivalence checking accuracy and runtime performance. However, for program pairs that cannot be proven to be either equivalent or non-equivalent, existing approaches only report a classification result of unknown, which provides no information regarding the programs’ non-/equivalence. In this paper, we introduce PASDA, our partition-based semantic differencing approach with best effort classification of undecided cases. While PASDA aims to formally prove non-/equivalence of analyzed program pairs using a variant of differential symbolic execution, its main novelty lies in its handling of cases for which no formal non-/equivalence proof can be found. For such cases, PASDA provides a best effort equivalence classification based on a set of classification heuristics. We evaluated PASDA with an existing benchmark consisting of 141 non-/equivalent program pairs. PASDA correctly classified 61%–74% of these cases at timeouts from 10 s to 3600 s. Thus, PASDA achieved equivalence checking accuracies that are 3%–7% higher than the best results achieved by three existing tools. Furthermore, PASDA's best effort classifications were correct for 70%–75% of equivalent and 55%–85% of non-equivalent cases across the different timeouts.

Original languageEnglish
Article number112037
Pages (from-to)112037
JournalJ. Syst. Softw.
Volume213
DOIs
Publication statusPublished - Jul 2024

Keywords

  • Equivalence checking
  • Program analysis
  • Symbolic execution

Fingerprint

Dive into the research topics of 'PASDA: A partition-based semantic differencing approach with best effort classification of undecided cases.'. Together they form a unique fingerprint.

Cite this