SteelCore: An Extensible Concurrent Separation Logic for Effectful Dependently Typed Programs

11/30/2021
by   Nikhil Swamy, et al.
0

Much recent research has been devoted to modeling effects within type theory. Building on this work, we observe that effectful type theories can provide a foundation on which to build semantics for more complex programming constructs and program logics, extending the reasoning principles that apply within the host effectful type theory itself. Concretely, our main contribution is a semantics for concurrent separation logic (CSL) within the F* proof assistant in a manner that enables dependently typed, effectful F* programs to make use of concurrency and to be specified and verified using a full-featured, extensible CSL. In contrast to prior approaches, we directly derive the partial-correctness Hoare rules for CSL from the denotation of computations in the effectful semantics of non-deterministically interleaved atomic actions. Demonstrating the flexibility of our semantics, we build generic, verified libraries that support various concurrency constructs, ranging from dynamically allocated, storable spin locks, to protocol-indexed channels. We conclude that our effectful semantics provides a simple yet expressive basis on which to layer domain-specific languages and logics for verified, concurrent programming.

READ FULL TEXT
research
02/08/2018

A Separation Logic for Concurrent Randomized Programs

We present a concurrent separation logic with support for probabilistic ...
research
12/05/2017

Revisiting concurrent separation logic

We present a new soundness proof of Concurrent Separation Logic (CSL) ba...
research
02/24/2022

LAGC Semantics of Concurrent Programming Languages

Formal, mathematically rigorous programming language semantics are the e...
research
04/15/2019

Specifying Concurrent Programs in Separation Logic: Morphisms and Simulations

In addition to pre- and postconditions, program specifications in recent...
research
07/14/2022

Bringing Iris into the Verified Software Toolchain

The Verified Software Toolchain (VST) is a system for proving correctnes...
research
12/19/2021

Symbolic Specialization of Rewriting Logic Theories with Presto

This paper introduces Presto, a symbolic partial evaluator for Maude's r...
research
07/26/2018

Bestow and Atomic: Concurrent Programming using Isolation, Delegation and Grouping

Any non-trivial concurrent system warrants synchronisation, regardless o...

Please sign up or login with your details

Forgot password? Click here to reset