-
Notifications
You must be signed in to change notification settings - Fork 6
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
Verification error when verifying fully specified correct program #62
Comments
For list_max.vpr, updating acyclic as follows: On the other hand, adding
The following .vpr file gets generated from the updated list_max.c0:
I am looking into this issue as well. There is no unfold acyclic(y) at the beginning of the while loop body in findmax() in the generated .vpr file. This might be because predicates in loop invariants before entering loops are not treated iso-recursively (mentioned in Gradual C0 paper section 4.3.7) to my understanding. I'm not sure, I may be missing something. |
The second issue (with list_max.c0) turned out to be more straightforward. There is a typo in line 57 |
Update: The root cause of the issue appears to be the same as #33 - requiring permission to a predicate to match exactly, so if a predicate has permission greater than 1 in the heap, then consuming it will always fail. The following program is a minimal failing example:
The reason why adding When folding It fails because if |
Verifying the attached program results in the following error:
The same error occurs for both versions: the
.c0
file with gvc0 and the.vpr
file with silicon-gv.The program verifies correctly on Viper example page and the VSCode Viper IDE.
The text was updated successfully, but these errors were encountered: