A decision algorithm for full propositional temporal logic
The paper presents an efficient algorithm for checking the satisfiability of a propositional linear time temporal logic formula, which may have past as well as future operators. This algorithm can be used to check validity of such formulas over all models as well as over computations of a finite-state program (model checking). Unlike previous theoretical presentations of a decision method for checking satisfiability or validity, whose first step is to construct the full set of all possible atoms of a tableau (satisfaction graph) and immediately pay the worst case exponential complexity price, the algorithm presented here builds the tableau incrementally. This means that the algorithm constructs only those atoms that are reachable from a possible initial atom, satisfying the formula to be checked.
While incremental tableau construction for the future fragment of linear time temporal logic can be done in a single pass, the presence of past operators requires multiple passes that successively construct augmented versions of existing atoms, while still maintaining consistency and reachability.
The proof of correctness of the algorithm is based on showing that any model of the considered formula is embedded as a path in the tableau at all the construction stages, and can be delineated when the construction terminates.
The paper also describes an implementation of the algorithm with further attention to efficiency. This implementation is available as a support system for the book  under the name “temporal prover”. It has been used to verify all the propositional temporal formulas and to model-check all the finite-state programs appearing in the book.
Keywordstemporal logic satisfiability checking validity checking model checking past and future operators incremental tableau automatic verification
- 1.M. Ben-Ari, Z. Manna, and A. Pnueli. The temporal logic of branching time. Acta Informatica, 20:207–226, 1983.Google Scholar
- 2.M.J. Fischer and R.E. Ladner. Propositional dynamic logic of regular programs. J. Comp. Sys. Sci., 18:194–211, 1979.Google Scholar
- 3.G. D. Gough and H. Barringer. A semantic driven temporal verification. In Proceedings of ESOP'88, 1988.Google Scholar
- 4.G. D. Gough. Decision procedures for temporal logic, Master's thesis, University of Manchester, England, 1984.Google Scholar
- 5.J.A.W. Kamp. Tense Logic and the Theory of Order. PhD thesis, UCLA, 1968.Google Scholar
- 6.O. Lichtenstein and A. Pnueli. Checking that finite state concurrent programs satisfy their linear specification. In Proc. 12th ACM Symp. Princ. of Prog. Lang., pages 97–107, 1985.Google Scholar
- 7.O. Lichtenstein, A. Pnueli, and L. Zuck. The glory of the past. In Proc. Conf. Logics of Programs, volume 193 of Lect. Notes in Comp. Sci., pages 196–218. Springer-Verlag, 1985.Google Scholar
- 8.Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems: Specification. Springer-Verlag, New York, 1991.Google Scholar
- 9.Z. Manna and P. Wolper. Synthesis of communicating processes from temporal logic specifications. ACM Trans. Prog. Lang. Sys., 6:68–93, 1984.Google Scholar
- 10.A. Pnueli and R. Sherman. Semantic tableau for temporal logic. Technical Report CS81-21, The Weizmann Institute, 1981.Google Scholar
- 11.A.P. Sistla and E.M. Clarke. The complexity of propositional linear temporal logic. J. ACM, 32:733–749, 1985.Google Scholar
- 12.R. Sherman and A. Pnueli. Model checking for linear temporal logic: An efficient implementation. Technical report, Information Science Institute, USC, 1989.Google Scholar