Bounded underapproximations

P Ganty, R Majumdar, B Monmege - Formal Methods in System Design, 2012 - Springer
Formal Methods in System Design, 2012Springer
We show a new and constructive proof of the following language-theoretic result: for every
context-free language L, there is a bounded context-free language L′⊆ L which has the
same Parikh (commutative) image as L. Bounded languages, introduced by Ginsburg and
Spanier, are subsets of regular languages of the form w_1^*w_2^*⋯w_m^* for some w 1,…,
wm∈ Σ∗. In particular bounded context-free languages have nice structural and decidability
properties. Our proof proceeds in two parts. First, we give a new construction that shows that …
Abstract
We show a new and constructive proof of the following language-theoretic result: for every context-free language L, there is a bounded context-free language L′⊆L which has the same Parikh (commutative) image as L. Bounded languages, introduced by Ginsburg and Spanier, are subsets of regular languages of the form for some w 1,…,w m Σ . In particular bounded context-free languages have nice structural and decidability properties. Our proof proceeds in two parts. First, we give a new construction that shows that each context free language L has a subset L N that has the same Parikh image as L and that can be represented as a sequence of substitutions on a linear language. Second, we inductively construct a Parikh-equivalent bounded context-free subset of L N .
We show two applications of this result in model checking: to underapproximate the reachable state space of multithreaded procedural programs and to underapproximate the reachable state space of recursive counter programs. The bounded language constructed above provides a decidable underapproximation for the original problems. By iterating the construction, we get a semi-algorithm for the original problems that constructs a sequence of underapproximations such that no two underapproximations of the sequence can be compared. This provides a progress guarantee: every word wL is in some underapproximation of the sequence, and hence, a program bug is guaranteed to be found. In particular, we show that verification with bounded languages generalizes context-bounded reachability for multithreaded programs.
Springer