Unrestricted Termination and Non-termination Arguments for Bit-Vector Programs

被引:15
|
作者
David, Cristina [1 ]
Kroening, Daniel [1 ]
Lewis, Matt [1 ]
机构
[1] Univ Oxford, Oxford OX1 2JD, England
来源
PROGRAMMING LANGUAGES AND SYSTEMS | 2015年 / 9032卷
基金
英国工程与自然科学研究理事会; 欧洲研究理事会;
关键词
Termination; Non-Termination; Lexicographic Ranking Functions; Bit-vector Ranking Functions; Floating-Point Ranking Functions; LINEAR RANKING; PROOFS;
D O I
10.1007/978-3-662-46669-8_8
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Proving program termination is typically done by finding a well-founded ranking function for the program states. Existing termination provers typically find ranking functions using either linear algebra or templates. As such they are often restricted to finding linear ranking functions over mathematical integers. This class of functions is insufficient for proving termination of many terminating programs, and furthermore a termination argument for a program operating on mathematical integers does not always lead to a termination argument for the same program operating on fixed-width machine integers. We propose a termination analysis able to generate nonlinear, lexicographic ranking functions and nonlinear recurrence sets that are correct for fixed-width machine arithmetic and floating-point arithmetic. Our technique is based on a reduction from program termination to second-order satisfaction. We provide formulations for termination and non-termination in a fragment of second-order logic with restricted quantification which is decidable over finite domains [1]. The resulting technique is a sound and complete analysis for the termination of finite-state programs with fixed-width integers and IEEE floating-point arithmetic.
引用
收藏
页码:183 / 204
页数:22
相关论文
共 18 条
  • [1] Formalizing non-termination of recursive programs
    Kahle, R
    Studer, T
    JOURNAL OF LOGIC AND ALGEBRAIC PROGRAMMING, 2001, 49 (1-2): : 1 - 14
  • [2] 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
  • [3] Proving non-termination
    Gupta, Ashutosh K.
    Henzinger, Thomas A.
    Majumdar, Rupak
    Rybalchenko, Andrey
    Xu, Ru-Gang
    ACM SIGPLAN NOTICES, 2008, 43 (01) : 147 - 158
  • [4] 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
  • [5] A non-termination criterion for binary constraint logic programs
    Payet, Etienne
    Mesnard, Fred
    THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2009, 9 : 145 - 164
  • [6] Non-termination Proving at Scale
    Raad, Azalea
    Vanegue, Julien
    O'Hearn, Peter
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2024, 8 (OOPSLA):
  • [7] FuzzNT : Checking for Program Non-termination
    Karmarkar, Hrishikesh
    Medicherla, Raveendra Kumar
    Metta, Ravindra
    Yeduru, Prasanth
    2022 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2022), 2022, : 409 - 413
  • [8] A second-order formulation of non-termination
    Mesnard, Fred
    Payet, Etienne
    INFORMATION PROCESSING LETTERS, 2015, 115 (11) : 882 - 885
  • [9] Experiments with Non-Termination Analysis for Java']Java Bytecode
    Payet, Etienne
    Spoto, Fausto
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2009, 253 (05) : 83 - 96
  • [10] Non-termination in Term Rewriting and Logic Programming
    Étienne Payet
    Journal of Automated Reasoning, 2024, 68