927 -- Exemples de preuve d’algorithme : correction, terminaison.
De AgregmathKL
Révision de 21 octobre 2014 à 08:39 par Mathias Millet (discuter | contributions)
Sommaire
Plan Olivier et Yon (2013)
Plan
Petite intro (mentionner le problème de preuve de correction et terminaison des boucles).
Preuves informelles [Cormen]
Étude de la correction
- Invariant de boucle, exemple du tri insertion. Remarque que certains algorithmes incorrects sont intéressants (ex : Soloway-Strassen).
- Étude de la terminaison. Problème indécidable. Ensembles bien fondés. Variant de boucle.
- Exemple complet : Algorithme de Hopcroft [Carton + preuve modifiée] (DEV). Écrire l'algo sur le plan. Ne prouver que la correction si trop long.
Preuves formelles [Winskel]
- Langage IMP : Syntaxe, définitions.
- Sémantique dénotationnelle : sémantique des commandes surtout, en particulier du while.
- Remarque : a priori on pourrait faire la sémantique opérationnelle aussi.
- Règles de Hoare : langage d'assertions, triplet de Hoare. Exemple pour le calcul de la factorielle (autre DEV possible a priori).
- Correction des règles (DEV).
- Plus faibles préconditions
Développements
Proposés
Autres possibles
- Correction du calcul de la factorielle avec les règles de Hoare
Références
- Cormen et al.
- Carton
- Winskel