Problema:
Considere un número finito de estados de control (incluyendo un estado "inicial" y un estado "malo"), un número finito de variables enteras y para cada par ordenado de estados una relación de transición expresada en aritmética de Presburger.
Decida si existe una invariante inductiva (= estable por los estados posteriores de la relación de transición) que contiene el estado inicial pero no el malo, definible en la aritmética de Presburger.
(Tenga en cuenta que este problema es diferente del problema de accesibilidad en la aritmética de Presburger, que es claramente indecidible (por reducción de máquinas de dos contadores)).
Sospecho que este problema es indecidible, pero no conozco ninguna prueba de ello. (Obviamente es semidecidable). ¿Alguien ha demostrado esto?
fuente
Respuestas:
El problema del separador inductivo invariante para la aritmética de Presburger es indecidible.
No conozco una prueba en la literatura para señalarlo. (Parece una pregunta tan directa que supongo que está en algún lugar). La prueba que se me ocurrió sigue aproximadamente la misma construcción que el problema de detención. Aquí hay una breve descripción. En primer lugar, suponemos un procedimiento de decisión existe y luego construir una máquina de con entrada de . usa para decidir la no terminación de en sí mismo y luego invierte la salida. Luego usamos la construcción de para mostrar que debe dar una respuesta incorrecta sobre la ejecución de en sí mismo.S M S D M S S D SD S M S D M S S D S
En lugar de una reducción del problema de detención, la prueba es para todos los efectos una nueva declaración de la prueba del problema de detención. Es un poco detallado, ya que requerirá que se pueda expresar la condición posterior más fuerte exacta. (Si es posible una prueba más simple, estaría muy interesado en escucharla). Ahora a los detalles sangrientos.
El problema del separador invariante inductivo para la aritmética de Presburger es para una 4-tupla donde es un conjunto finito de nombres de variables, y son fórmulas de Presburger cuya libertad variables son en , es la fórmula Presburger cuyas variables libre son en o (una copia imprimada de ) ¿existe una fórmula en Presburger aritmética con variables libres en tal que:ˉ v InitBund ˉ v Next ˉ v ˉ v ' ˉ v varphi ˉ v⟨v¯,Init,Next,Bad⟩ v¯ Init Bad v¯ Next v¯ v¯′ v¯ ϕ v¯
donde prepara todas las variables libres en . ϕϕ′ ϕ
Supongamos que este problema es decidible. Entonces existe una máquina de Turing que decide el problema del separador (para una codificación dada de fórmulas de Presburger). Sea una máquina de Turing determinista que simule . termina y decide el problema del separador. D D ′ DD′ D D′ D
Una asignación de variable sobre un conjunto finito de variables es una conjunción donde es una constante entera.⋀ v i = c i c i{vi} ⋀vi=ci ci
También asumiré la existencia de una máquina de Turing para el compilador aritmético Presburger con algunas restricciones razonables, pero fuertes. toma como entrada una máquina de Turing con un estado final único, un y una entrada , y construye las fórmulas de pre hamburguesa y sobre un conjunto finito de variables . Informalmente, requerimos los caminos de las fórmulas de Presburger para simular la ejecución de en . Además, requerimos que sea una simulación por pasos. Formalmente, requerimos que:C M t e r m w I n i t N e x t ˉ v M wC C M term w Init Next v¯ M w
Ahora construya la máquina Turing que toma una máquina Turing como entrada y hace lo siguiente (en pseudocódigo):MS M
Ahora demostramos no puede dar una respuesta consistente en con la entrada . Comience a ejecutar . termina con y que pueden simular con la entrada . Ahora configuramos una correspondencia entre el estado de la ejecución de , , y la asignación de la ésima variable de la ejecución de partir de . es determinista por construcción, así que por las propiedades deD S S S(S) C Init Next S S i S(S) si i v¯i=f(si) Next Init S C , debe tener sucesores únicos en asignaciones variables e es una asignación variable. (Como referencia, .)Next Init f(s0)=v¯i=Init
Supongamos que dice que existe un separador. Deje ser tal separador. La ejecución de luego alcanza el en pasos. (Esto incluye ejecutar y ). Ahora es un ejemplo contrario a como separador cuando llega a . dio una respuesta inconsistente.D ϕ S(S) term k C D v¯1…v¯k ϕ pc=⟨term⟩ D
Ahora supongamos que dice que no existe tal separador. luego alcanza el estado de control en pasos. Todos los estados después de son entonces idénticos . La secuencia de asignación de variables correspondiente después de debe asignar cada variable a la misma constante. Deje . (Nota: ahora es exactamente la asignación de variables alcanzables por partir de .)D S(S) loop k k sk+1=sk+2=… k ϕ=⋁k+1i=1v¯i ϕ Next Init
Por lo tanto, es un separador inductivo invariante para y dio una respuesta inconsistente.ϕ ⟨v¯,Init,Next,Bad⟩ D
Hacer este ejercicio realmente me hizo apreciar el trabajo de Jerome Leroux sobre separadores para sistemas de adición de vectores.
fuente