Replication package for Article: "SteelCore: An Extensible Concurrent Separation Logic for Effectful Dependently Typed Programs"

Author(s):  
Nikhil Swamy ◽  
Aseem Rastogi ◽  
Aymeric Fromherz ◽  
Denis Merigoux ◽  
Danel Ahman ◽  
...  
2020 ◽  
Vol 4 (ICFP) ◽  
pp. 1-29
Author(s):  
Glen Mével ◽  
Jacques-Henri Jourdan ◽  
François Pottier

2021 ◽  
Vol 43 (4) ◽  
pp. 1-134
Author(s):  
Emanuele D’Osualdo ◽  
Julian Sutherland ◽  
Azadeh Farzan ◽  
Philippa Gardner

We present TaDA Live, a concurrent separation logic for reasoning compositionally about the termination of blocking fine-grained concurrent programs. The crucial challenge is how to deal with abstract atomic blocking : that is, abstract atomic operations that have blocking behaviour arising from busy-waiting patterns as found in, for example, fine-grained spin locks. Our fundamental innovation is with the design of abstract specifications that capture this blocking behaviour as liveness assumptions on the environment. We design a logic that can reason about the termination of clients that use such operations without breaking their abstraction boundaries, and the correctness of the implementations of the operations with respect to their abstract specifications. We introduce a novel semantic model using layered subjective obligations to express liveness invariants and a proof system that is sound with respect to the model. The subtlety of our specifications and reasoning is illustrated using several case studies.


2021 ◽  
Vol 5 (ICFP) ◽  
pp. 1-28
Author(s):  
Adam Chlipala

Rigorous reasoning about programs calls for some amount of bureaucracy in managing details like variable binding, but, in guiding students through big ideas in semantics, we might hope to minimize the overhead. We describe our experiment introducing a range of such ideas, using the Coq proof assistant, without any explicit representation of variables, instead using a higher-order syntax encoding that we dub "mixed embedding": it is neither the fully explicit syntax of deep embeddings nor the syntax-free programming of shallow embeddings. Marquee examples include different takes on concurrency reasoning, including in the traditions of model checking (partial-order reduction), program logics (concurrent separation logic), and type checking (session types) -- all presented without any side conditions on variables.


2016 ◽  
Vol 3 (3) ◽  
pp. 47-65 ◽  
Author(s):  
Stephen Brookes ◽  
Peter W. O'Hearn

Author(s):  
Pedro Soares ◽  
António Ravara ◽  
Simão Melo de Sousa

2016 ◽  
Vol 24 (1) ◽  
pp. 132-140 ◽  
Author(s):  
Izumi Asakura ◽  
Hidehiko Masuhara ◽  
Tomoyuki Aotani

Sign in / Sign up

Export Citation Format

Share Document