Memory-efficient algorithms for the verification of temporal properties
Formal Methods in System Design - Special issue on computer-aided verification: general methods
Precise interprocedural dataflow analysis via graph reachability
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Partial online cycle elimination in inclusion constraint graphs
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Model checking the full modal mu-calculus for infinite sequential processes
Theoretical Computer Science
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
Path-based depth-first search for strong and biconnected components
Information Processing Letters
Protocol Verification as a Hardware Design Aid
ICCD '92 Proceedings of the 1991 IEEE International Conference on Computer Design on VLSI in Computer & Processors
Bebop: A Symbolic Model Checker for Boolean Programs
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
Model Checking of Unrestricted Hierarchical State Machines
ICALP '01 Proceedings of the 28th International Colloquium on Automata, Languages and Programming,
Reachability Analysis of Pushdown Automata: Application to Model-Checking
CONCUR '97 Proceedings of the 8th International Conference on Concurrency Theory
Efficient Algorithms for Model Checking Pushdown Systems
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
CAV '01 Proceedings of the 13th International Conference on Computer Aided Verification
Analysis of Recursive State Machines
CAV '01 Proceedings of the 13th International Conference on Computer Aided Verification
Temporal-Safety Proofs for Systems Code
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
A BDD-Based Model Checker for Recursive Programs
CAV '01 Proceedings of the 13th International Conference on Computer Aided Verification
Online Cycle Detection and Difference Propagation: Applications to Pointer Analysis
Software Quality Control
Checking system rules using system-specific, programmer-written compiler extensions
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
FOCS '05 Proceedings of the 46th Annual IEEE Symposium on Foundations of Computer Science
Model Checking Recursive Programs with Exact Predicate Abstraction
ATVA '08 Proceedings of the 6th International Symposium on Automated Technology for Verification and Analysis
An Abort-Aware Model of Transactional Programming
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
Methods for Quantitative Analysis of Probabilistic Pushdown Automata
Electronic Notes in Theoretical Computer Science (ENTCS)
Improved model checking of hierarchical systems
Information and Computation
Improved model checking of hierarchical systems
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Ranking abstraction of recursive programs
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
HECTOR: an equivalence checker for a higher-order fragment of ML
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Synthesis of hierarchical systems
Science of Computer Programming
Analyzing probabilistic pushdown automata
Formal Methods in System Design
Hi-index | 0.00 |
Searching the state space of a system using enumerative and on-the-fly depth-first traversal is an established technique for model checking finite-state systems. In this paper, we propose algorithms for on-the-fly exploration of recursive state machines, or equivalently pushdown systems, which are suited for modeling the behavior of procedural programs. We present algorithms for reachability (is a bad state reachable?) as well as for fair cycle detection (is there a reachable cycle with progress?). We also report on an implementation of these algorithms to check safety and liveness properties of recursive boolean programs, and its performance on existing benchmarks.