Compositional Reasoning for Shared-variable Concurrent Programs
This addresses the demanding need for scalable formal verification in concurrent systems, offering an incremental improvement in automated compositional reasoning.
The paper tackles the problem of scalable automatic verification for concurrent programs with shared variables by proposing a compositional reasoning framework that models programs as succinct automata and supports verification of multiple properties. The result includes the first automated approach to checking rely-guarantee based simulations for infinite state concurrent programs, with a prototype tool applied to verify multiple refinements.
Scalable and automatic formal verification for concurrent systems is always demanding. In this paper, we propose a verification framework to support automated compositional reasoning for concurrent programs with shared variables. Our framework models concurrent programs as succinct automata and supports the verification of multiple important properties. Safety verification and simulations of succinct automata are parallel compositional, and safety properties of succinct automata are preserved under refinements. We generate succinct automata from infinite state concurrent programs in an automated manner. Furthermore, we propose the first automated approach to checking rely-guarantee based simulations between infinite state concurrent programs. We have prototyped our algorithms and applied our tool to the verification of multiple refinements.