finish Frama-C homework

This commit is contained in:
Yorick Barbanneau 2023-05-09 21:48:51 +02:00
parent 97a81f159a
commit 0bbf6ffde1
8 changed files with 142 additions and 24 deletions

View file

@ -9,7 +9,7 @@ int max_dist(int *tab, unsigned int n)
/*@
loop assigns i, max, min;
loop invariant I1: \at(i, LoopEntry) <= i <= n;
loop invariant I2: min <= max;
loop invariant I2: INT_MIN /2 <= min <= max <= INT_MAX/2;
loop invariant I3: \forall integer j; (\at(i, LoopEntry) <= j < i ==> max >= tab[j] >= min);
loop invariant I4: \exists integer j; ( 0 < j < i ==> max == tab[j]);
loop invariant I5: \exists integer j; ( 0 < j < i ==> min == tab[j]);
@ -23,5 +23,9 @@ int max_dist(int *tab, unsigned int n)
max = tab[i];
i++;
}
//@ assert (INT_MIN / 2) <= min;
//@ assert min <= (INT_MAX / 2);
//@ assert (INT_MIN / 2) <= max;
//@ assert max <= (INT_MAX / 2);
return max - min;
}