Verus - Verified Rust for low-level systems code by Andrea Lattuada - Rust Zürisee June 2023

Discover Verus, a verified Rust for low-level systems code that enables formal verification with linear types, Z3 solver, and pragmatic verification tools for complex systems code.

Key takeaways
  • Verus is a verified Rust for low-level systems code that uses linear types to enable formal verification.
  • It’s a pragmatic toolbox for verification, allowing you to write verification code alongside your implementation code.
  • Verus uses the SMT solver Z3 to prove the correctness of your code.
  • It’s designed to be efficient and scalable, allowing you to verify complex systems code.
  • Verus is built on top of Rust, leveraging its borrow checker and ownership model to ensure correctness.
  • It provides a way to specify postconditions and loop invariants, making it easier to verify concurrent programs.
  • Verus allows you to write proof functions that are similar to the implementation code, making it easier to understand and maintain.
  • It provides a way to reason about aliasing and data races, making it easier to write correct concurrent programs.
  • Verus is open-source and has a community-driven development process.
  • It’s being used to verify operating system kernels, file systems, and other complex systems code.
  • Verus is designed to be easy to use, with a focus on usability and efficiency.
  • It provides a way to automate verification, making it easier to catch bugs and ensure correctness.
  • Verus is built on top of the Z3 SMT solver, which is a powerful and widely-used tool for formal verification.
  • It’s being developed by researchers at the University of Zurich and the “Department of Computer Science” and is funded by the “Swiss National Science Foundation”.
  • Verus provides a way to verify the correctness of your code, making it easier to ensure the reliability and security of your systems.
  • It’s designed to be applicable to a wide range of systems code, from operating systems to file systems to device drivers.
  • Verus provides a way to specify and verify complex system behaviors, making it easier to ensure correctness in the presence of concurrency, parallelism, and other challenges.