1
Chapitre 11 : Vérification d’un algorithme
•Problème général:
Supposons qu’un algorithme Aeffectue un certain
traitement sur des données, il faut prouver
mathématiquement que
• étant donné les hypothèses sur ces données
•Acalcule effectivement le bon résultat
•Pour faire une preuve mathématique il faut:
– Pouvoir formaliser
•les hypothèses,
•le résultat escompté
• Et de façon plus générale l’état d’un programme n’importe où lors
de l’exécution
– Avoir une démarche mathématique pour faire la preuve.
2
Le problème de la preuve de programmes
•Pour cela,
– on s’aide de la logique des prédicats (ou logique du premier
ordre).
– un programme sera vu comme un « transformateur » de
formules logiques.
•Exemple: le « formule » suivante : {x=3} x=x+2 {x=5}
Etat avant
l’exécution Etat après
l’exécution
se lit: si x vaut 3 avant l’instruction x=x+2,
alors après l’instruction x vaut 5
Attention ici x=3 est
une formule logique
vraie si x vaut 3; ce n’est
pas une assignation C++ !!
3
Le problème de la preuve de programmes
•Attention: toute formule logique peut a priori être vrai ou fausse; ainsi
on peut voir que
–{x=3} x=x+2 {x=5} est vraie
–{x=0} x=x+2 {x=5} est fausse
• Le problème de la preuve de programme sera de vérifier si la
«formule»:
{hypothèses de départ} Algorithme {résultat}
est bien vraie
4
Rappel de logique: le calcul des propositions
• Syntaxe:
– Soit un ensemble Pde propositions p, q, r, …
– L’ensemble des formules fpossibles en logique
des propositions est :
f ::= p (pour n’importe quelle proposition p)
f ::=
!
f
f ::= f op f
f ::= ( f )
avec op ::=
v
|
|
f
|
a
|
j
ou
inclusif et
implications
• vers le droite
• vers la gauche
• double
}
négation
::=
signifie
peut être
réécrit en
|
signifie ou
5
Exemples de formules du calcul des propositions
–p
(q
f
r)
–p
j!
r
1 / 24 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!