Formal Methods in System Design

, Volume 6, Issue 1, pp 97–123

Using integer programming to verify general safety and liveness properties

Authors

  • James C. Corbett
    • University of Hawaii at Manoa
  • George S. Avrunin
    • University of Massachusetts at Amherst
Article

DOI: 10.1007/BF01384316

Cite this article as:
Corbett, J.C. & Avrunin, G.S. Form Method Syst Des (1995) 6: 97. doi:10.1007/BF01384316

Abstract

Analysis of concurrent systems is plagued by the state explosion problem. We describe an analysis technique that uses necessary conditions, in the form of linear inequalities, to verify certain properties of concurrent systems, thus avoiding the enumeration of the potentially explosive number of reachable states of the system. This technique has been shown to be capable of verifying simple safety properties, like freedom from deadlock, that can be expressed in terms of the number of certain events occurring in a finite execution, and has been successfully used to analyze a variety of concurrent software systems. In this paper, we extend the technique to the verification of more complex safety properties that involve the order of events and to the verification of liveness properties, which involve infinite executions.

Keywords

Concurrent systemsautomated verificationinteger programmingsafetyliveness
Download to read the full article text

Copyright information

© Kluwer Academic Publishers 1995