Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
The complexity of probabilistic verification
Courcoubetis C., Yannakakis M. Journal of the ACM42 (4):857-907,1995.Type:Article
Date Reviewed: Jan 1 1997

Program verification has always been a desirable task, but never an easy one. The advent of concurrent programming has made it significantly more necessary and difficult. Indeed, the conceptual complexity of concurrency increases the likelihood of a program containing errors.

In the traditional approach to concurrent program verification, the correctness of the program is expressed as a formula in first-order temporal logic. To prove that the program is correct, one has to prove that the correctness formula is a theorem of a certain deductive system. This proof is constructed manually and is usually quite difficult to construct. It often requires an intimate understanding of the program. Furthermore, there is no hope of constructing the proof completely algorithmically. The only extent of automation that one can hope for is to have the proof checked by a machine and, possibly, to have some limited heuristic help in finding the proof.

A different approach was introduced in the early 1980s [1] for finite-state programs, that is, programs in which the variables range over finite domains. The significance of this class follows from the fact that a significant number of the communication and synchronization protocols studied in the literature are, in essence, finite-state programs. Thus, to verify the correctness of the program, one has only to check algorithmically that the program, viewed as a finite-state transition system, satisfies (is a model of) a propositional temporal logic specification. This approach, called “verification by model checking,” was described by Apt and Kozen as “one of the most exciting developments in the theory of program correctness.”

An extension of the model-checking approach to probabilistic programs was proposed in my paper [2]. Here, the program is modeled as a finite sequential Markov chain or finite concurrent Markov chain. Instead of attempting to verify that all computations of the program satisfy the specification (given by a linear temporal formula), one attempts to verify that the specification holds with probability 1, that is, that the set of computations that satisfy the specification has probability 1. This can be called probabilistic verification. The probability is relative to the probabilistic steps of the program and the worst possible scheduling of the various processes.

This definitive paper continues the investigation by studying the complexity of probabilistic verification. It provides tight upper and lower bound. For sequential programs, the problem is shown to be PSPACE-complete, and for concurrent programs, the problem is 2EXPTIME-complete.  (2EXPTIME  denotes the class of problems that can be solved in doubly exponential time.) In either case, the source of the high complexity is the linear temporal specification; the algorithms run in time that is linear in the size of the program. The fundamental idea is to reduce model checking to the checking of certain graph-theoretic properties of the underlying Markov chain. It turns out that the precise numeric value of the probabilities is irrelevant.

Reviewer:  M. Vardi Review #: CR119744 (9701-0045)
1) Clarke, E. M.; Emerson, E. A.; and Sistla, A. P. Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Trans. Program. Lang. Syst. 8, 2 (April 1986), 244–263.
2) Vardi, M. Y. Automatic verification of probabilistic current finite-state programs. In Papers of the 26th Annual IEEE Symposium on Foundations of Computer Science (Portland, OR, Oct. 21–23, 1985). R. E. Tarjan, Chr. IEEE Computer Society Press, Washington, DC, 327–338.
Bookmark and Share
 
Mechanical Verification (F.3.1 ... )
 
 
Complexity Of Proof Procedures (F.2.2 ... )
 
 
Probabilistic Algorithms (Including Monte Carlo) (G.3 ... )
 
 
Complexity Measures And Classes (F.1.3 )
 
 
Nonnumerical Algorithms And Problems (F.2.2 )
 
 
Software/ Program Verification (D.2.4 )
 
  more  
Would you recommend this review?
yes
no
Other reviews under "Mechanical Verification": Date
Fast automatic liveness analysis of hierarchical parallel systems
Rohrich J.  Programming Languages and System Design (, Dresden, East Germany,271983. Type: Proceedings
Feb 1 1985
Mechanical proofs about computer programs
Good D.  Mathematical logic and programming languages (, London, UK,751985. Type: Proceedings
Feb 1 1986
The characterization problem for Hoare logics
Clarke E.  Mathematical logic and programming languages (, London, UK,1061985. Type: Proceedings
Jun 1 1986
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy