Interprocedural Reachability for Flat Integer Programs
We study programs with integer data, procedure calls and arbitrary call graphs. We show that, whenever the guards and updates are given by octagonal relations, the reachability problem along control flow paths within some language \(w_1^* \ldots w_d^*\) over program statements is decidable in Nexptime. To achieve this upper bound, we combine a program transformation into the same class of programs but without procedures, with an Np-completeness result for the reachability problem of procedure-less programs. Besides the program, the expression \(w_1^* \ldots w_d^*\) is also mapped onto an expression of a similar form but this time over the transformed program statements. Several arguments involving context-free grammars and their generative process enable us to give tight bounds on the size of the resulting expression. The currently existing gap between Np-hard and Nexptime can be closed to Np-complete when a certain parameter of the analysis is assumed to be constant.
- 3.Atig, M.F., Ganty, P.: Approximating petri net reachability along context-free traces. In: FSTTCS 2011, vol. 13. LIPIcs, pp. 152–163. Schloss Dagstuhl (2011)Google Scholar
- 9.Esparza, J., Ganty, P.: Complexity of pattern-based verification for multithreaded programs. In: POPL 2011, pp. 499–510. ACM Press (2011)Google Scholar
- 10.Ganty, P., Iosif, R.: Interprocedural reachability for flat integer programs. CoRR, abs/1405.3069v3 (2015)Google Scholar
- 16.Lazic, R.: The reachability problem for vector addition systems with a stack is not elementary. In: RP 2012 (2012)Google Scholar
- 17.Lazic, R., Schmitz, S.: Non-elementary complexities for branching VASS, MELL, and extensions. In: CSL-LICS 2014. ACM (2014)Google Scholar