-
Notifications
You must be signed in to change notification settings - Fork 43
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
Interprocedural verification enhancement #244
Conversation
Thanks! |
And formatting can be done via |
.changeVars(reverseLookup + additionalLookup) | ||
val tempLookup = if (i > 0) getTempLookup(trace.actions[i - 1].edge.label).entries | ||
.associateBy({ it.value }) { it.key } else emptyMap() | ||
val precFromRef = refToPrec.toPrec(refutation, i).changeVars(tempLookup) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Could you please look at the tests? For some reason they take forever now (47 minutes and still going): https://github.com/ftsrg/theta/actions/runs/6935056406?pr=244
The problem with the non-terminating multithreaded test is caused by removal of general parameters from the precision here (reverseLookup
was deleted). This was necessary for recursive tasks, where the concrete variable instances of different procedure calls are needed in the precision in order to successfully verify them. This seems to cause problems for multithreaded tasks though, where we have instances of different threads. As a quick fix, we could omit reverseLookup
when verifying recursive tasks and use it otherwise. We should discuss how to proceed on the long-term.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for looking into it! I think we should discuss the next steps later, in person.
Unfortunately, regression test results are not too good: 339 tasks that were previously solved now throw an error. I've sent you the files for these results. unreach-call new problems
|
Regression tests are done, everything seems OK, thanks! Merging. |
This PR contains a way of applying abstraction to location stacks, in order to reduce the size of the state space in interprocedural verification.