Proving non-termination

被引:19
|
作者
Gupta, Ashutosh K.
Henzinger, Thomas A. [1 ]
Majumdar, Rupak [2 ]
Rybalchenko, Andrey
Xu, Ru-Gang [2 ]
机构
[1] Ecole Polytech Fed Lausanne, Lausanne, Switzerland
[2] UC Los Angeles, Los Angeles, CA USA
关键词
reliability; verification; program verification; model checking; testing; nontermination; recurrent sets;
D O I
10.1145/1328897.1328459
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The search for proof and the search for counterexamples (bugs) are complementary activities that need to be pursued concurrently in order to maximize the practical success rate of verification tools. While this is well-understood in safety verification, the current focus of liveness verification has been almost exclusively on the search for termination proofs. A counterexample to termination is an infinite program execution. In this paper, we propose a method to search for such counterexamples. The search proceeds in two phases. We first dynamically enumerate lasso-shaped candidate paths for counterexamples, and then statically prove their feasibility. We illustrate the utility of our nontermination prover, called TNT, on several nontrivial examples, some of which require bit-level reasoning about integer representations.
引用
收藏
页码:147 / 158
页数:12
相关论文
共 50 条
  • [1] 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
  • [2] Non-termination Proving at Scale
    Raad, Azalea
    Vanegue, Julien
    O'Hearn, Peter
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2024, 8 (OOPSLA):
  • [3] Proving Non-termination by Program Reversal
    Chatterjee, Krishnendu
    Goharshady, Ehsan Kafshdar
    Novotny, Petr
    Zikelic, Dorde
    PROCEEDINGS OF THE 42ND ACM SIGPLAN INTERNATIONAL CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '21), 2021, : 1033 - 1048
  • [4] Proving Non-Termination via Loop Acceleration
    Frohn, Florian
    Gies, Juergen
    2019 FORMAL METHODS IN COMPUTER AIDED DESIGN (FMCAD), 2019, : 221 - 230
  • [5] Proving Non-termination Using Max-SMT
    Larraz, Daniel
    Nimkar, Kaustubh
    Oliveras, Albert
    Rodriguez-Carbonell, Enric
    Rubio, Albert
    COMPUTER AIDED VERIFICATION, CAV 2014, 2014, 8559 : 779 - 796
  • [6] Proving Non-Termination and Lower Runtime Bounds with LoAT (System Description)
    Frohn, Florian
    Giesl, Juergen
    AUTOMATED REASONING, IJCAR 2022, 2022, 13385 : 712 - 722
  • [7] Proving Non-Termination by Acceleration Driven Clause Learning (Short Paper)
    Frohn, Florian
    Giesl, Juergen
    AUTOMATED DEDUCTION, CADE 29, 2023, 14132 : 220 - 233
  • [8] Termination and Non-termination Specification Inference
    Le, Ton Chanh
    Qin, Shengchao
    Chin, Wei-Ngan
    ACM SIGPLAN NOTICES, 2015, 50 (06) : 489 - 498
  • [9] Non-termination in idempotent semirings
    Hoefner, Peter
    Struth, Georg
    RELATIONS AND KLEENE ALGEBRA IN COMPUTER SCIENCE, 2008, 4988 : 206 - 220
  • [10] DynamiTe: Dynamic Termination and Non-termination Proofs
    Le, Ton Chanh
    Antonopoulos, Timos
    Fathololumi, Parisa
    Koskinen, Eric
    Nguyen, ThanhVu
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2020, 4