Predicate Abstraction for Relaxed Memory Models

We present a novel approach for predicate abstraction of programs running on relaxed memory models. Our approach consists of two steps.

[1]  Boleslaw K. Szymanski A simple solution to Lamport's concurrent programming problem with linear wait , 1988, ICS '88.

[2]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[3]  Radha Jagadeesan,et al.  A theory of memory models , 2007, PPOPP.

[4]  Parosh Aziz Abdulla,et al.  Automatic Fence Insertion in Integer Programs via Predicate Abstraction , 2012, SAS.

[5]  J. LaFountain Inc. , 2013, American Art.

[6]  Sebastian Burckhardt,et al.  On the verification problem for weak memory models , 2010, POPL '10.

[7]  David L. Dill,et al.  Experience with Predicate Abstraction , 1999, CAV.

[8]  Daniel Kroening,et al.  Symmetry-Aware Predicate Abstraction for Shared-Variable Concurrent Programs , 2011, CAV.

[9]  Edsger W. Dijkstra,et al.  Cooperating sequential processes , 2002 .

[10]  Bengt Jonsson State-space exploration for concurrent algorithms under weak memory orderings: (preliminary version) , 2009, CARN.

[11]  Viktor Vafeiadis,et al.  Verifying Fence Elimination Optimisations , 2011, SAS.

[12]  Michel Dubois,et al.  Memory access buffering in multiprocessors , 1998, ISCA '98.

[13]  Sebastian Burckhardt,et al.  Concurrent programming with revisions and isolation types , 2010, OOPSLA.

[14]  Daniel Kroening,et al.  Software Verification for Weak Memory via Program Transformation , 2012, ESOP.

[15]  Mohamed Faouzi Atig,et al.  Getting Rid of Store-Buffers in TSO Analysis , 2011, CAV.

[16]  Scott Owens,et al.  Reasoning about the Implementation of Concurrency Abstractions on x86-TSO , 2010, ECOOP.

[17]  David L. Dill,et al.  An Executable Specification and Verifier for Relaxed Memory Order , 1999, IEEE Trans. Computers.

[18]  Leslie Lamport,et al.  A new solution of Dijkstra's concurrent programming problem , 1974, Commun. ACM.

[19]  Cormac Flanagan,et al.  Predicate abstraction for software verification , 2002, POPL '02.

[20]  David L Weaver,et al.  The SPARC architecture manual : version 9 , 1994 .

[21]  G. S. Graham A New Solution of Dijkstra ' s Concurrent Programming Problem , 2022 .

[22]  Thuan Quang Huynh,et al.  Memory model sensitive bytecode verification , 2007, Formal Methods Syst. Des..

[23]  Thomas A. Henzinger,et al.  Lazy abstraction , 2002, POPL '02.

[24]  Gregory R. Andrews,et al.  Concurrent programming - principles and practice , 1991 .

[25]  Gary L. Peterson,et al.  Myths About the Mutual Exclusion Problem , 1981, Inf. Process. Lett..

[26]  Tom Ridge,et al.  The semantics of x86-CC multiprocessor machine code , 2009, POPL '09.

[27]  Eran Yahav,et al.  Partial-coherence abstractions for relaxed memory models , 2011, PLDI '11.

[28]  Eran Yahav,et al.  Automatic inference of memory fences , 2010, Formal Methods in Computer Aided Design.

[29]  Sebastian Burckhardt,et al.  CheckFence: checking consistency of concurrent data types on relaxed memory models , 2007, PLDI '07.

[30]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[31]  Ashutosh Gupta,et al.  Threader: A Constraint-Based Verifier for Multi-threaded Programs , 2011, CAV.

[32]  Todd Millstein,et al.  Automatic predicate abstraction of C programs , 2001, PLDI '01.