Verifica formale
# Verifica formale

Nell'ambito dei sistemi software e hardware la verifica formale è l'azione di provare o smentire matematicamente la correttezza degli algoritmi di un sistema controllando che rispettino specifiche formali o proprietà, usando metodi formali matematici.

Risulta utile per fornire la correttezza di sistemi come: protocolli crittografici, circuiti combinatori, circuiti digitali con memoria interna e software espressi in codice sorgente.

La verifica di questi sistemi è fatta fornendo una prova formale di un modello matematico astratto del sistema, la corrispondenza tra il modello matematico e la natura del sistema è conosciuta sin dalla costruzione dello stesso. Nei modelli si usano di solito: macchina a stati finiti, sistema a transizione di stati, rete di Petri, Sistema addizionale di vettori, teoria degli automi temporizzata, teoria degli automi ibrida, calcolo algebrico, semantica formale dei linguaggi di programmazione come la semantica operazionale, la semantica denotazionale, la semantica assiomatica e la logica di Hoare.

