human
Veuillez expliquer ce qu'est la "vérification formelle"
gpt
Dans le contexte des systèmes matériels et logiciels, la vérification formelle est l'acte de prouver ou de réfuter l'exactitude des algorithmes prévus sous-jacents à un système par rapport à une certaine spécification ou propriété formelle, en utilisant des méthodes mathématiques formelles.
La vérification formelle peut être utile pour prouver l'exactitude de systèmes tels que : les protocoles cryptographiques, les circuits combinatoires, les circuits numériques avec mémoire interne et les logiciels exprimés sous forme de code source.
La vérification de ces systèmes se fait en fournissant une preuve formelle sur un modèle mathématique abstrait du système, la correspondance entre le modèle mathématique et la nature du système étant par ailleurs connue par construction. Des exemples d'objets mathématiques souvent utilisés pour modéliser des systèmes sont : les machines à états finis, les systèmes de transition étiquetés, les réseaux de Petri, les systèmes d'addition de vecteurs, les automates temporisés, les automates hybrides, l'algèbre de processus, la sémantique formelle des langages de programmation tels que la sémantique opérationnelle, la sémantique dénotationnelle, l'axiomatique sémantique et logique de Hoare.