We are continuing our formal verification work for the implementation of the type-checker of the Move language in the ๐งย Sui blockchain. We verify a manual translation in the proof system ๐ย Coq of the ๐ฆย Rust code of the Move checker as available on GitHub.
In this blog post, we present in detail the verification of a particular function AbstractStack::pop_eq_n
that manipulates ๐ย stacks of types to show that it is equivalent to its naive implementation.
All the code presented here is on our GitHub at github.com/formal-land/coq-of-rust ๐งโ๐ซ.