Vérification formelle

Technique utilisée pour s'assurer qu'un système est conforme à sa spécification. Surtout (et presqu'exclusivement) employée dans les domaines de la micro-électronique et de la conception des logiciels.

La vérification formelle consiste soit à s'assurer que des propriétés spécifiques sont bien respectées par le système construit, soit à s'assurer que deux systèmes sont fonctionnellement équivalents. Contrairement à la vérification traditionnelle basée sur l'expérimentation, la vérification formelle est basée sur la démonstration logique ou mathématique.

Sommaire

Exemple

Tout le monde connaît l'égalité (a + b)2 = a2 + b2 + 2ab. Comment vérifier que cette égalité est juste ?

Par vérification traditionnelle, il faudrait prendre toutes les valeurs possibles de a, les croiser avec toutes les valeurs possibles de b, et pour chaqe couple, calculer (a + b)2, puis a2 + b2 + 2ab, et s'assurer que l'on obtient le même résultat. Bien entendu, si les domaines de a et de b sont grands, cette vérification peut être très longue. Et si les domaines sont infinis (par exemple les réels), cette vérification est infinie.

Par vérification formelle, on n'utilise que des valeurs symboliques et on applique des règles connues. Ici, les règles connues seraient:

En se servant de ces règles et en partant de (a + b)2, on arrive facilement à trouver a2 + b2 + 2ab.

Différentes techniques

La vérification comprend plusieurs techniques, souvent complémentaires.

Principaux outils

Seuls les principaux outils de vérification formelle non commerciaux sont listés ci-dessous.

Voir aussi

See also: Vérification formelle, Coq (logiciel), Démonstration, Induction, Logiciel, Logique, Mathématique, Micro-électronique, Méthode formelle (informatique), PVS