En la verificación formal, a menudo se usa el modelo de sistemas pushdown.
Un sistema pushdown (PDS) consta de un número finito de estados [matemática] P [/ matemática], un alfabeto [matemática] \ Gamma [/ matemática] y una relación de transición [matemática] \ Delta [/ matemática].
Comienza con un estado y un contenido de pila de [math] \ Gamma ^ + [/ math] y luego el sistema puede tener tres tipos de reglas en [math] \ Delta [/ math]:
- ¿Cómo escribiría una función que encuentre la entrada máxima n tal que f (n) <c en el tiempo O (lg n)?
- ¿Qué papel juega la habilidad matemática en la ingeniería informática o la codificación?
- Cómo contar eficientemente grandes cantidades de artículos
- ¿Cuál es la complejidad computacional de un problema de clasificación? ¿Es P o NP?
- ¿Existe una secuencia de bits perfectamente aleatoria?
- [matemáticas] (p, \ gamma) \ flecha derecha (p ‘, \ gamma’) [/ matemáticas]
- [matemáticas] (p, \ gamma) \ rightarrow (p ‘, \ beta \ gamma’) [/ matemáticas]
- [matemáticas] (p, \ gamma) \ rightarrow (p ‘, \ varepsilon) [/ matemáticas]
Esto es muy similar a los autómatas pushdown que mucha gente conoce de las clases de teoría de la computación, pero tenga en cuenta que no tiene ninguna condición de aceptación. Es estrictamente para la descripción del comportamiento de los programas de computadora y estamos interesados en ejecuciones infinitas (ejecuciones que no se detienen) la mayor parte del tiempo.
Existen herramientas que toman programas informáticos ordinarios como entrada y generan un PDS que es una abstracción del programa de entrada.
Luego puede usar esta abstracción para verificar las propiedades del programa original. ¡Y a diferencia de las máquinas de Turing, la mayoría de las propiedades de los PDS son decidibles y muchas incluso lo son en tiempo polinómico! Los ejemplos incluyen la accesibilidad de los estados, la detención del comportamiento y muchos otros.
Si desea un modelo que tome un argumento [matemática] x [/ matemática] y luego arroje un valor [matemática] f (x) [/ matemática], también hay algunas opciones, por ejemplo, funciones recursivas primitivas, autómatas lineales (LBA) ) etc. Muchos modelos ocurren naturalmente si solo restringe la clase de máquinas de Turing a TMs cuyo comportamiento de detención depende de una propiedad estructural decidible.