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
来源
关键词
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 条
  • [1] Proving Functional Equivalence of two AES Implementations using Bounded Model Checking
    Post, Hendrik
    Sinz, Carsten
    SECOND INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION, AND VALIDATION, PROCEEDINGS, 2009, : 31 - 40
  • [2] On proving termination by innermost termination
    Gramlich, B
    REWRITING TECHNIQUES AND APPLICATIONS, 1996, 1103 : 93 - 107
  • [3] Proving Non-Termination via Loop Acceleration
    Frohn, Florian
    Gies, Juergen
    2019 FORMAL METHODS IN COMPUTER AIDED DESIGN (FMCAD), 2019, : 221 - 230
  • [4] Proving Termination Through Conditional Termination
    Borralleras, Cristina
    Brockschmidt, Marc
    Larraz, Daniel
    Oliveras, Albert
    Rodriguez-Carbonell, Enric
    Rubio, Albert
    TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, TACAS 2017, PT I, 2017, 10205 : 99 - 117
  • [5] Proving Thread Termination
    Cook, Byron
    Podelski, Andreas
    Rybalchenko, Andrey
    PLDI'07: PROCEEDINGS OF THE 2007 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2007, : 320 - 330
  • [6] Proving Program Termination
    Cook, Byron
    Podelski, Andreas
    Rybalchenko, Andrey
    COMMUNICATIONS OF THE ACM, 2011, 54 (05) : 88 - 98
  • [7] Proving termination with adornments
    Serebrenik, A
    De Schreye, D
    LOGIC BASED PROGRAM SYNTHESIS AND TRNSFORMATION, 2003, 3018 : 108 - 109
  • [8] Proving Functional Program Equivalence via Directed Lemma Synthesis
    Sun, Yican
    Ji, Ruyi
    Fang, Jian
    Jiang, Xuanlin
    Chen, Mingshuai
    Xiong, Yingfei
    FORMAL METHODS, PT I, FM 2024, 2025, 14933 : 538 - 557
  • [9] Proving thread termination
    Cook, Byron
    Podelski, Andreas
    Rybalchenko, Andrey
    ACM SIGPLAN NOTICES, 2007, 42 (06) : 320 - 330
  • [10] Proving mutual termination
    Elenbogen, Dima
    Katz, Shmuel
    Strichman, Ofer
    FORMAL METHODS IN SYSTEM DESIGN, 2015, 47 (02) : 204 - 229