Model Checking
La verificación de modelos comprueba exhaustivamente si todos los estados de un sistema satisfacen propiedades de lógica temporal, encontrando automáticamente estados contraejemplo que las violan.
Propósito
Verificar exhaustivamente la seguridad y viveza de sistemas concurrentes, descubriendo automáticamente interbloqueos y carreras de datos.
Mecanismo
Se modela el sistema como una máquina de estados y se expresan las propiedades en lógica temporal (LTL/CTL). La enumeración explícita de estados o los BDD simbólicos recorren todos los estados. Si una propiedad falla, se produce un camino contraejemplo. SPIN y NuSMV son herramientas habituales.
Casos de uso
- Verificación de concurrencia
- Verificación de protocolos
- Verificación de hardware