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 条
  • [21] Proving termination of GHC programs
    Rao, MRKK
    Kapur, D
    Shyamasundar, RK
    NEW GENERATION COMPUTING, 1997, 15 (03) : 293 - 338
  • [22] Proving termination of GHC programs
    Krishna Rao M.R.K.
    Kapur D.
    Shyamasundar R.K.
    New Generation Computing, 1997, 15 (3) : 293 - 338
  • [23] ON PROVING THE TERMINATION OF ALGORITHMS BY MACHINE
    WALTHER, C
    ARTIFICIAL INTELLIGENCE, 1994, 71 (01) : 101 - 157
  • [24] Proving termination by bounded increase
    Giesl, Juergen
    Thiemann, Rene
    Swiderski, Stephan
    Schneider-Kamp, Peter
    AUTOMATED DEDUCTION - CADE-21, PROCEEDINGS, 2007, 4603 : 443 - +
  • [25] A unified ordering for termination proving
    Yamada, Akihisa
    Kusakari, Keiichirou
    Sakabe, Toshiki
    SCIENCE OF COMPUTER PROGRAMMING, 2015, 111 : 110 - 134
  • [26] Proving Termination by Policy Iteration
    Masse, Damien
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2012, 287 : 77 - 88
  • [27] Proving termination of ω rewriting systems
    Shigeta, Y
    Akama, K
    Koike, H
    Ishikawa, T
    INTERNATIONAL CONFERENCE ON COMPUTING AND INFORMATION TECHNOLOGIES : EXPLORING EMERGING TECHNOLOGIES, 2001, : 399 - 404
  • [28] Proving termination with (Boolean) satisfaction
    Codish, Michael
    LOGIC-BASED PROGRAM SYNTHESIS AND TRANSFORMATION, 2008, 4915 : 1 - 7
  • [29] Proving Non-Termination
    Gupta, Ashutosh K.
    Henzinger, Thomas A.
    Majumdar, Rupak
    Rybalchenko, Andrey
    Xu, Ru-Gang
    POPL'08: PROCEEDINGS OF THE 35TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2008, : 147 - 158
  • [30] Proving the equivalence of CLP programs
    Craciunescu, S
    LOGICS PROGRAMMING, PROCEEDINGS, 2002, 2401 : 287 - 301