Skip to content
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

Incorrect handling of IF statements in pt.6 of DO proofs #25

Open
harrytallbelt opened this issue Oct 7, 2017 · 0 comments
Open

Incorrect handling of IF statements in pt.6 of DO proofs #25

harrytallbelt opened this issue Oct 7, 2017 · 0 comments
Labels

Comments

@harrytallbelt
Copy link
Owner

When proving a DO statement, we toss off all the inner loops of a loop.
This leads to IF statements proving problems, because we lose the conditions,
provided by the inner loop guards negations:
For example consider a loop body

x := -1;
do x < 0 -> ... od;
if x < 0 -> abort | ... fi

By throwing the inner loop out, we lose the knowledge that x will never be < 0 at IF.

We already have problems of this sort, for example proving matrix_search
with an incorrect inner loop initialisation command j := 1 yields not only the
correct error, but also errors in loop finalisation IF statement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant