Semantic Program Alignment for Equivalence Checking

被引:52
|
作者
Churchill, Berkeley [1 ]
Padon, Oded [1 ]
Sharma, Rahul [2 ]
Aiken, Alex [1 ]
机构
[1] Stanford Univ, Stanford, CA 94305 USA
[2] Microsoft Res, Bengaluru, India
关键词
verification; equivalence checking;
D O I
10.1145/3314221.3314596
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We introduce a robust semantics-driven technique for program equivalence checking. Given two functions we find a trace alignment over a set of concrete executions of both programs and construct a product program particularly amenable to checking equivalence. We demonstrate that our algorithm is applicable to challenging equivalence problems beyond the scope of existing techniques. For example, we verify the correctness of the hand-optimized vector implementation of strlen that ships as part of the GNU C Library, as well as the correctness of vectorization optimizations for 56 benchmarks derived from the Test Suite for Vectorizing Compilers.
引用
收藏
页码:1027 / 1040
页数:14
相关论文
共 50 条
  • [21] ARDIFF: Scaling Program Equivalence Checking via Iterative Abstraction and Refinement of Common Code
    Badihi, Sahar
    Akinotcho, Faridah
    Li, Yi
    Rubin, Julia
    PROCEEDINGS OF THE 28TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '20), 2020, : 13 - 24
  • [22] Checking equivalence for partial implementations
    Scholl, C
    Becker, B
    38TH DESIGN AUTOMATION CONFERENCE PROCEEDINGS 2001, 2001, : 238 - 243
  • [23] Equivalence Checking of Reversible Circuits
    Wille, Robert
    Grosse, Daniel
    Miller, D. Michael
    Drechsler, Rolf
    JOURNAL OF MULTIPLE-VALUED LOGIC AND SOFT COMPUTING, 2012, 19 (04) : 361 - 378
  • [24] Value of sequential equivalence checking
    Kumar, R.
    Kunz, W.
    Electronic Engineering (London), 1999, 71 (869):
  • [25] Equivalence checking for digital circuits
    Falkowski, Bogdan J.
    IEEE Potentials, 2004, 23 (02): : 21 - 23
  • [26] Checking Equivalence for Reo Networks
    Blechmann, Tobias
    Baier, Christel
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2008, 215 : 209 - 226
  • [27] Heuristic search for equivalence checking
    Nicoletta De Francesco
    Giuseppe Lettieri
    Antonella Santone
    Gigliola Vaglini
    Software & Systems Modeling, 2016, 15 : 513 - 530
  • [28] Equivalence Checking By Logic Relaxation
    Goldberg, Eugene
    PROCEEDINGS OF THE 2016 16TH CONFERENCE ON FORMAL METHODS IN COMPUTER-AIDED DESIGN (FMCAD 2016), 2016, : 49 - 56
  • [29] Client -Specific Equivalence Checking
    Mora, Federico
    Li, Yi
    Rubin, Julia
    Chechik, Marsha
    PROCEEDINGS OF THE 2018 33RD IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMTED SOFTWARE ENGINEERING (ASE' 18), 2018, : 441 - 451
  • [30] Parallel Combinational Equivalence Checking
    Possani, Vinicius N.
    Mishchenko, Alan
    Ribas, Renato P.
    Reis, Andre I.
    IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, 2020, 39 (10) : 3081 - 3092