salle A. Turing CE4
2 March 2016 - 14h00
Towards finding non-terminating behaviours in programs
by Alexey Bakhirkin from University of Leicester
Abstract: We present our take on a problem of finding a recurrent set of an imperative program. A recurrent set is a set of states that, once reached, cannot or may not be escaped by an execution (there exist multiple definitions). A straightforward application of a recurrent set is to show the existence of non-terminating executions in the program, for that it needs to be complemented by a proof of reachablility from some initial state. And there are also other analyses that have finding a recurrent set as a sub-problem. We developed two algorithms for finding recurrent sets in programs. One is based on symbolic execution and is suitable for non-numeric (e.g., heap-manipulating) programs. Another is based on backwards analysis via abstract interpretation and is more geared towards numeric programs.