A Hybrid Approach to Semi-automated Rust Verification

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Ayoun, Sacha-Élie, Denis, Xavier, Maksimović, Petar, Gardner, Philippa
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866913786809548800
author Ayoun, Sacha-Élie
Denis, Xavier
Maksimović, Petar
Gardner, Philippa
author_facet Ayoun, Sacha-Élie
Denis, Xavier
Maksimović, Petar
Gardner, Philippa
contents We propose a hybrid approach to end-to-end Rust verification where the proof effort is split into powerful automated verification of safe Rust and targeted semi-automated verification of unsafe Rust. To this end, we present Gillian-Rust, a proof-of-concept semi-automated verification tool built on top of the Gillian platform that can reason about type safety and functional correctness of unsafe code. Gillian-Rust automates a rich separation logic for real-world Rust, embedding the lifetime logic of RustBelt and the parametric prophecies of RustHornBelt, and is able to verify real-world Rust standard library code with only minor annotations and with verification times orders of magnitude faster than those of comparable tools. We link Gillian-Rust with Creusot, a state-of-the-art verifier for safe Rust, by providing a systematic encoding of unsafe code specifications that Creusot can use but cannot verify, demonstrating the feasibility of our hybrid approach.
format Preprint
id arxiv_https___arxiv_org_abs_2403_15122
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle A Hybrid Approach to Semi-automated Rust Verification
Ayoun, Sacha-Élie
Denis, Xavier
Maksimović, Petar
Gardner, Philippa
Programming Languages
We propose a hybrid approach to end-to-end Rust verification where the proof effort is split into powerful automated verification of safe Rust and targeted semi-automated verification of unsafe Rust. To this end, we present Gillian-Rust, a proof-of-concept semi-automated verification tool built on top of the Gillian platform that can reason about type safety and functional correctness of unsafe code. Gillian-Rust automates a rich separation logic for real-world Rust, embedding the lifetime logic of RustBelt and the parametric prophecies of RustHornBelt, and is able to verify real-world Rust standard library code with only minor annotations and with verification times orders of magnitude faster than those of comparable tools. We link Gillian-Rust with Creusot, a state-of-the-art verifier for safe Rust, by providing a systematic encoding of unsafe code specifications that Creusot can use but cannot verify, demonstrating the feasibility of our hybrid approach.
title A Hybrid Approach to Semi-automated Rust Verification
topic Programming Languages
url https://arxiv.org/abs/2403.15122