RefinedRust: A type system for high-assurance verification of rust programs

Gäher L, Sammler MJ, Jung R, Krebbers R, Dreyer D. 2024. RefinedRust: A type system for high-assurance verification of rust programs. Proceedings of the ACM on Programming Languages. 8(PLDI), 1115–1139.

Download (ext.)
OA https://doi.org/10.1145/3656422 [Published Version]

Journal Article | Published | English

Scopus indexed
Author
Gäher, Lennard; Sammler, Michael JoachimISTA; Jung, Ralf; Krebbers, Robbert; Dreyer, Derek
Abstract
Rust is a modern systems programming language whose ownership-based type system statically guarantees memory safety, making it particularly well-suited to the domain of safety-critical systems. In recent years, a wellspring of automated deductive verification tools have emerged for establishing functional correctness of Rust code. However, none of the previous tools produce foundational proofs (machine-checkable in a general-purpose proof assistant), and all of them are restricted to the safe fragment of Rust. This is a problem because the vast majority of Rust programs make use of unsafe code at critical points, such as in the implementation of widely-used APIs. We propose RefinedRust, a refinement type system—proven sound in the Coq proof assistant—with the goal of establishing foundational semi-automated functional correctness verification of both safe and unsafe Rust code. We have developed a prototype verification tool implementing RefinedRust. Our tool translates Rust code (with user annotations) into a model of Rust embedded in Coq, and then checks its adherence to the RefinedRust type system using separation logic automation in Coq. All proofs generated by RefinedRust are checked by the Coq proof assistant, so the automation and type system do not have to be trusted. We evaluate the effectiveness of RefinedRust by verifying a variant of Rust’s Vec implementation that involves intricate reasoning about unsafe pointer-manipulating code.
Publishing Year
Date Published
2024-06-20
Journal Title
Proceedings of the ACM on Programming Languages
Volume
8
Issue
PLDI
Page
1115-1139
ISSN
IST-REx-ID

Cite this

Gäher L, Sammler MJ, Jung R, Krebbers R, Dreyer D. RefinedRust: A type system for high-assurance verification of rust programs. Proceedings of the ACM on Programming Languages. 2024;8(PLDI):1115-1139. doi:10.1145/3656422
Gäher, L., Sammler, M. J., Jung, R., Krebbers, R., & Dreyer, D. (2024). RefinedRust: A type system for high-assurance verification of rust programs. Proceedings of the ACM on Programming Languages. Association for Computing Machinery. https://doi.org/10.1145/3656422
Gäher, Lennard, Michael Joachim Sammler, Ralf Jung, Robbert Krebbers, and Derek Dreyer. “RefinedRust: A Type System for High-Assurance Verification of Rust Programs.” Proceedings of the ACM on Programming Languages. Association for Computing Machinery, 2024. https://doi.org/10.1145/3656422.
L. Gäher, M. J. Sammler, R. Jung, R. Krebbers, and D. Dreyer, “RefinedRust: A type system for high-assurance verification of rust programs,” Proceedings of the ACM on Programming Languages, vol. 8, no. PLDI. Association for Computing Machinery, pp. 1115–1139, 2024.
Gäher L, Sammler MJ, Jung R, Krebbers R, Dreyer D. 2024. RefinedRust: A type system for high-assurance verification of rust programs. Proceedings of the ACM on Programming Languages. 8(PLDI), 1115–1139.
Gäher, Lennard, et al. “RefinedRust: A Type System for High-Assurance Verification of Rust Programs.” Proceedings of the ACM on Programming Languages, vol. 8, no. PLDI, Association for Computing Machinery, 2024, pp. 1115–39, doi:10.1145/3656422.
All files available under the following license(s):
Copyright Statement:
This Item is protected by copyright and/or related rights. [...]

Link(s) to Main File(s)
Access Level
OA Open Access

Export

Marked Publications

Open Data ISTA Research Explorer

Search this title in

Google Scholar