Context-sensitive synchronization-sensitive analysis is undecidable
ACM Transactions on Programming Languages and Systems (TOPLAS)
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
A generic approach to the static analysis of concurrent programs with procedures
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 8th Colloquium on Automata, Languages and Programming
How to Compose Presburger-Accelerations: Applications to Broadcast Protocols
FST TCS '02 Proceedings of the 22nd Conference Kanpur on Foundations of Software Technology and Theoretical Computer Science
The Mathematical Theory of Context-Free Languages
The Mathematical Theory of Context-Free Languages
Newton's Method for ω-Continuous Semirings
ICALP '08 Proceedings of the 35th international colloquium on Automata, Languages and Programming, Part II
Symbolic Context-Bounded Analysis of Multithreaded Java Programs
SPIN '08 Proceedings of the 15th international workshop on Model Checking Software
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
Journal of the ACM (JACM)
Complexity of pattern-based verification for multithreaded programs
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parikh's theorem: A simple and direct automaton construction
Information Processing Letters
Model checking recursive programs with numeric data types
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Flat acceleration in symbolic model checking
ATVA'05 Proceedings of the Third international conference on Automated Technology for Verification and Analysis
Programs with lists are counter automata
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Context-Bounded model checking of concurrent software
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Weakly-Synchronized ground tree rewriting
MFCS'12 Proceedings of the 37th international conference on Mathematical Foundations of Computer Science
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
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}^{*}\cdots w_{m}^{*}$ 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 w驴L 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.