runtimeverification / runtimeverification/kontrol
Use structured symbolic storage with `symbolicStorage`/`--symbolic-storage`
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 122
- Forks
- 16
- PR merge metrics
- No merged PRs in 30d
Description
PR https://github.com/runtimeverification/kontrol/pull/571 by @anvacaru adds support for preserving storage fields in otherwise symbolic storage for contracts during CSE. As discussed today, we can perhaps do the same thing when making contracts' storage symbolic during the execution; it is currently done via symbolicStorage(address) cheatcode, but it might be easier to do through introducing a CLI argument --symbolic-storage — that would probably mean that all contracts getting deployed during the execution would have symbolic storage by default.
That would make constraints more compact and readable as that'll substitute, e.g., SF_C:Int instead of #lookup ( CONTRACT_STORAGE:Map , 0 ), which might bring usability and performance improvements. That would, however, require extending support for more storage field types than is present in https://github.com/runtimeverification/kontrol/pull/571.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review PR 571 and the existing symbolicStorage(address) cheatcode first, then trace how contracts are made symbolic during execution and how CLI options are wired. Done means supporting a --symbolic-storage mode with structured symbolic storage and extending support for the required storage field types.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100