‹ BackHN Continuity

Thread

Developing provably correct Rust code with Verus

164 points · 79 comments · Betelbuddy

  1. jdw64 · · focus · HN ↗
    That's fascinating. Does it mean it verifies mathematical proofs directly within the Rust code? Does anyone know the underlying principles of how this is possible?
    1. Jtsummers · · focus · HN ↗
      <a href="https:&#x2F;&#x2F;verus-lang.github.io&#x2F;verus&#x2F;publications-and-projects&#x2F;" rel="nofollow">https:&#x2F;&#x2F;verus-lang.github.io&#x2F;verus&#x2F;publications-and-projects... - The papers here go into their implementation. They take the proof statements and information about the program and turn it into an SMT problem (and run it through Z3 if I read correctly) and then they use that to prove the properties of the program.

      SPARK&#x2F;Ada and Dafny work similarly, and have good documentation if you want to try your hand at something with a (presently) better set of documentation.

      <a href="https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262546232&#x2F;program-proofs&#x2F;" rel="nofollow">https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262546232&#x2F;program-proofs&#x2F; - Dafny book, pretty good tutorial on the topic

      <a href="https:&#x2F;&#x2F;learn.adacore.com&#x2F;courses&#x2F;intro-to-spark&#x2F;chapters&#x2F;01_Overview.html#" rel="nofollow">https:&#x2F;&#x2F;learn.adacore.com&#x2F;courses&#x2F;intro-to-spark&#x2F;chapters&#x2F;01... - Free tutorial for SPARK

      1. jdw64 · · focus · HN ↗
        thanks!
Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.