Verificação de modelo simbólico é a Verificação de modelo que funciona em estados simbólicos. Ou seja, eles codificam os estados em representações simbólicas, normalmente diagramas de decisão binária ordenados (OBDDs).
A questão é o que eles fazem e como eles funcionam.
Você primeiro tem seu código-fonte para algum aplicativo. Você transforma seu código-fonte em algum gráfico de transição de estado, como uma Estrutura Kripke. Os estados são preenchidos com proposições atômicas que descrevem o que é verdadeiro naquele estado em particular. Na verificação do modelo simbólico, as proposições atômicas são codificadas como OBDDs para economizar espaço e melhorar o desempenho.
O Verificador de Modelos é iniciado em algum estado inicial e explora os estados, procurando erros no gráfico de transição de estado. Se encontrar um erro, geralmente gerará um caso de teste demonstrando o erro. Ele usa os OBDDs simbólicos para navegar de maneira otimizada no espaço de estados. Gostaria de poder explicar mais lá, mas ainda aprendendo.
Mas é basicamente isso. Você tem um programa convertido em um modelo formal (gráfico de transição de estado) e, em seguida, utiliza otimizações simbólicas para navegar no espaço de estados em busca de erros (comparando-o com uma especificação LTL / CTL). E se um erro for encontrado, o Model Checker fornece algumas informações para ajudar a documentar e resolvê-lo.