Proving Termination of Programs with Bitvector Arithmetic by Symbolic Execution

  • Jera Hensel
  • Jürgen Giesl
  • Florian Frohn
  • Thomas Ströder
Conference paper

DOI: 10.1007/978-3-319-41591-8_16

Part of the Lecture Notes in Computer Science book series (LNCS, volume 9763)
Cite this paper as:
Hensel J., Giesl J., Frohn F., Ströder T. (2016) Proving Termination of Programs with Bitvector Arithmetic by Symbolic Execution. In: De Nicola R., Kühn E. (eds) Software Engineering and Formal Methods. SEFM 2016. Lecture Notes in Computer Science, vol 9763. Springer, Cham

Abstract

In earlier work, we developed an approach for automated termination analysis of C programs with explicit pointer arithmetic, which is based on symbolic execution. However, similar to many other termination techniques, this approach assumed the program variables to range over mathematical integers instead of bitvectors. This eases mathematical reasoning but is unsound in general. In this paper, we extend our approach in order to handle fixed-width bitvector integers. Thus, we present the first technique for termination analysis of C programs that covers both byte-accurate pointer arithmetic and bit-precise modeling of integers. We implemented our approach in the automated termination prover AProVE and evaluate its power by extensive experiments.

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Jera Hensel
    • 1
  • Jürgen Giesl
    • 1
  • Florian Frohn
    • 1
  • Thomas Ströder
    • 1
  1. 1.LuFG Informatik 2RWTH Aachen UniversityAachenGermany

Personalised recommendations