Tree automata, Mu-Calculus and determinacy
SFCS '91 Proceedings of the 32nd annual symposium on Foundations of computer science
Precise interprocedural dataflow analysis via graph reachability
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Data flow analysis is model checking of abstract interpretations
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Model checking the full modal mu-calculus for infinite sequential processes
Theoretical Computer Science
Modalities for model checking (extended abstract): branching time strikes back
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Model checking
An automata-theoretic approach to branching-time model checking
Journal of the ACM (JACM)
An axiomatic basis for computer programming
Communications of the ACM
Pushdown processes: games and model-checking
Information and Computation - Special issue on FLOC '96
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
LPAR '02 Proceedings of the 9th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning
Data Flow Analysis as Model Checking
TACS '91 Proceedings of the International Conference on Theoretical Aspects of Computer Software
Bebop: A Symbolic Model Checker for Boolean Programs
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
CAV '01 Proceedings of the 13th International Conference on Computer Aided Verification
Model checking LTL with regular valuations for pushdown systems
Information and Computation - TACS 2001
STOC '04 Proceedings of the thirty-sixth annual ACM symposium on Theory of computing
Analysis of recursive state machines
ACM Transactions on Programming Languages and Systems (TOPLAS)
A fixpoint calculus for local and global program flows
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Adding nesting structure to words
Journal of the ACM (JACM)
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Adding nesting structure to words
DLT'06 Proceedings of the 10th international conference on Developments in Language Theory
Hi-index | 0.00 |
While model checking of pushdown systems is by now an established technique in software verification, temporal logics and automata traditionally used in this area are unattractive on two counts. First, logics and automata traditionally used in model checking cannot express requirements such as pre/post-conditions that are basic to analysis of software. Second, unlike in the finite-state world, where the μ-calculus has a symbolic model-checking algorithm and serves as an “assembly language” to which temporal logics can be compiled, there is no common formalism—either fixpoint-based or automata-theoretic—to model-check requirements on pushdown models. In this article, we introduce a new theory of temporal logics and automata that addresses the above issues, and provides a unified foundation for the verification of pushdown systems. The key idea here is to view a program as a generator of structures known as nested trees as opposed to trees. A fixpoint logic (called NT-μ) and a class of automata (called nested tree automata) interpreted on languages of these structures are now defined, and branching-time model-checking is phrased as language inclusion and membership problems for these languages. We show that NT-μ and nested tree automata allow the specification of a new frontier of requirements usable in software verification. At the same time, their model checking problem has the same worst-case complexity as their traditional analogs, and can be solved symbolically using a fixpoint computation that generalizes, and includes as a special case, “summary”-based computations traditionally used in interprocedural program analysis. We also show that our logics and automata define a robust class of languages—in particular, just as the μ-calculus is equivalent to alternating parity automata on trees, NT-μ is equivalent to alternating parity automata on nested trees.