Saved in:
Bibliographic Details
Main Author: Jacobs, Bart
Format: Preprint
Published: 2026
Subjects:
Online Access:https://arxiv.org/abs/2601.13727
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866915740175564800
author Jacobs, Bart
author_facet Jacobs, Bart
contents 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 user-annotated preconditions, postconditions, and loop invariants written in a form of separation logic, and using a separation logic-based symbolic representation of memory. However, the tool itself, written in roughly 30K lines of OCaml code, has not been formally verified. Therefore, bugs in the tool could cause it to falsely report the correctness of the input program. We here report on an early result extending VeriFast to emit, upon successful verification of a Rust program, a Rocq proof script that proves correctness of the program with respect to a Rocq-encoded axiomatic semantics of Rust. This significantly enhances VeriFast's applicability in safety-critical domains. We apply hinted mirroring: we record key information from VeriFast's symbolic execution run, and use it to direct a replay of the run in Rocq.
format Preprint
id arxiv_https___arxiv_org_abs_2601_13727
institution arXiv
publishDate 2026
record_format arxiv
spellingShingle Foundational VeriFast: Pragmatic Certification of Verification Tool Results through Hinted Mirroring
Jacobs, Bart
Programming Languages
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 user-annotated preconditions, postconditions, and loop invariants written in a form of separation logic, and using a separation logic-based symbolic representation of memory. However, the tool itself, written in roughly 30K lines of OCaml code, has not been formally verified. Therefore, bugs in the tool could cause it to falsely report the correctness of the input program. We here report on an early result extending VeriFast to emit, upon successful verification of a Rust program, a Rocq proof script that proves correctness of the program with respect to a Rocq-encoded axiomatic semantics of Rust. This significantly enhances VeriFast's applicability in safety-critical domains. We apply hinted mirroring: we record key information from VeriFast's symbolic execution run, and use it to direct a replay of the run in Rocq.
title Foundational VeriFast: Pragmatic Certification of Verification Tool Results through Hinted Mirroring
topic Programming Languages
url https://arxiv.org/abs/2601.13727