-
Notifications
You must be signed in to change notification settings - Fork 30
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
State explosion checking for overflow/underflow #844
Comments
Ha, I tried to run the 4-variable version and it crashed after 7 hours:
|
My guess would be that this leads to too many control-flow paths: each time there's a |
That makes sense. Is there a way to solve in the proof this to make CN pass such a case? I guess if we just break out each |
That should work. Probably CN should let the user put pre/postconditions in arbitrary places, then one could use that to merge control-flow paths in CN's analysis. Another option, but that's a hack really, is to maybe replace |
Here's another example from @lwli11 where the code takes an excessively long time: #357 (comment) I would guess this is also caused by a control-flow path explosion. |
I don't know why this code takes longer and longer to verify depending on how many elements of the struct example_t. Here are the measurements we took so far, with 3 elements (as shown below) taking a reasonable time, but as we uncomment additional checks, the time to verify gets very long:
3 variables:
real 4m40.465s
user 0m8.705s
sys 0m3.681s
4 variables:
real 37m31.307s
user 1m11.905s
sys 0m30.957s
5 variables:
Killed
real 371m52.417s
user 8m14.805s
sys 3m15.159s
The text was updated successfully, but these errors were encountered: