-
Notifications
You must be signed in to change notification settings - Fork 9
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
Investigate inference of loop invariants using merge-nodes
functionality
#448
Comments
|
@qian-hu I don't quite see the nodes mentioned in the merges in the KCFG output there. Node 19 appears to be a target node, and node 13 and 14 are on either side of the same branch. Nodes 26 and 31 don't exist. Can we see the original KCFG output as well? |
Also, what is the process needed to go from the original merged node to the invariant there? What manual steps need to be taken? |
Another thought is this. The invariant has the form:
The But every loop should have structure |
I've pushed an update to the |
Related: runtimeverification/k#4425 |
Here #444, we update the
merge-nodes
functionality to allow specifying loop heads in looping code. Here, we have an example that uses a loop invariant to allow verifying a small piece of code with a simple loop: #369.The
merge-nodes
functionality should help us in identifying the loop invariant needed in order to verify such simple loops. We probably can't infer the entire loop invariant, but at least we can make an initial guess ath the correct LHS of the loop to use.Here, we should:
merge-nodes
functionality on the loop heads to produce a new state taht is more general than teh loop heads.The text was updated successfully, but these errors were encountered: