Add FramaC TDM

This commit is contained in:
Yorick Barbanneau 2023-04-30 21:36:12 +02:00
parent 713e8d12c4
commit 56e86b4b20
9 changed files with 606 additions and 0 deletions

View file

@ -0,0 +1,14 @@
#include <limits.h>
#include "abs.h"
/*
Le résultat doit être une valeur v telle que il existe i et j telle que v est t[i]-t[j], et que cest le minimum pour lensemble des indices i des maximum pour les indices j des abs(t[i]-t[j]).
Une précondition peu évidente à trouver vous est spécifiée (elle vient de lutilisation de abs, et empêche de prouver un seul invariant, donc je préfère vous la donner).
De même, la post-condition principale vous est donnée. Commencez par la démontrer, puis, comme dans les exercices précédents, observez que ce nest pas suffisant et donnez et démontrez la post-condition manquante.
*/
/*@
requires \forall integer i; 0 <= i < n ==> INT_MAX > tab[i] >= 0;ensures \forall integer l; 0 <= l < n ==> (\exists integer b; 0 <= b < n && \forall integer k; 0 <= k < n ==> abs(tab[l]-tab[b]) >= abs(tab[l] - tab[k]) && \result <= abs(tab[l]-tab[b]));
*/
int diameter(int *tab, unsigned int n);