I’m interested in understanding the formal verification capabilities that are built into the Move programming language, particularly for theoretical mathematical research and proofs. Specifically, I’m looking to understand:
-
What specific properties can be formally verified using Move’s built-in verification system? I’m curious about both the practical smart contract properties and any theoretical mathematical properties.
-
How does Move’s verification system compare to established theorem provers like Coq and Lean? What are the key differences in their approaches and capabilities?
-
What is the underlying logical foundation of Move’s verification system? I’m interested in understanding the theoretical framework it’s built upon.
-
Can the system be used to prove arbitrary mathematical theorems, or is it primarily focused on program correctness properties?
If anyone has experience working with Move’s formal verification system or knows of relevant research papers/documentation that explore these aspects in depth, I’d greatly appreciate the references.
Note: I’m particularly interested in understanding how this could be applied to pure mathematical research beyond just smart contract verification.
Would anyone here be able to shed some light on these technical aspects of Move’s verification system?