argotorg / argotorg/hevm

hevm loop heuristic triggers even when using code without loops

Open
#854 21 comments 1 reaction 1 assignee Claimed by @msooseth View on GitHub
blocked
Dominant language
Haskell
Stars
358
Forks
79
Avg merge
1d 1h
Merged PRs (30d)
6

Description

After #853 is fixed, another issue related with the loop heuristic was found: it can be confused to detect loops where there is nothing like that.

To reproduce, clone [the abdk verification repository](https://github.com/gustavo-grieco/abdk-math-64.64-verification) and run the exploration using `make verify-hevm T=prove_inv_identity`. It will explore certain number of states. However, if you modify the Makefile to use `--loop-detection-heuristic StackBased` in the hevm call, you will see the number of states explored is around half of them (and the results will be available much faster!). Interestingly enough, [the code has no loops at all](https://github.com/gustavo-grieco/abdk-math-64.64-verification/blob/main/src/ABDKMath64x64PropertyTests.sol#L1025-L1035) (but some function calls are repeated).

Should we have a "no loop heuristic mode" ?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.