argotorg / argotorg/solidity

[SMTChecker] CHC report loop invariants

Open
#10,788 3 comments 0 reactions 0 assignees View on GitHub
medium effort smt
Dominant language
C++
Stars
25.7k
Forks
6.2k
Avg merge
2d 19h
Merged PRs (30d)
29

Description

Depends on https://github.com/ethereum/solidity/issues/14325

Currently we support exporting contract and reentrancy invariants to the user. We should also export loop invariants. This means that in `Invariants.cpp` we need to add `loop_header` (or whatever the prefix used for loop header predicates is in CHC.cpp) to the search targets.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the dependency in issue #14325, then inspect Invariants.cpp and the loop-header predicate naming in CHC.cpp. Confirm how contract and reentrancy invariants are selected, add loop invariants to the same export targets, and verify that loop invariants are reported to users.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.