Abstract
When we verify the correctness of an open system with respect to a desired requirement, we should take into consideration the different environments with which the system may interact. Each environment induces a different behavior of the system, and we want all these behaviors to satisfy the requirement. Module checking is an algorithmic method that checks, given an open system (modeled as a finite structure) and a desired requirement (specified by a temporal-logic formula), whether the open system satisfies the requirement with respect to all environments. In this paper we extend the module-checking method with respect to two orthogonal issues. Both issues concern the fact that often we are not interested in satisfaction of the requirement with respect to all environments, but only with respect to these that meet some restriction. We consider the case where the environment has incomplete information about the system; i.e., when the system has internal variables, which are not readable by its environment, and the case where some assumptions are known about environment; i.e., when the system is guaranteed to satisfy the requirement only when its environment satisfies certain assumptions. We study the complexities of the extended module-checking problems. In particular, we show that for universal temporal logics (e.g., LTL, ∀CTL, and ∀CTL*), module checking with incomplete information coincides with module checking, which by itself coincides with model checking. On the other hand, for non-universal temporal logics (e.g., CTL and CTL*), module checking with incomplete information is harder than module checking, which is by itself harder than model checking.
Part of this work was done in Bell Laboratories during the DIMACS special year on Logic and Algorithms.
Supported in part by the ONR YIP award N00014-95-1-0520, by the NSFCAREER award CCR-9501708, by the NSF grant CCR-9504469, by the AFOSR contract F49620-93-1-0056, by the ARO MURI grant DAAH-04-96-1-0341, by the ARPA grant NAG2-892, and by the SRC contract 95-DC-324.036.
Supported in part by the NSF grant CCR-9628400.
Chapter PDF
Similar content being viewed by others
References
O. Bernholtz, M.Y. Vardi, and P. Wolper. An automata-theoretic approach to branching-time model checking. In Proc. 6th CAV, LNCS 818, pp. 142–155, June 1994.
E.M. Clarke and E.A. Emerson. Design and synthesis of synchronization skeletons using branching time temporal logic. In Proc. LP, LNCS 131, pp. 52–71, 1981.
E.M. Clarke, O. Grumberg, and M.C. Browne. Reasoning about networks with many identical finite-state processes. In Proc. 5th PODC, pp. 240–248, August 1986.
E.M. Clarke, E.A. Emerson, and A.P. Sistla. Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM TPLS, 8(2):244–263, 1986.
E.A. Emerson and C. Jutla. The complexity of tree automata and logics of programs. In Proc. 29th FOCS, pp. 368–377, October 1988.
E.A. Emerson and C.-L. Lei. Temporal model checking under generalized fairness constraints. In Proc. 18th Hawaii International Conference on System Sciences, Hawaii, 1985.
E.A. Emerson. Automata, tableaux, and temporal logics. In Proc. LP, LNCS 193, pp. 79–87, 1985.
M.J. Fischer and L.D. Zuck. Reasoning about uncertainty in fault-tolerant distributed systems. In Proc. Formal Techniques in Real-Time and Fault-Tolerant Sys., LNCS 331, pp. 142–158, 1988.
O. Grumberg and D.E. Long. Model checking and modular verification. ACM Trans. on Programming Languages and Systems, 16(3):843–871, 1994.
C.A.R. Hoare. Communicating Sequential Processes. Prentice-Hall, 1985.
D. Harel and A. Pnueli. On the development of reactive systems. In Logics and Models of Concurrent Systems, volume F-13 of NATO Advanced Summer Institutes, pp. 477–498, 1985.
C.B. Jones. Specification and design of (parallel) programs. In Proc. 9th IFIP, pp. 321–332, North-Holland, 1983.
O. Kupferman and M.Y. Vardi. On the complexity of branching modular model checking. In Proc. 6th CONCUR, LNCS 962, pp. 408–422, August 1995.
O. Kupferman and M.Y. Vardi. Module checking. In Proc. 8th CAV, LNCS 1102, pp. 75–86, August 1996.
L. Lamport. Specifying concurrent program modules. ACM Trans. on Programming Languages and Systenms, 5:190–222, 1983.
O. Lichtenstein and A. Pnueli. Checking that finite state concurrent programs satisfy their linear specification. In Proc. 12th POPL, pp. 97–107, January 1985.
R. Milner. An algebraic definition of simulation between programs. In Proc. 2nd IJCAI, British Computer Society, pp. 481–489, September 1971.
Z. Manna and A. Pnueli. Temporal specification and verification of reactive modules. 1992.
D.E. Muller and P.E. Schupp. Alternating automata on infinite trees. Theoretical Computer Science, 54,:267–276, 1987.
D.E. Muller and P.E. Schupp. Simulating aternating tree automata by nondeterministic automata: New results and new proofs of theorems of Rabin, McNaughton and Safra. Theoretical Computer Science, 141:69–107, 1995.
A. Pnueli. The temporal semantics of concurrent programs. Theoretical Computer Science, 13:45–60, 1981.
A. Pnueli. Applications of temporal logic to the specification and verification of reactive systems: A survey of current trends. In Proc. Advanced School on Current Trends in Concurrency, LNCS 224, pp. 510–584, 1985.
J.P. Queille and J. Sifakis. Specification and verification of concurrent systems in Cesar. In Proc. 5th International Symp. on Programming, LNCS 137, pp. 337–351, 1981.
J.H. Reif. The complexity of two-player games of incomplete information. J. on Computer and System Sciences, 29:274–301, 1984.
M.Y. Vardi. On the complexity of modular model checking. In Proc. 10th LICS, June 1995.
M.Y. Vardi and P. Wolper. Automata-theoretic techniques for modal logics of programs. Journal of Computer and System Science, 32(2): 182–221, April 1986.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kupferman, O., Vardi, M.Y. (1997). Module checking revisited. In: Grumberg, O. (eds) Computer Aided Verification. CAV 1997. Lecture Notes in Computer Science, vol 1254. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-63166-6_7
Download citation
DOI: https://doi.org/10.1007/3-540-63166-6_7
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63166-8
Online ISBN: 978-3-540-69195-2
eBook Packages: Springer Book Archive