“Sometimes” and “not never” revisited: on branching versus linear time temporal logic
Journal of the ACM (JACM) - The MIT Press scientific computation series
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Constant propagation with conditional branches
ACM Transactions on Programming Languages and Systems (TOPLAS)
Computing behavioural relations, logically
Proceedings of the 18th international colloquium on Automata, languages and programming
CTL and ECTL as fragments of the modal &mgr;-calculus
Theoretical Computer Science - Selected papers of the 17th Colloquium on Trees in Algebra and Programming (CAAP '92) and of the European Symposium on Programming (ESOP), Rennes, France, Feb. 1992
Fast and accurate flow-insensitive points-to analysis
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
The Complexity of Tree Automata and Logics of Programs
SIAM Journal on Computing
Communications of the ACM
Simple on-the-fly automatic verification of linear temporal logic
Proceedings of the Fifteenth IFIP WG6.1 International Symposium on Protocol Specification, Testing and Verification XV
Reasoning about The Past with Two-Way Automata
ICALP '98 Proceedings of the 25th International Colloquium on Automata, Languages and Programming
Model Checking for Context-Free Processes
CONCUR '92 Proceedings of the Third International Conference on Concurrency Theory
State Space Reductions for Alternating Büchi Automata
FST TCS '02 Proceedings of the 22nd Conference Kanpur on Foundations of Software Technology and Theoretical Computer Science
Efficient Büchi Automata from LTL Formulae
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Faster Model Checking for the Modal Mu-Calculus
CAV '92 Proceedings of the Fourth International Workshop on Computer Aided Verification
Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic
Logic of Programs, Workshop
Efficient model checking via the equational /spl mu/-calculus
LICS '96 Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science
Propositional Dynamic Logic of looping and converse
STOC '81 Proceedings of the thirteenth annual ACM symposium on Theory of computing
Efficient monitoring of ω-languages
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Optimizing monitoring of finite state properties through monitor compaction
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Hi-index | 0.00 |
Model checking based on validating temporal logic formulas has proven practical and effective for numerous software engineering applications. As systems based on this approach have become more mainstream, a need has arisen to deal effectively with large batches of formulas over a common model. Presently, most systems validate formulas one at a time, with little or no interaction between validation of separate formulas. This is the case despite the fact that, for a wide range of applications, a certain level of redundancy between domain-related formulas can be anticipated.This paper presents an optimizing compiler for batches of temporal logic formulas. A component of the Carnauba model checking system, this compiler addresses the need to handle batches of temporal logic formulas by leveraging the framework common to optimizing programming language compilers. Just as traditional optimizing compilers attempt to exploit redundancy and other solvable properties in a program to reduce the demand on a runtime system, this compiler exploits similar properties in groups of formulas to reduce the demand on a model checking engine. Optimizations are performed via a set of distinct, interchangeable optimization passes operating on a common intermediate representation. The intermediate representation captures the full modal mu-calculus, and the optimization techniques are applicable to any temporal logic subsumed by that logic. The compiler offers a unified framework for expressing some well understood single-formula optimizations as well as numerous inter-formula optimizations that capitalize on redundancy, logical implication, and, optionally, model-specific knowledge. It is capable of working either in place of, or as a preprocessor for, other optimization algorithms. The result is a system that, when applied to a potentially heterogeneous collection of formulas over a common problem domain, is able to measurably reduce the time and space requirements of the subsequent model checking engine.