Proving Termination via Measure Transfer in Equivalence Checking

被引:0
|
作者
Milovanovic, Dragana [1 ]
Fuhs, Carsten [2 ]
Bucev, Mario [1 ]
Kuncak, Viktor [1 ]
机构
[1] Ecole Polytech Fed Lausanne, Stn 14, CH-1015 Lausanne, Switzerland
[2] Birkbeck Univ London, London, England
来源
INTEGRATED FORMAL METHODS, IFM 2024 | 2025年 / 15234卷
关键词
Equivalence checking; Termination analysis; Termination measures; VERIFICATION;
D O I
10.1007/978-3-031-76554-4_5
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Program verification can benefit from proofs with varied induction schemas. A natural class of induction schemas, functional induction, consists of those derived from definitions of functions. For such inductive proofs to be sound, it is necessary to establish that the functions terminate, which is a challenging problem on its own. In this paper, we consider termination in the context of equivalence checking of a candidate program against a provably terminating reference program annotated with termination measures. Using equivalence checking, our approach automatically matches function calls in the reference and candidate programs and proves termination by transferring measures from a measure-annotated program to one without annotations. We evaluate this approach on existing and newly written termination benchmarks, as well as on exercises in programming courses. Our evaluation corpus comprises around 10K lines of code. We show empirically that the termination measures of reference programs often successfully prove the termination of equivalent candidate programs, ensuring the soundness of inductive reasoning in a fully automated manner.
引用
收藏
页码:75 / 84
页数:10
相关论文
共 50 条
  • [21] On Neural Network Equivalence Checking Using SMT Solvers
    Eleftheriadis, Charis
    Kekatos, Nikolaos
    Katsaros, Panagiotis
    Tripakis, Stavros
    FORMAL MODELING AND ANALYSIS OF TIMED SYSTEMS, FORMATS 2022, 2022, 13465 : 237 - 257
  • [22] Proving and Disproving Equivalence of Functional Programming Assignments
    Milovancevic, Dragana
    Kuncak, Viktor
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2023, 7 (PLDI): : 928 - 951
  • [23] Regression verification: proving the equivalence of similar programs
    Godlin, Benny
    Strichman, Ofer
    SOFTWARE TESTING VERIFICATION & RELIABILITY, 2013, 23 (03) : 241 - 258
  • [24] 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
  • [25] IntEQ: Recognizing Benign Integer Overflows via Equivalence Checking Across Multiple Precisions
    Sun, Hao
    Zhang, Xiangyu
    Zheng, Yunhui
    Zeng, Qingkai
    2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2016, : 1051 - 1062
  • [26] A Hybrid Method for Equivalence Checking Between System Level and RTL
    Hu, Jian
    Hu, Minhui
    Zhao, Kuang
    Kang, Yun
    Yang, Haitao
    Cheng, Jie
    JOURNAL OF CIRCUITS SYSTEMS AND COMPUTERS, 2022, 31 (09)
  • [27] Verifying Parallel Code After Refactoring Using Equivalence Checking
    Abadi, Moria
    Keidar-Barner, Sharon
    Pidan, Dmitry
    Veksler, Tatyana
    INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2019, 47 (01) : 59 - 73
  • [28] Efficient equivalence checking with partitions and hierarchical cut-points
    Anastasakis, D
    McIlwain, L
    Pilarski, S
    41ST DESIGN AUTOMATION CONFERENCE, PROCEEDINGS 2004, 2004, : 539 - 542
  • [29] PEQCHECK: Localized and Context-aware Checking of Functional Equivalence
    Jakobs, Marie-Christine
    2021 IEEE/ACM 9TH INTERNATIONAL CONFERENCE ON FORMAL METHODS IN SOFTWARE ENGINEERING (FORMALISE 2021), 2021, : 130 - 140
  • [30] Equivalence Checking for Behaviorally Synthesized Pipelines
    Hao, Kecheng
    Ray, Sandip
    Xie, Fei
    2012 49TH ACM/EDAC/IEEE DESIGN AUTOMATION CONFERENCE (DAC), 2012, : 344 - 349