finish Frama-C homework
This commit is contained in:
parent
97a81f159a
commit
0bbf6ffde1
8 changed files with 142 additions and 24 deletions
|
@ -3,10 +3,21 @@ int min_dist(int *tab, unsigned int n)
|
|||
{
|
||||
int min = abs(tab[0] - tab[1]);
|
||||
unsigned int i = 0;
|
||||
/*@
|
||||
loop invariant I1: \at(i, LoopEntry) <= i < n - 1;
|
||||
loop invariant I2: \exists integer k; (k == n - 1 ==> \at(min, LoopCurrent) >= min);
|
||||
loop assigns i, min;
|
||||
loop variant n - i;
|
||||
*/
|
||||
while (i < n - 1)
|
||||
{
|
||||
int min_i = abs(tab[i] - tab[i + 1]);
|
||||
unsigned int j = i + 2;
|
||||
/*@
|
||||
loop invariant J1: \at(j, LoopEntry) <= j < n;
|
||||
loop assigns i, j , min, min_i;
|
||||
loop variant n - j;
|
||||
*/
|
||||
while (j < n)
|
||||
{
|
||||
int d = abs(tab[i] - tab[j]);
|
||||
|
@ -19,4 +30,4 @@ int min_dist(int *tab, unsigned int n)
|
|||
i++;
|
||||
}
|
||||
return min;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue