The Creusot Environment for the Deductive Verification of Rust Programs
Résumé
Rust is a fairly recent programming language for system programming, bringing static
guarantees of memory safety through a strong ownership policy. This feature opens promising
advances for deductive verification of Rust code, which aims at proving the conformity of some
code with respect to a specification of its intended behavior. In this report we present Creusot,
a tool for the formal specification and deductive verification of Rust programs.
There are two main original features in the approach implemented in Creusot. First, Creusot’s
specification language features a notion of prophecies, which is central for the specification of
behavior of programs performing memory mutation. Prophecies also permit efficient automated
reasoning for verifying about such programs.
Rust provides advanced abstraction features based on a notion of traits, extensively used in the
standard library and in user code. The support for traits is the second main feature of Creusot,
because it is at the heart of its approach, in particular for providing complex abstraction of the
functional behavior of programs.
Origine | Fichiers produits par l'(les) auteur(s) |
---|