English
Related papers

Related papers: Compositional Verification in Concurrent Separatio…

200 papers

Concurrent Constraint Programming (CCP) is a simple and powerful model for concurrency where agents interact by telling and asking constraints. Since their inception, CCP-languages have been designed for having a strong connection to logic.…

Logic in Computer Science · Computer Science 2020-02-19 Elaine Pimentel , Carlos Olarte , Vivek Nigam

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

Language models (LMs) can generate code but cannot guarantee its correctness$\unicode{x2014}$often producing outputs that violate type safety, program invariants, or other semantic properties. Constrained decoding offers a solution by…

Programming Languages · Computer Science 2025-12-03 Shaan Nagy , Timothy Zhou , Nadia Polikarpova , Loris D'Antoni

Most work on the verification of concurrent objects for shared memory assumes sequential consistency, but most multicore processors support only weak memory models that do not provide sequential consistency. Furthermore, most verification…

Distributed, Parallel, and Cluster Computing · Computer Science 2016-04-25 Simon Doherty , John Derrick

We present a self-certifying compiler for the COGENT systems language. COGENT is a restricted, polymorphic, higher-order, and purely functional language with linear types and without the need for a trusted runtime or garbage collector. It…

A principled approach to the design of program verification and con- struction tools is applied to separation logic. The control flow is modelled by power series with convolution as separating conjunction. A generic construction lifts…

Logic in Computer Science · Computer Science 2014-10-17 Brijesh Dongol , Victor B. F. Gomes , Georg Struth

Most separation logics hide container-internal pointers for modularity. This makes it difficult to specify container APIs that temporarily expose those pointers to the outside, and to verify programs that use these APIs. We present logical…

Programming Languages · Computer Science 2025-12-08 Yawen Guan , Clément Pit-Claudel

Concurrency testing is essential to improve the reliability and security of multi-threaded programs. Dynamic analysis tools, such as TSan, depend on high-quality test drivers that reach critical shared-memory interactions at runtime.…

Software Engineering · Computer Science 2026-05-12 Yuandao Cai , Shuhao Fu , Wensheng Tang , Cheng Wen , Shengchao Qin , Charles Zhang

Writing correct programs for weak memory models such as the C11 memory model is challenging because of the weak consistency guarantees these models provide. The first program logics for the verification of such programs have recently been…

Programming Languages · Computer Science 2018-02-20 Alexander J. Summers , Peter Müller

Verifying specifications for large-scale modern engineering systems can be a time-consuming task, as most formal verification methods are limited to systems of modest size. Recently, contract-based design and verification has been proposed…

Systems and Control · Electrical Eng. & Systems 2021-03-26 Miel Sharf , Bart Besselink , Karl Henrik Johansson

Despite the recent progress of automated program verification techniques, fully automated verification of programs manipulating recursive data structures remains a challenge. We introduce solvable tuple patterns (STPs) and conjunctive STPs…

Programming Languages · Computer Science 2026-05-27 Naoki Kobayashi , Ryosuke Sato , Ayumi Shinohara , Ryo Yoshinaka

Separation Logic (SL) is a well-known assertion language used in Hoare-style modular proof systems for programs with dynamically allocated data structures. In this paper we investigate the fragment of first-order SL restricted to the…

Logic in Computer Science · Computer Science 2016-11-24 Andrew Reynolds , Radu Iosif , Cristina Serban

It is often difficult to write code that you can ensure will be executed in the right order when programing for parallel compute tasks. Due to the way that today's parallel compute hardware, primarily Graphical Processing Units (GPUs),…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-03-13 Andrew Osterhout , Ganesh Gopalakrishnan

Instruction following is one of the fundamental capabilities of large language models (LLMs). As the ability of LLMs is constantly improving, they have been increasingly applied to deal with complex human instructions in real-world…

Computation and Language · Computer Science 2024-11-01 Bosi Wen , Pei Ke , Xiaotao Gu , Lindong Wu , Hao Huang , Jinfeng Zhou , Wenchuang Li , Binxin Hu , Wendy Gao , Jiaxin Xu , Yiming Liu , Jie Tang , Hongning Wang , Minlie Huang

We consider learning and compositionality as the key mechanisms towards simulating human-like intelligence. While each mechanism is successfully achieved by neural networks and symbolic AIs, respectively, it is the combination of the two…

Artificial Intelligence · Computer Science 2022-08-29 Ximing Qiao , Hai Li

Verification is crucial for effective mathematical reasoning. We present a new temporal consistency method where verifiers iteratively refine their judgments based on the previous assessment. Unlike one-round verification or multi-model…

Computation and Language · Computer Science 2025-12-01 Jiacheng Guo , Yue Wu , Jiahao Qiu , Kaixuan Huang , Xinzhe Juan , Ling Yang , Mengdi Wang

Bounded verification has proved useful to detect bugs and to increase confidence in the correctness of a program. In contrast to unbounded verification, reasoning about calls via (bounded) inlining and about loops via (bounded) unrolling…

Logic in Computer Science · Computer Science 2023-03-14 Thibault Dardinier , Gaurav Parthasarathy , Peter Müller

Automatic security protocol analysis is currently feasible only for small protocols. Since larger protocols quite often are composed of many small protocols, compositional analysis is an attractive, but non-trivial approach. We have…

Cryptography and Security · Computer Science 2007-05-23 Suzana Andova , Cas Cremers , Kristian Gjosteen , Sjouke Mauw , Stig F. Mjolsnes , Sasa Radomirovic

We present \synver{}, a novel synthesis and verification framework for C programs, that deploys a Large Language Model (LLM) to search for a candidate program that satisfies the given specification. Our key idea is to impose syntactic and…

Programming Languages · Computer Science 2025-10-21 Prasita Mukherjee , Benjamin Delaware

This paper describes a deductive approach to synthesizing imperative programs with pointers from declarative specifications expressed in Separation Logic. Our synthesis algorithm takes as input a pair of assertions---a pre- and a…

Programming Languages · Computer Science 2018-11-12 Nadia Polikarpova , Ilya Sergey