-
Notifications
You must be signed in to change notification settings - Fork 71
Open
Description
We need an API or example on how to execute more than transaction with symbolic data. Typically, when you are doing invariant development you define:
- State transaction functions: take parameters and change the state.
- Invariants: (usually) take no parameters and run asserts.
Right now hevm/echidna cannot use symbolic execution directly with these since:
- State transaction functions can be explored, but they have no assertions, so nothing is really solved.
- Invariants can be explored, but they will only execute concretely as they have no symbolic inputs (except block time/number).
We need an example on how to use the current API or define a new one (one example is listed here, but it is very hacky). We can look on how halmos/certora is doing it. We don't need to start optimizing it right now (e.g. construct the CFG and discard which functions we could discard), but instead we need way to do it manually first.
Metadata
Metadata
Assignees
Labels
No labels