Proving Properties of Concurrent Programs
نویسنده
چکیده
How do you prove the correctness of multi-threaded code? This question has been asked since at least the mid-sixties, and it has inspired researchers ever since. Many approaches have been tried, based on mathematical theories, the use of annotations, or the construction of abstractions. An ideal solution would be a tool that one can point ations. An ideal solution would be a tool that one can point at an arbitrary piece of concurrent code, and that can resolve correctness queries in real-time. We describe one possible method for achieving this capability with a logic model checker.
منابع مشابه
A Theorem Proving Approach for Verification of Reactive Concurrent Programs
We present a framework for the specification and verification of reactive concurrent programs using generalpurpose 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 c...
متن کاملVerifying Concurrent Systems with Symbolic Execution
Current techniques for interactively proving temporal properties of concurrent systems translate transition systems into temporal formulas by introducing program counter variables. Proofs are not intuitive, because control flow is not explicitly considered. For sequential programs symbolic execution is a very intuitive, interactive proof strategy. In this paper we will adopt this technique for ...
متن کاملProving Properties of Rich Internet Applications
We introduce application layer specifications, which allow us to reason about the state and transactions of rich Internet applications. We define variants of the state/event based logic UCTL* along with two example applications to demonstrate this approach, and then look at a distributed, rich Internet application, proving properties about the information it stores and disseminates. Our approac...
متن کاملBranching Time and Partial Orderin Temporal
The aim of this paper is to present existing propositional temporal logics with branching and partially ordered time. These logics are used for specifying and proving properties of programs and systems. The branching time approach is useful e.g. for non-deterministic programs and can be applied also for concurrent programs. The partial order approach is especially useful for concurrent programs...
متن کاملProving Precedence Properties: The Temporal Way
The paper explores the three important classes of temporal properties of concurrent programs: invariance, livcncss and prcccdencc. It presents the first methodological approach to the precedence properties, while providing a review of the invariance and liveness properties. The approach is based on the unless operator LL, which is a weak version of the until operator U. For each class of proper...
متن کاملA Theorem Proving Approach to Secure Information Flow in Concurrent Programs (Extended Abstract)
We present an approach to formally prove secure information flow in multi-threaded programs. We start with a precise formalization of noninterference in dynamic logic and then use the rely/guarantee approach to reduce this to thread-modular properties, that can be checked locally. A sound and complete calculus ensures that these properties can be proven without false positives. Currently, we wo...
متن کامل