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 emontr´e
que:
S1. {1}Somme Min {∀i,j (1 ijnsSi,j )}
Montrez que:
S2. {1}Somme Min {∃i,j (1 ijns=Si,j )}
2. L’algorithme Somme Min pr´esene `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:= zx;y:= y1;
else x:= xx;y:= ydiv2
end
od
{z=ab}
4. Le progamme suivant calcule le PGCD de deux entiers xet y. Montrez:
1
{1}
a:= x;b:= y;
z:= 0;
while ¬(a=b)do
if a > b then a:= ab
else b:= ba
end
od
{PGCD(x,y) = a}
Suggestion: Utilisez les relations suivantes:
(a) Si u > v alors P GCD(u, v) = P GCD(uv, v)
(b) P GCD(u, v) = P GCD(v, u)
(c) P GCD(u, u) = u
5. Le binˆome de Newton bin(n, k) se d´efinit comme suit:
bin(n, k) = 1 si k=n
bin(n, k + 1) (k+ 1) div (nk) sinon
alors soit l’algorithme suivant:
{nk0}
x:= n;y:= 1; b:= 1;
while x6=kdo
b:= bxdiv y;
x:= x1; y:= y+ 1
od
{b=bin(n,k)}
Montrer la correction de l’algorithme.
6. Montrez la correction totale de l’algorithme d’Euclide:
{y>0}
q:= 0; r:= x;
while (ry)do
r:= ry;q:= q+ 1
od
{qy+r=x0r<y}
2
1 / 2 100%