You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
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
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 thecorrect error, but also errors in loop finalisation IF statement.
The text was updated successfully, but these errors were encountered: