From Array Domains to Abstract Interpretation Under Store-Buffer-Based Memory Models

@inproceedings{Suzanne2016FromAD,
  title={From Array Domains to Abstract Interpretation Under Store-Buffer-Based Memory Models},
  author={Thibault Suzanne and Antoine Min{\'e}},
  booktitle={SAS},
  year={2016}
}
We address the problem of verifying concurrent programs under store-buffer-based weakly consistent memory models, such as TSO or PSO. Using the abstract interpretation framework, we adapt existing domains for arrays to model store buffers and obtain a sound abstraction of program states (including the case of programs with infinite state space) parameterised by a numerical domain. Whereas the usual method for this kind of programs implements a program transformation to come back to an analysis… 

Relational Thread-Modular Abstract Interpretation Under Relaxed Memory Models

TLDR
This work relies on a rely-guarantee framework with automatic inference of thread interferences to design an analysis with a thread-modular approach and describe relational abstractions of both thread states and interferences.

J ul 2 02 1 Thread-modular Analysis of Release-Acquire Concurrency

TLDR
A thread-modular abstract interpretation technique to verify programs under the release-acquire (RA) memory model for safety property violations and establishes the soundness of the proposed abstractions and implement them in a prototype abstract interpreter called PRIORI.

Thread-modular Analysis of Release-Acquire Concurrency

TLDR
A thread-modular abstract interpretation technique to verify programs under the release-acquire (RA) memory model for safety property violations and establishes the soundness of the proposed abstractions and implement them in a prototype abstract interpreter called PRIORI.

Decidable verification under a causally consistent shared memory

TLDR
This paper establishes the decidability of safety properties for finite-state concurrent programs running under a causally consistent shared memory model, and develops an alternative operational semantics, based on the notion of a thread potential, that is equivalent to the existing declarative semantics and constitutes a well-structured transition system.

What ’ s Decidable about Causally Consistent Memory Models ?

TLDR
This paper shows that the verification of safety properties for finite-state concurrent programs running under a causally consistent shared-memory model is decidable for two other well-studied variants of causal consistency (one is stronger than Release/Acquire and the other is weaker).

Static Analysis of Embedded Real-Time Concurrent Software with Dynamic Priorities

  • A. Miné
  • Computer Science
    Electron. Notes Theor. Comput. Sci.
  • 2017

Improving Thread-Modular Abstract Interpretation

TLDR
It is shown that a generalization of the analysis provided by the static analyzer Goblint as well as a natural improvement of Antoine Miné’s approach can be obtained as instances of this general scheme of thread-modular non-relational value analyses.

References

SHOWING 1-10 OF 22 REFERENCES

Effective Abstractions for Verification under Relaxed Memory Models

Partial-coherence abstractions for relaxed memory models

TLDR
A family of novel partial-coherence abstractions, specialized for relaxed memory models, which partially preserve information required for memory coherence and consistency are used to automatically verify programs under relaxedMemory models.

On the verification problem for weak memory models

TLDR
It is proved that the reachability problem is decidable for the TSO model, as well as for its extension with "write to write" relaxation (PSO), and it is shown that the Reachability problem becomes undecidable when the "read to read/write" relaxation is added to either of these two memory models.

Automatic inference of memory fences

TLDR
A framework for automatic inference of memory fences in concurrent programs, assisting the programmer in this complex task is presented, and it is used to infer correct and efficient placements of fences for several non-trivial algorithms, including practical concurrent data structures.

Checking and Enforcing Robustness against TSO

TLDR
It is shown that detecting attacks can be parallelized, and can be solved using state reachability queries under the SC semantics in a suitably instrumented program obtained by a linear size source-to-source translation.

Soundness of Data Flow Analyses for Weak Memory Models

TLDR
This paper first identifies a class of analyses that are sound, and provides a formal proof of soundness at the level of trace semantics, then discusses how analyses unsound with respect to weak memory models can be repaired via a fixed point iteration.

Software Verification for Weak Memory via Program Transformation

TLDR
A sound transformation of the program to verify is proposed, enabling SC tools to perform verification w.r.t. weak memory, and a broad variety of models and a vast range of verification tools are presented.

Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints

A program denotes computations in some universe of objects. Abstract interpretation of programs consists in using that denotation to describe computations in another universe of abstract objects, so

x86-TSO

TLDR
A new x86-TSO programmer's model is presented that is mathematically precise but can be presented as an intuitive abstract machine which should be widely accessible to working programmers and put x86 multiprocessor system building on a more solid foundation.

86-TSO : A Rigorous and Usable Programmer ’ s Model for x 86 Multiprocessors

TLDR
A new x86-TSO programmer’s model is presented that is mathematically precise but can be presented as an intuitive abstract machine which should be widely accessible to working programmers and put x86 multiprocessor system building on a more solid foundation.