English
Related papers

Related papers: Bringing Iris into the Verified Software Toolchain

200 papers

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

VeriFast is a prototype tool based on separation logic for modular verification of C and Java programs. We are in the process of adding support for C++. In this report, we describe the features of C++ for which we added support so far, as…

Logic in Computer Science · Computer Science 2022-12-29 Niels Mommen , Bart Jacobs

The Rust programming language provides a powerful type system that checks linearity and borrowing, allowing code to safely manipulate memory without garbage collection and making Rust ideal for developing low-level, high-assurance systems.…

Logic in Computer Science · Computer Science 2023-03-14 Andrea Lattuada , Travis Hance , Chanhee Cho , Matthias Brun , Isitha Subasinghe , Yi Zhou , Jon Howell , Bryan Parno , Chris Hawblitzel

Many foundational program verification tools have been developed to build machine-checked program correctness proofs, a majority of which are based on Hoare logic. Their program logics, their assertion languages, and their underlying…

Programming Languages · Computer Science 2023-10-27 Zhongye Wang , Qinxiang Cao , Yichen Tao

We show how support for information-flow security proofs could be added on top of the Verified Software Toolchain (VST). We discuss several attempts to define information flow security in a VST-compatible way, and present a statement of…

Logic in Computer Science · Computer Science 2017-09-18 Samuel Gruetter , Toby Murray

VeriFast is a powerful tool for verification of various correctness properties of C programs using symbolic execution. However, VeriFast itself has not been verified. We present a proof-of-concept extension which generates a correctness…

Logic in Computer Science · Computer Science 2021-10-22 Stefan Wils , Bart Jacobs

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

Confidential computing is a key technology for isolating high-assurance applications from the large amounts of untrusted code typical in modern systems. Existing confidential computing systems cannot be certified for use in critical…

Cryptography and Security · Computer Science 2023-11-02 Wojciech Ozga , Guerney D. H. Hunt , Michael V. Le , Elaine R. Palmer , Avraham Shinnar

VeriFast is a leading tool for the modular formal verification of correctness properties of single-threaded and multi-threaded C and Rust programs. It verifies a program by symbolically executing each function in isolation, exploiting…

Programming Languages · Computer Science 2026-01-21 Bart Jacobs

Rust is a programming language that combines memory safety and low-level control, providing C-like performance while guaranteeing the absence of undefined behaviors by default. Rust's growing popularity has prompted research on safe and…

Programming Languages · Computer Science 2024-05-28 Aidan Z. H. Yang , Yoshiki Takashima , Brandon Paulsen , Josiah Dodds , Daniel Kroening

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

VeriFast is a powerful tool for verification of various correctness properties of C programs using symbolic execution. However, VeriFast itself has not been verified. We present a proof-of-concept extension which generates a correctness…

Logic in Computer Science · Computer Science 2023-08-31 Stefan Wils , Bart Jacobs

{log} (read 'setlog') was born as a Constraint Logic Programming (CLP) language where sets and binary relations are first-class citizens, thus fostering set programming. Internally, {log} is a constraint satisfiability solver implementing…

Logic in Computer Science · Computer Science 2026-03-13 Maximiliano Cristiá , Alfredo Capozucca , Gianfranco Rossi

Rust aims to be a safe programming language applicable to systems programming applications. In particular, its type system has strong guardrails to prevent a variety of issues, such as memory safety bugs and data races. However, these…

Programming Languages · Computer Science 2024-10-04 Alex Le Blanc , Patrick Lam

RustMC is a stateless model checker that enables verification of concurrent Rust programs. As both Rust and C/C++ compile to LLVM IR, RustMC builds on GenMC which provides a verification framework for LLVM IR. This enables the automatic…

Programming Languages · Computer Science 2025-02-11 Oliver Pearce , Julien Lange , Dan O'Keeffe

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

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

Most automated program verifiers for separation logic use either symbolic execution or verification condition generation to extract proof obligations, which are then handed over to an SMT solver. Existing verification algorithms are…

Programming Languages · Computer Science 2024-05-28 Marco Eilers , Malte Schwerhoff , Peter Müller

We propose an approach for modular verification of programs written in an object-oriented language where, like in C++, the same virtual method call is bound to different methods at different points during the construction or destruction of…

Programming Languages · Computer Science 2023-07-18 Niels Mommen , Bart Jacobs

Static verification is a powerful method for enhancing software quality, but it demands significant human labor and resources. This is particularly true of static verifiers that reason about heap manipulating programs using an ownership…

Software Engineering · Computer Science 2025-01-06 Wen Fan , Marilyn Rego , Xin Hu , Sanya Dod , Zhaorui Ni , Danning Xie , Jenna DiVincenzo , Lin Tan
‹ Prev 1 2 3 10 Next ›