Verificación formal de programas

Definición

Uso de especificaciones matemáticas y reglas lógicas para demostrar que un programa satisface propiedades para todos los estados de entrada permitidos.

Intuición

Una prueba ordinaria ejecuta algunos ejemplos; la verificación formal razona sobre el conjunto completo descrito por la precondición. La conclusión depende tanto del código como de la especificación elegida.

Formulación

Para un programa y una especificación , se busca demostrar:

Si además toda ejecución que parte de termina, se obtiene corrección total.

Ejemplo mínimo

entrada n con n >= 0
r <- raiz(n)
salida r con r >= 0 y r*r = n

La demostración debe cubrir todo , no solo valores probados.

Contraejemplo o límites

La verificación funcional no implica eficiencia temporal, bajo consumo de memoria ni ausencia de fallos fuera de los supuestos del modelo.

Relaciones

Procedencia