tweag / pirouette

Language-generic workbench for building static analysis
MIT License
47 stars 2 forks source link

Contracts of the `plutus-use-cases` folder #23

Closed GuillaumeGen closed 2 years ago

GuillaumeGen commented 3 years ago

Pirouette should be able to handle all the contracts in the folder plutus-use-cases which use the StateMachine library. The branch https://github.com/GuillaumeGen/plutus/tree/gg/flat-generation allows to generate all the flat files.

The steps to handle such a contract are:

  1. Generate a flat file,
  2. Identify the transition function,
  3. Put matching on the user input at the head of the term,
  4. Write a skeleton for the file,
  5. A simple wrong invariant is disproved by TLA+.

One could add a step:

  1. A refinement has been written, allowing us to catch errors introduced in the contact. But we do not intend to write such a refinement for the eight contracts.
VictorCMiraldo commented 2 years ago

As we're pivoting the overall project; I think this issue is outdated and will close it.