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

Experiments in verification with Prusti #2091

Closed
adizere opened this issue Apr 12, 2022 · 2 comments
Closed

Experiments in verification with Prusti #2091

adizere opened this issue Apr 12, 2022 · 2 comments
Assignees
Labels
O: code-hygiene Objective: cause to improve code hygiene
Milestone

Comments

@adizere
Copy link
Member

adizere commented Apr 12, 2022

Ref: #1694 and the discussion therein.

@adizere adizere added the O: code-hygiene Objective: cause to improve code hygiene label Apr 12, 2022
@adizere adizere added this to the v0.15.0 milestone Apr 12, 2022
@adizere adizere self-assigned this Apr 12, 2022
@adizere adizere moved this to Backlog in IBC-rs: the road to v1 Apr 12, 2022
@adizere adizere linked a pull request Apr 12, 2022 that will close this issue
@seanchen1991
Copy link
Contributor

This seems like really interesting work. I am a bit curious whether there is overlap between using prusti to verify ibc-rs vs. the MBT and integration test work that is currently being done. Do they complement one another or does one obviate the other?

I don't actually expect anyone to have answers to this, just noting some preliminary thoughts down here 🙂

@adizere
Copy link
Member Author

adizere commented Apr 21, 2022

This seems like really interesting work. I am a bit curious whether there is overlap between using prusti to verify ibc-rs vs. the MBT and integration test work that is currently being done. Do they complement one another or does one obviate the other?

I would expect the two approaches to complement each other. In my current understanding:

  • Prusti can help with verification of methods via local invariants. It looks to me like the approach (Verification with Prusti #1694) relies on pre- and post-condition specification of program variables;
  • I'd expect MBT and integration tests complement this by being able to reason about the behavior of an execution of the whole system (instead of single methods), beyond the relayer, so it would be able to look whether the execution of certain relayer operations resulted in the intended I/O side-effects (e.g., balances increasing, retrying, timeouts).

@adizere adizere closed this as completed Apr 21, 2022
Repository owner moved this from Backlog to Closed in IBC-rs: the road to v1 Apr 21, 2022
@adizere adizere modified the milestones: v0.15.0, v0.14.0 Apr 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
O: code-hygiene Objective: cause to improve code hygiene
Projects
No open projects
Status: Closed
Development

Successfully merging a pull request may close this issue.

2 participants