invariant with quantifier not kept in computed slice
ID0000448: This issue was created automatically from Mantis Issue 448. Further discussion may take place here.
Id | Project | Category | View | Due Date | Updated |
---|---|---|---|---|---|
ID0000448 | Frama-C | Plug-in > slicing | public | 2010-04-13 | 2014-02-12 |
Reporter | dpariente | Assigned To | Anne | Resolution | fixed |
Priority | normal | Severity | minor | Reproducibility | always |
Platform | - | OS | - | OS Version | - |
Product Version | Frama-C GIT, precise the release id | Target Version | - | Fixed in Version | Frama-C Carbon-20101201-beta1 |
Description :
On the following code:
void L (float u,int nn, float dabs[], float y) { int ii; /@ loop invariant (\forall integer k; 0<=k<ii ==> u<=dabs[k]); */ for (ii = nn-2; ii >= 0; ii--) *y = u - dabs[ii+1] * 2.0; //@slice pragma expr *y; }
analyzed with: frama-c -slicing-keep-annotations -slice-pragma L -slice-print -ocode L_sliced.c -main L -lib-entry l.c
the computed slice does not contain the invariant.
(Please note that the invariant annotation is not relevant nor provable, but just illustrates the problem met)