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
来源
基金
英国工程与自然科学研究理事会; 欧洲研究理事会;
关键词
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
相关论文
共 50 条
  • [1] Witness to non-termination of linear programs
    Li, Yi
    THEORETICAL COMPUTER SCIENCE, 2017, 681 : 75 - 100
  • [2] Non-termination checking for imperative programs
    Velroyen, Helga
    Rummer, Philipp
    TESTS AND PROOFS, 2008, 4966 : 154 - +
  • [3] Formalizing non-termination of recursive programs
    Kahle, R
    Studer, T
    JOURNAL OF LOGIC AND ALGEBRAIC PROGRAMMING, 2001, 49 (1-2): : 1 - 14
  • [4] Termination and Non-termination Specification Inference
    Le, Ton Chanh
    Qin, Shengchao
    Chin, Wei-Ngan
    ACM SIGPLAN NOTICES, 2015, 50 (06) : 489 - 498
  • [5] Non-termination inference for constraint logic programs
    Payet, E
    Mesnard, F
    STATIC ANALYSIS, PROCEEDINGS, 2004, 3148 : 377 - +
  • [6] Non-termination Analysis of Logic Programs Using Types
    Voets, Dean
    De Schreye, Danny
    LOGIC-BASED PROGRAM SYNTHESIS AND TRANSFORMATION, 2011, 6564 : 133 - 148
  • [7] A practical analysis of non-termination in large logic programs
    Liang, Senlin
    Kifer, Michael
    THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2013, 13 : 705 - 719
  • [8] Proving non-termination
    Gupta, Ashutosh K.
    Henzinger, Thomas A.
    Majumdar, Rupak
    Rybalchenko, Andrey
    Xu, Ru-Gang
    ACM SIGPLAN NOTICES, 2008, 43 (01) : 147 - 158
  • [9] Non-Termination Analysis of Linear Loop Programs with Conditionals
    Bi, Zhongqin
    Shan, Meijing
    Wu, Bin
    PROCEEDINGS OF THE 2008 ADVANCED SOFTWARE ENGINEERING & ITS APPLICATIONS, 2008, : 159 - 164
  • [10] 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