English
Related papers

Related papers: Modular termination verification with a higher-ord…

200 papers

A key feature in trusted computing is attestation, which allows encapsulated components (enclaves) to prove their identity to (local or remote) distrusting components. Reasoning about software that uses the technique requires tracking how…

Programming Languages · Computer Science 2026-04-17 June Rousseau , Denis Carnier , Thomas Van Strydonck , Steven Keuchel , Dominique Devriese , Lars Birkedal

Programs for multiprocessor machines commonly perform busy waiting for synchronization. We propose the first separation logic for modularly verifying termination of such programs under fair scheduling. Our logic requires the proof author to…

Logic in Computer Science · Computer Science 2021-05-19 Tobias Reinhard , Bart Jacobs

Refinement transforms an abstract system model into a concrete, executable program, such that properties established for the abstract model carry over to the concrete implementation. Refinement has been used successfully in the development…

Logic in Computer Science · Computer Science 2021-10-27 Aurel Bílý , Christoph Matheja , Peter Müller

Properties such as provable security and correctness for randomized programs are naturally expressed relationally as approximate equivalences. As a result, a number of relational program logics have been developed to reason about such…

Logic in Computer Science · Computer Science 2024-12-04 Philipp G. Haselwarter , Kwing Hei Li , Alejandro Aguirre , Simon Oddershede Gregersen , Joseph Tassarotti , Lars Birkedal

We propose an approach for modular verification of programs that use relaxed-consistency atomic memory access primitives and fences. The approach is sufficient for verifying the core of Rust's Atomic Reference Counting (ARC) algorithm. We…

Programming Languages · Computer Science 2025-09-30 Bart Jacobs , Justus Fasse

We present a new soundness proof of Concurrent Separation Logic (CSL) based on a structural operational semantics (SOS). We build on two previous proofs and develop new auxiliary notions to achieve the goal. One uses a denotational…

Logic in Computer Science · Computer Science 2017-12-06 Pedro Soares , António Ravara , Simão Melo de Sousa

Cminor is a mid-level imperative programming language; there are proved-correct optimizing compilers from C to Cminor and from Cminor to machine language. We have redesigned Cminor so that it is suitable for Hoare Logic reasoning and we…

Programming Languages · Computer Science 2007-07-31 Andrew W. Appel , Sandrine Blazy

Go is a popular concurrent programming language thanks to its ability to efficiently combine concurrency and systems programming. In Go programs, a number of concurrency bugs can be caused by a mixture of data races and communication…

Programming Languages · Computer Science 2021-11-22 Julia Gabet , Nobuko Yoshida

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

Go is an increasingly-popular systems programming language targeting, especially, concurrent and distributed systems. Go differentiates itself from other imperative languages by offering structural subtyping and lightweight concurrency…

Programming Languages · Computer Science 2021-05-31 Felix A. Wolf , Linard Arquint , Martin Clochard , Wytse Oortwijn , João C. Pereira , Peter Müller

The vast number of interleavings that a concurrent program can have is typically identified as the root cause of the difficulty of automatic analysis of concurrent software. Weak memory is generally believed to make this problem even…

Logic in Computer Science · Computer Science 2013-01-09 Jade Alglave , Daniel Kroening , Michael Tautschnig

We propose a general framework to allow: (a) specifying the operational semantics of a programming language; and (b) stating and proving properties about program correctness. Our framework is based on a many-sorted system of hybrid modal…

Logic in Computer Science · Computer Science 2025-12-01 Ioana Leustean , Natalia Moanga , Traian Florin Serbanuta

The task of inferring logical formulas from examples has garnered significant attention as a means to assist engineers in creating formal specifications used in the design, synthesis, and verification of computing systems. Among various…

Logic in Computer Science · Computer Science 2025-06-04 Benjamin Bordais , Daniel Neider

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

Common approaches to concurrent programming begin with languages whose semantics are naturally sequential and add new constructs that provide limited access to concurrency, as exemplified by futures. This approach has been quite successful,…

Programming Languages · Computer Science 2023-06-22 Klaas Pruiksma , Frank Pfenning

Practically all programming languages allow the programmer to split a program into several modules which brings along several advantages in software development. In this paper, we are interested in the area of answer-set programming where…

Logic in Computer Science · Computer Science 2014-01-16 Tomi Janhunen , Emilia Oikarinen , Hans Tompits , Stefan Woltran

Go is a production-level statically typed programming language whose design features explicit message-passing primitives and lightweight threads, enabling (and encouraging) programmers to develop concurrent systems where components interact…

Programming Languages · Computer Science 2017-03-01 Julien Lange , Nicholas Ng , Bernardo Toninho , Nobuko Yoshida

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

Tabled logic programming is receiving increasing attention in the Logic Programming community. It avoids many of the shortcomings of SLD execution and provides a more flexible and often extremely efficient execution mechanism for logic…

Logic in Computer Science · Computer Science 2007-05-23 Sofie Verbaeten , Danny De Schreye , Konstantinos Sagonas

We propose a new concurrent model for imperative languages where concurrency occurs at a subprogram level. This model introduces a new {\it block sequential} statement of the form $#(G_1,\ldots,G_n)$ where each $G_i$ is a statement. This…

Programming Languages · Computer Science 2017-01-10 Keehang Kwon , Daeseong Kang