‹ BackHN Continuity

Thread

Developing provably correct Rust code with Verus

164 points · 79 comments · Betelbuddy

  1. 63 · · focus · HN ↗
    If you found this interesting, you may also be interested to hear about some related projects with similar goals/scopes: Miri[0], Kani[1], and Creusot[2]. There looks to be some significant overlap between Verus, Kani, and Creusot but I've not used any of them so I'll refrain from trying to differentiate them.

    [0]<a href="https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;miri" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;miri

    [1]<a href="https:&#x2F;&#x2F;github.com&#x2F;model-checking&#x2F;kani" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;model-checking&#x2F;kani

    [2]<a href="https:&#x2F;&#x2F;github.com&#x2F;creusot-rs&#x2F;creusot" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;creusot-rs&#x2F;creusot

    1. gregwebs · · focus · HN ↗
      Miri: proves pre-defined properties, no changes to code other than adding a few annotations

      Kani: use in a test suite

      Creusot: annotations

      Verus: annotations or macro

      The macro system looks very nice if it doesn&#x27;t slow down the normal build.

      1. gregwebs · · focus · HN ↗
        AI tells me that code using the verus! macro everywhere would double in build time but if only used ocassionally the verus! macro would only increase build time by a few percent. The attribute annotation would basically be free, but there is a downside that loop invariants would be rejected by stable rustc.
Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.