ARDiff: scaling program equivalence checking via iterative abstraction and refinement of common code
Sahar Badihi, Faridah Akinotcho, Yi Li, Julia Rubin
摘要
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 relies on symbolic execution -a static analysis approach that reasons about program behaviors in terms of symbolic input variables. Yet, symbolic execution is difficult to scale in practice due to complex programming constructs, such as loops and non-linear arithmetic.
This paper proposes an approach, named ARDiff, for improving the scalability of symbolic-execution-based equivalence checking techniques when comparing syntactically-similar versions of a program, e.g., for verifying the correctness of code upgrades and refactoring. Our approach relies on a set of novel heuristics to determine which parts of the versions' common code can be effectively pruned during the analysis, reducing the analysis complexity without sacrificing its effectiveness. Furthermore, we devise a new equivalence checking benchmark, extending existing benchmarks with a set of real-life methods containing complex math functions and loops. We evaluate the effectiveness and efficiency of ARDiff on this benchmark and show that it outperforms existing method-level equivalence checking techniques by solving 86% of all equivalent and 55% of non-equivalent cases, compared with 47% to 69% for equivalent and 38% to 52% for non-equivalent cases in related work.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper9
- An Algebra of Alignment for Relational VerificationTimos Antonopoulos, Eric Koskinen, Ton Chanh Le, Ramana Nagasamudram 等POPL 2023 · 被引用 17 次
- Proving and Disproving Equivalence of Functional Programming AssignmentsDragana Milovancevic, Viktor KuncakPLDI 2023 · 被引用 10 次
- ParDiff: Practical Static Differential Analysis of Network Protocol ParsersMingwei Zheng, Qingkai Shi, Xuwei Liu, Xiangzhe Xu 等OOPSLA 2024 · 被引用 9 次
- Verifying Data Constraint Equivalence in FinTech SystemsChengpeng Wang, Gang Fan, Peisen Yao, Fuxiong Pan 等ICSE 2023 · 被引用 4 次
- Synthesizing Efficient Memoization AlgorithmsYican Sun, Xuanyu Peng, Yingfei XiongOOPSLA 2023 · 被引用 2 次
相关 Paper
- Spatial and Temporal Decomposition for Faster Translation ValidationBenjamin Mikek, Chathur Bommineni, Qirun Zhang, Thomas RepsOOPSLA 2026
- Compatible Branch Coverage Driven Symbolic Execution for Efficient Bug FindingQiuping Yi, Yifan Yu, Guowei YangPLDI 2024 · 被引用 10 次
- Pending Constraints in Symbolic Execution for Better Exploration and SeedingTimotej Kapus, Frank Busse, Cristian CadarASE 2020 · 被引用 8 次
- NEURODIFF: Scalable Differential Verification of Neural Networks using Fine-Grained ApproximationBrandon Paulsen, Jingbo Wang, Jiawei Wang, Chao WangASE 2020 · 被引用 26 次
- Checking equivalence in a non-strict languageJohn C. Kolesar, Ruzica Piskac, William T. HallahanOOPSLA 2022 · 被引用 3 次
