LOG4500
Travail Dirig´e 5
M´ethodes d´eductives de v´erification
Prof. John Mullins, Ph.D.
D´epartement de G´enie Informatique
´
Ecole Polytechnique de Montr´eal
D´ecembre 2004
1. Dans l’´etude de cas de la section 5.3 des notes de cours, il est d´emontr´e
que:
S1. {1}Somme Min {∀i,j (1 ≤i≤j≤n→s≤Si,j )}
Montrez que:
S2. {1}Somme Min {∃i,j (1 ≤i≤j≤n∧s=Si,j )}
2. L’algorithme Somme Min pr´esent´e `a la section 5.3 des notes de cours cal-
cule la somme d’une section de somme minimale mais ne fournit aucune
information sur la location de cette section dans le tableau. Adaptez
l’algorithme vu en classe pour remedier `a cela (votre algorithme ne de-
vrait faire encore qu’une seule passe du tableau).
3. L’algorithme suivant calcule l’exponentielle abde deux entiers aet b. Trou-
vez l’invariant de la boucle et prouvez la correction du programme.
{1}
x:= a;y:= b;z:= 1;
while ¬(y= 0) do
if impair(y)then
z:= z∗x;y:= y−1;
else x:= x∗x;y:= ydiv2
end
od
{z=ab}
4. Le progamme suivant calcule le PGCD de deux entiers xet y. Montrez:
1