Specification and Verification of Concurrent Programs Through Refinements

  • Authors:
  • Sandip Ray;Rob Sumners

  • Affiliations:
  • Strategic CAD Labs, Intel Corporation, Hillsboro, USA 97124;Advanced Micro Devices, Inc., Austin, USA 78741

  • Venue:
  • Journal of Automated Reasoning
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a framework for the specification and verification of reactive concurrent programs using general-purpose mechanical theorem proving. We define specifications for concurrent programs by formalizing a notion of refinements analogous to stuttering trace containment. The formalization supports the definition of intuitive specifications of the intended behavior of a program. We present a collection of proof rules that can be effectively orchestrated by a theorem prover to reason about complex programs using refinements. The proof rules systematically reduce the correctness proof for a concurrent program to the definition and proof of an invariant. We include automated support for discharging this invariant proof with a predicate abstraction tool that leverages the existing theorems proven about the components of the concurrent programs. The framework is integrated with the ACL2 theorem prover and we demonstrate its use in the verification of several concurrent programs in ACL2.