The loop invariant in a correctness witness generated by UAutomizer might contain out-of-bound program variables,
making the invariant syntactically incorrect.
Here's an example witness obtained by running the following command:
The invariant refer to variables var_20 and var_25,
which are declared inside the loop at line 68 and 75, respectively.
Therefore, the invariant is syntactically wrong.
Thank you for your report! I just fixed this problem, we did not handle the scope of for-loops fully correct, as a for-loop has usually two scopes: the initializer and the body.
Basic Info
cal57.c
with propertyunreach-call.prp
Description
The loop invariant in a correctness witness generated by UAutomizer might contain out-of-bound program variables, making the invariant syntactically incorrect.
Here's an example witness obtained by running the following command:
This is the invariant generated for the loop at line 42 of the program:
The invariant refer to variables
var_20
andvar_25
, which are declared inside the loop at line 68 and 75, respectively. Therefore, the invariant is syntactically wrong.