runtimeverification / michelson-semantics

A K semantics of Tezos' Michelson language.
Other
17 stars 6 forks source link

Dexter engagement #188

Closed ehildenb closed 3 years ago

ehildenb commented 3 years ago

First, we will write "basic" properties for each of the following entrypoint functions, where basic properties specify the storage update and the sequence of operations to follow. These basic properties will be written based on our understanding of the LIGO code, but they will be verified against the Michelson code using our K Michelson semantics. Thus, verifying these basic properties will essentially prove the correctness of the LIGO-to-Michelson compilation.

Then, we will write contract invariant properties that are needed to prove certain desired properties over arbitrary sequences of entrypoint functions, including inter-contract function calls. Examples of such desired properties include (but not limited to):

In the first week, we will review the code to identify such properties (for both basic properties and contract invariant properties), and will communicate the Dexter team to make sure that the properties capture their intention of the code. Then, we will verify that the properties are satisfied by the Michelson code, so that we do not need to trust the LIGO-to-Michelson compiler for the validity of our verification result. We will immediately report any concerns or issues, if any, that are found during the verification process. More properties could be additionally identified as we make a progress. We will identify and verify as many properties as time allows.