Formal Verification
La verificación formal usa métodos matemáticos para demostrar que un programa satisface su especificación, ofreciendo garantías de corrección más fuertes que las pruebas (testing).
Propósito
Proporcionar demostraciones matemáticas de corrección para sistemas críticos para la seguridad, eliminando clases completas de defectos.
Mecanismo
Métodos: demostración de teoremas (Coq/Isabelle), model checking e interpretación abstracta. Requiere una especificación formal (precondiciones, postcondiciones, invariantes). Demuestra que el programa satisface la especificación. Costoso, pero usado en aeroespacial, kernels y criptografía.
Casos de uso
- Software crítico para la seguridad
- Verificación de kernels
- Demostraciones criptográficas