Replies: 1 comment
-
In short the answer is to add The full answer is a bit longer. Unlike many traditional verification tools, Creusot doesn't really have a notion of 'post-state', it views Rust functions as affine functions which consume their arguments, meaning If we write a function Naturally we can ask ourselves how this can generalize to an arbitrary type, potentially containing mutable borrows (and thus propheties)? well we do it via the In the case of |
Beta Was this translation helpful? Give feedback.
-
Quoting from an email conversation (with permission) with @boulme:
The issue was figuring out how to specify a function which didn't call the closure and ensure that we can prove that any mutable captured variables are changed.
Beta Was this translation helpful? Give feedback.
All reactions