• Aucun résultat trouvé

Preuve de programmes Logique de Hoare

N/A
N/A
Protected

Academic year: 2022

Partager "Preuve de programmes Logique de Hoare"

Copied!
2
0
0

Texte intégral

(1)

Preuve de programmes Logique de Hoare

Exercice L’algorithme suivant calcule les entiers q et r t.q. q = x/y et q∗y+r=x. Prouver :

{x≥0∧y >0}

q:=0;

r:=x;

while r >= y do r := r - y;

q := q + 1;

done

{q∗y+r=x∧0≤r < y}

Correction:

On d´eroule l’algorithme avecx= 13 ety= 2:

q 0 1 2 3 4 5 6

r 13 11 9 7 5 3 1

On poseInv=q∗y+r=x∧r≥0. On prouve : 1. Avant le while:

{x≥0∧y >0}

q:= 0;

r:=x;

{Inv}={q∗y+r=x∧r≥0}

{x≥0∧y >0} ⇒

{x≥0} ≡

{x=x∧x≥0} ≡ {0∗y+x=x∧x≥0}

q:= 0;

{q∗y+x=x∧x≥0}

r:=x;

{q∗y+r=x∧r≥0}

1

(2)

2. Le while:

{Inv}={q∗y+r=x∧r≥0}

while r≥y do r:=r−y;

q:=q+ 1;

done

{Inv∧r < y}={q∗y+r=x∧0≤r < y}

{q∗y+r=x∧r≥0∧r≥y} ⇒ {q∗y+r=x∧r≥y} ≡ {(q∗y+y+r−y=x∧r≥y} ≡ {(q+ 1)∗y+r−y=x∧r−y≥0}

r:=r−y;

{(q+ 1)∗y+r=x∧r≥0}

q:=q+ 1;

{q∗y+r=x∧r≥0}

3. On en conclut par la r`egle de cons´equence

{x≥0∧y >0}

P rog

{q∗y+r=x∧0≤r < y}

2

Références

Documents relatifs

possibilit´es (la division par 2! correspond au fait que la d´ecomposition en produit de cycles `a supports disjoints est unique modulo l’ordre des cycles, et pour arranger

[r]

[r]

La proposition suivante montre qu'on peut écrire le PGDC de deux nombres comme une combinaison linéaire entière de ces deux nombres.. Lemme 9.1 (Lemme

– Sous cette même précondition, la valeur de len(t) − i à la fin du corps de la boucle est strictement plus petite qu’au début. Donc le

– Sous cette même précondition, la valeur de len(t)− i à la fin du corps de la boucle est strictement plus petite qu’au début. Donc le

[r]

Exercice 03 : Ecrire un algorithme qui demande un nombre de départ, et qui calcule sa