¿No son los inspectores de modelos y asistentes de pruebas realmente variantes diferentes y limitadas de lo mismo? Si es así, ¿por qué el abismo entre ellos?

Esperaba que alguien más respondiera esto, ya que estoy subcalificado, pero ha estado sentado aquí por un tiempo. Eliminaré esta respuesta una vez que alguien que sepa de qué está hablando escriba algo mejor. (¡Por favor!)

Los asistentes de prueba casi siempre trabajan manipulando fórmulas en alguna lógica, mientras que ese es solo un enfoque entre muchos para la verificación de modelos. Por ejemplo, la verificación del modelo se puede realizar desenrollando algún espacio de estado y buscándolo. Podríamos decir que la “comprobación de modelo simbólico” es una aplicación de asistentes de prueba. (Aunque también hay tecnologías simbólicas, como los BDD, que están mucho más asociadas con la verificación de modelos que con los asistentes de pruebas).

Otra razón es que hay una gran brecha entre las comunidades interesadas en estas cosas. Muchos asistentes de pruebas trabajan en teoría de tipos y otras lógicas sofisticadas, que pueden parecer bastante extrañas para la comunidad de verificación de modelos. Por otro lado, la verificación de modelos a menudo se basa en solucionadores altamente optimizados (SAT y SMT) que operan con lógicas más simples. Dicho esto, los demostradores del teorema de Boyer-Moore (nqthm, ACL2) parecen pertenecer más a la comunidad de verificación de modelos que a la comunidad de asistentes de pruebas basada en la teoría de tipos. Por lo que puedo decir, estos sistemas son aceptados en la industria y funcionan bien, aunque son terriblemente aterradores desde la perspectiva del criterio de Bruijn.

Los verificadores de modelos no pueden cubrir todos los rastros y pueden funcionar solo con un número finito de estados, pero son mucho más simples de implementar en la industria. Existe el enfoque híbrido que combina lo mejor de dos mundos. Depende de una tarea de qué elegir. Si tiene un gran conjunto de estados y no muchas variables, elija probadores, si tiene muchas variables (tal vez un nivel más bajo de abstracción) y un conjunto finito de estados, es mejor usar el verificador de modelos. La verificación de modelos se basa en una búsqueda exhaustiva y el modelado simbólico solo funciona como un método de optimización.

No lo son La verificación del modelo es la verificación automática . Usted proporciona una propiedad en una lógica temporal (por ejemplo, LTL o CTL) y el verificador de modelos le dice si un modelo (por ejemplo, estructuras de Kripke, cadenas de Markov) cumple con esta propiedad.

Un asistente de prueba no es completamente automático. Tendrá que hacer mucho trabajo usted mismo y no puede confiar en el asistente de pruebas para hacer todo.

More Interesting

Presenté mi trabajo en una conferencia de CS superior hace 8 meses. Fue bien recibido, pero nadie lo cita. ¿Qué puedo hacer para que más personas citen mi trabajo? ¿Hay algo que pueda hacer para aumentar la visibilidad del documento y obtener más citas?

Cómo equilibrar el estudio y la investigación para el mismo campo.

¿Cómo debe prepararse un estudiante de ingeniería de segundo año de CS recién ascendido para una pasantía de investigación en Microsoft?

¿Se realiza más investigación de CS en la academia o la industria?

¿Cuáles son los pasos (para un estudiante indio) para escribir un trabajo de investigación en ciencias de la computación sin la ayuda de profesores universitarios?

¿Cuál es el lenguaje de programación que debo elegir para realizar una investigación en el área de Visión por Computador?

¿Cuál es el mejor lugar para la investigación a tiempo completo en arquitectura de computadoras en Bangalore que no sea IISC? Estar en el campo de la enseñanza, ¿cuál es la mejor opción?

¿Cuáles son los trabajos académicos clásicos en finanzas computacionales / comercio algorítmico?

¿Cuáles son los temas en informática?

¿Cómo puede ayudar un estudiante universitario con la investigación del aprendizaje automático?

Soy un estudiante de la universidad comunitaria, ¿cómo puedo ingresar a los programas de investigación de verano en un área de ciencias de la computación si no tengo experiencia en investigación?

¿Cuál es la diferencia entre la declaración de variables y la inicialización?

¿Cuál es la mejor manera de estimar computacionalmente la cardinalidad de conjuntos muy grandes?

¿Dónde ha llegado la investigación en sistemas de recomendación conscientes del contexto?

¿Cómo es un día típico para un investigador informático?