¿Existe un sistema de prueba automatizado razonable para los teoremas de TCS?


28

Supongamos que quisiera formalizar la prueba de Turing sobre el problema de detención para que una máquina pueda verificarlo. Algunos de los sistemas de prueba de teoremas automatizados conocidos incluyen Mizar, Coq y HOL4. Descargué y experimenté con Coq, pero no tiene una biblioteca para máquinas Turing. Pensé en codificar uno yo mismo, pero me pareció que faltaba el tutorial y el idioma era difícil de aprender.

Mi pregunta es: ¿Existe un comprobador de teoremas automatizado que generalmente sea bueno para probar teoremas que involucren máquinas de Turing? Consideraría que un teorema de este tipo es "bueno" si puede formalizar una prueba de la indecidibilidad del problema de detención utilizando bibliotecas ya existentes. Lo consideraría aún mejor si es relativamente fácil de aprender. (Para el registro, generalmente no tengo dificultades con los lenguajes de programación).

Gracias,

Philip


Puede consultar esta página, pero la lista no incluye el problema de detención.
Kaveh

10
Me atrevo a decir que necesitas persistir con algo como Coq antes de que se sienta natural. Y necesita estar en la terminal trabajando en problemas, en lugar de leer el libro. Le ayudará tener "Pruebas de teoremas interactivos y desarrollo de programas: Coq'Art: El cálculo de las construcciones inductivas". Los tutoriales de Coq: cis.upenn.edu/~bcpierce/sf y adam.chlipala.net/cpdt son bastante buenos (aunque no están dirigidos directamente a lo que quieres).
Dave Clarke

55
La formalización de una prueba puede ser bastante complicada si elige la versión "incorrecta" de la misma. Para el problema de detención, sugeriría probar primero una versión más general y abstracta. Luego, puede probar más tarde que las máquinas de Turing son un caso especial de la versión abstracta, si todavía tiene ganas de hacerlo (habrá muchos detalles tediosos sobre las máquinas de Turing, por lo que quizás sea mejor dedicar tiempo a hacer otra cosa). Pensaré en una buena forma de probar esto en Coq. Estuvo atento.
Andrej Bauer

55
Si eres bueno en matemáticas y bueno en programación, entonces tienes los requisitos previos para aprender a usar un asistente de prueba. Realmente necesitas tratarlo como una nueva habilidad. (Sin embargo, es muy gratificante.)
Neel Krishnaswami

Parece que la respuesta a la pregunta es "no". Creo que un sistema de este tipo sería muy útil. ¿Puedo solicitar que, si formaliza las máquinas de Turing, podría pensar un poco en la equivalencia de tiempo polinomial?
Colin McQuillan

Respuestas:


17

Aquí hay una biblioteca Isabelle / HOL que contiene el teorema de Rice, que establece la indecidibilidad de una amplia gama de problemas. Dado que esta biblioteca modela la computabilidad a través de funciones recursivas, debe codificar una máquina Turing universal como una función recursiva para utilizar este teorema para probar la indecidibilidad del problema de detención de las máquinas Turing. Sin embargo, las partes esenciales de la prueba de indecidibilidad ya están hechas.

http://afp.sourceforge.net/browser_info/current/HOL/Recursion-Theory-I/index.html

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.