• Corpus ID: 30252156

Model-based Verification of Distributed Software

  title={Model-based Verification of Distributed Software},
  author={Wytse Oortwijn and Marieke Huisman},
Distributed components that operate and interact concurrently are ubiquitous in industry software. Many safety-critical systems consist of concurrent components, yet providing any guarantees on their correctness is very challenging. Therefore, developing tools and techniques that allow to prove functional correctness of such software systems is essential. In the field of program analysis, several approaches have been proposed that aim to increase the reliability of concurrent systems or to give… 



Future-based Static Analysis of Message Passing Programs

This work uses separation logic to reason about local correctness and define abstractions of the communication protocol in the process algebra used by mCRL2 to establish a provable link between futures and program code and analyse the abstract futures via model checking to prove global correctness.

The VerCors Tool for Verification of Concurrent Programs

The VerCors tool implements thread-modular static verification of concurrent programs, annotated with functional properties and heap access permissions, and the features of its specification language are discussed.

Modeling and Analysis of Communicating Systems

This book introduces behavioral modeling, a rigorous approach to behavioral specification and verification of concurrent and distributed systems, and introduces a modeling language, mCRL2, that enables concise descriptions of even the most intricate distributed algorithms and protocols.

Separation logic: a logic for shared mutable data structures

  • J. C. Reynolds
  • Computer Science
    Proceedings 17th Annual IEEE Symposium on Logic in Computer Science
  • 2002
An extension of Hoare logic that permits reasoning about low-level imperative programs that use shared mutable data structure is developed, including extensions that permit unrestricted address arithmetic, dynamically allocated arrays, and recursive procedures.