Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for formal verification tools #119

Open
1 of 3 tasks
nielstron opened this issue Apr 4, 2023 · 1 comment
Open
1 of 3 tasks

Add support for formal verification tools #119

nielstron opened this issue Apr 4, 2023 · 1 comment
Labels
enhancement New feature or request

Comments

@nielstron
Copy link
Contributor

nielstron commented Apr 4, 2023

Nagini is a formal verification tool that is able to analyze python. It can be used to annotate existing contract functions, which would simply be ignored by the opshin compiler. Further, it needs to be checked whether Nagini can be tweaked to support the used dataclasses, as well as whether the threading logic can be used to leverage a temporal-logic style analysis of the smart contracts in context.

  • allow import of nagini contract primitives --> not executable anyways, needs to be removed by rewriting
  • check support for dataclasses
  • explore temporal-logic style analysis using Nagini

Further references are in the wiki: https://github.com/marcoeilers/nagini/wiki

@nielstron nielstron added the enhancement New feature or request label Apr 4, 2023
@nielstron
Copy link
Contributor Author

nielstron commented Apr 5, 2023

Another alternative for formal verification could be employing deal

  • allow import of deal contract primitives
  • check support for dataclasses

@nielstron nielstron changed the title Add support for formal verification tool Nagini Add support for formal verification tools Apr 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant