English
Related papers

Related papers: Leaf: Modularity for Temporary Sharing in Separati…

200 papers

We report on intermediate results of our research on reasoning about liveness properties in addition to deep correctness properties for an imperative, concurrent programming language with a higher-order store. At present, we focus on one…

Logic in Computer Science · Computer Science 2023-01-02 Justus Fasse , Bart Jacobs

Self-supervised goal proposal and reaching is a key component for exploration and efficient policy learning algorithms. Such a self-supervised approach without access to any oracle goal sampling distribution requires deep exploration and…

Robotics · Computer Science 2021-04-28 Homanga Bharadhwaj , Animesh Garg , Florian Shkurti

We present Lilac, a separation logic for reasoning about probabilistic programs where separating conjunction captures probabilistic independence. Inspired by an analogy with mutable state where sampling corresponds to dynamic allocation, we…

Programming Languages · Computer Science 2023-05-29 John M. Li , Amal Ahmed , Steven Holtzen

Grove is a concurrent separation logic library for verifying distributed systems. Grove is the first to handle time-based leases, including their interaction with reconfiguration, crash recovery, thread-level concurrency, and unreliable…

Logic in Computer Science · Computer Science 2023-09-18 Upamanyu Sharma , Ralf Jung , Joseph Tassarotti , M. Frans Kaashoek , Nickolai Zeldovich

Creating safe concurrent algorithms is challenging and error-prone. For this reason, a formal verification framework is necessary especially when those concurrent algorithms are used in safety-critical systems. The goal of this guide is to…

Logic in Computer Science · Computer Science 2025-01-24 Elizabeth Dietrich

The correctness of many algorithms and data structures depends on reachability properties, that is, on the existence of chains of references between objects in the heap. Reasoning about reachability is difficult for two main reasons. First,…

Programming Languages · Computer Science 2019-08-19 Arshavir Ter-Gabrielyan , Alexander J. Summers , Peter Müller

Separation logic was conceived in order to make the verification of pointer programs scalable to large systems and it has proven extremely effective. The key idea is that programs typically access only small parts of memory, allowing for…

Logic in Computer Science · Computer Science 2025-08-05 Berend van Starkenburg , Henning Basold , Chase Ford

Nowadays, numerous services based on large-scale distributed systems have been developed to boost the convenience of human life. On the other side, it becomes a significant challenge to ensure the correctness and properties of these systems…

Logic in Computer Science · Computer Science 2020-07-28 Yepeng Ding , Hiroyuki Sato

Separation logic is a concise method for specifying programs that manipulate dynamically allocated storage. Partially inspired by separation logic, Implicit Dynamic Frames has recently been proposed, aiming at first-order tool support. In…

Programming Languages · Computer Science 2015-07-01 Matthew J. Parkinson , Alexander J. Summers

Contextual refinement and separation logics are successful verification techniques that are very different in nature. First, the former guarantees behavioral refinement between a concrete program and an abstract program while the latter…

Programming Languages · Computer Science 2021-09-08 Youngju Song , Minki Cho , Dongjae Lee , Chung-Kil Hur

Linearizability is a commonly accepted notion of correctness for libraries of concurrent algorithms, and recent years have seen a number of proposals of program logics for proving it. Although these logics differ in technical details, they…

Programming Languages · Computer Science 2016-09-06 Artem Khyzha , Alexey Gotsman , Matthew Parkinson

This paper proposes a technique to specify and verify whether a loop can be parallelised. Our approach can be used as an additional step in a parallelising compiler to verify user annotations about loop dependences. Essentially, our…

Software Engineering · Computer Science 2014-06-16 Stefan Blom , Saeed Darabi , Marieke Huisman

Separation logic is a substructural logic which has proved to have numerous and fruitful applications to the verification of programs working on dynamic data structures. Recently, Barthe, Hsu and Liao have proposed a new way of giving…

Cryptography and Security · Computer Science 2024-05-21 Ugo Dal Lago , Davide Davoli , Bruce M. Kapron

We introduce Cryptis, an extension of the Iris separation logic that can be used to verify cryptographic components using the symbolic model of cryptography. The combination of separation logic and cryptographic reasoning allows us to prove…

Cryptography and Security · Computer Science 2025-07-15 Arthur Azevedo de Amorim , Amal Ahmed , Marco Gaboardi

Distributed systems are critical to reliable and scalable computing; however, they are complicated in nature and prone to bugs. To modularly manage this complexity, network middleware has been traditionally built in layered stacks of…

Programming Languages · Computer Science 2020-04-06 Jeremiah Griffin , Mohsen Lesani , Narges Shadab , Xizhe Yin

We develop and prove sound a concurrent separation logic for Pthreads-style barriers. Although Pthreads barriers are widely used in systems, and separation logic is widely used for verification, there has not been any effort to combine the…

Logic in Computer Science · Computer Science 2015-07-01 Aquinas Hobor , Cristian Gherghina

Proving linearizability of concurrent data structures remains a key challenge for verification. We present temporal interpolation as a new proof principle to conduct such proofs using hindsight arguments within concurrent separation logic.…

Programming Languages · Computer Science 2023-04-25 Roland Meyer , Thomas Wies , Sebastian Wolff

Separation Logic is an effective Program Logic for proving programs that involve pointers. Reasoning with pointers becomes difficult especially when there is aliasing arising due to several pointers to a given cell location. In this paper,…

Logic in Computer Science · Computer Science 2017-04-07 Abhishek Kr Singh , Raja Natrajan

Value independence is enormously beneficial for reasoning about software systems at scale. These benefits carry over into the world of formal verification. Reasoning about programs algebraically is a simple affair in a proof assistant,…

Programming Languages · Computer Science 2026-02-09 Liam O'Connor , Pilar Selene Linares Arevalo , Christine Rizkallah

VeriFast is one of the leading tools for semi-automated modular formal program verification. A central feature of VeriFast is its support for higher-order ghost code, which enables its support for expressively specifying fine-grained…

Programming Languages · Computer Science 2025-10-14 Bart Jacobs
‹ Prev 1 2 3 10 Next ›