Decidabilidad de la existencia inductiva invariante en la aritmética de Presburger

8

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?

David Monniaux
fuente
Creo que necesitamos aclarar esto un poco: los estados están representados por un número entero , y la relación de transición es una fórmula , con una fórmula y , que representan los estados inicial y malos estados, respectivamente? Y está buscando una fórmula tal que: , y . ¿Es esto correcto? ϕ ( n , m ) ψ g o o d ( n ) ψ b a d ( n ) I ( n ) I ( n ) ϕ ( n , m ) I ( m )n,mϕ(n,m)ψgood(n)ψbad(n)I(n)I(n)ϕ(n,m)I(m)ψ b a d ( n ) ¬ I ( n )ψgood(n)I(n)ψbad(n)¬I(n)
cody
Sí, excepto que y no son números enteros individuales, sino vectores finitos de números enteros de dimensión fija ( "número finito de variables enteras"). Gracias por la aclaración. m dnmd
David Monniaux
Entonces, ¿cuál es el problema de accesibilidad? Si es solo "el estado es accesible", entonces es fácil demostrar que los problemas son equivalentes: si es inalcanzable, tome ser . ¿Me estoy perdiendo de algo? ψ b a d ( k ) I ( k ) ψ g o o d ( k ) ( y , ϕ ( y , k ) ¬ ψ b a d ( y ) ¬ ψ b a d ( k ) )ψbad(k)ψbad(k)I(k)ψgood(k)(y,ϕ(y,k)¬ψbad(y)¬ψbad(k))
cody
Lo sentimos, 1) es 2) ¿por qué su conjunto debe ser inductivo? por ejemplo, ¿por qué debería ? ψ bueno ( k ) ϕ ( k , k ) I ( k )I(n)ψbad(n)ψgood(k)ϕ(k,k)I(k)
David Monniaux

Respuestas:

3

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 SDSMSDMSSDS

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 ˉ vv¯,Init,Next,Badv¯InitBadv¯Nextv¯v¯v¯ϕv¯

  • Initϕ
  • ϕNextϕ
  • ϕ¬Bad

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 DDDDD

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=cici

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 wCCMtermwInitNextv¯Mw

  • M t e r m t e r m C asigna una constante única a todos los estados de control en y deja que la constante para el sea ,Mtermterm
  • p c ˉ v MC incluye una variable en que rastrea el estado de control de en cada paso de la ejecución,pcv¯M
  • I n i t ˉ vC genera para tener la forma de una asignación variable sobre ,Initv¯
  • N e x t ˉ v I n i t MC asegura que tenga un sucesor único en asignaciones variables sobre (a las que se puede desde ) si es determinista,Nextv¯InitM
  • para que exista una función inyectiva desde un estado de (control y cinta) a una asignación variable sobre la modo que tenga un sucesor, el estado inicial de en se asigna exactamente a y el estado de control de asigna constantemente ,M b a r v N e x t M w I n i t M p cfMbarvNextMwInitMpc
  • C es determinista y
  • C termina.

Ahora construya la máquina Turing que toma una máquina Turing como entrada y hace lo siguiente (en pseudocódigo):MSM

S(M):
   Run C(M,M) to get v, Init and Next
   Simulate D on v, Init, Next, Bad := (pc = <term>)
   If D says a separator exists:
     terminate
   If D says no separator exists:
     loop: goto loop

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 deDSSS(S)CInitNextSSiS(S)siiv¯i=f(si)NextInitSC , debe tener sucesores únicos en asignaciones variables e es una asignación variable. (Como referencia, .)NextInitf(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)termkCDv¯1v¯kϕpc=termD

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 .)DS(S)loopkksk+1=sk+2=kϕ=i=1k+1v¯iϕNextInit

  • Initϕ ya que es exactamente .Initv¯1
  • ϕNextϕ ya que es determinista y para todo if mantiene, entonces cumple.Nextiv¯iv¯i+1
  • ϕ¬Bad ya que cada asignación de variable implica .v¯ipcterm

Por lo tanto, es un separador inductivo invariante para y dio una respuesta inconsistente.ϕv¯,Init,Next,BadD

D siempre debe dar una respuesta inconsistente y, por lo tanto, no existe un procedimiento de decisión.


Hacer este ejercicio realmente me hizo apreciar el trabajo de Jerome Leroux sobre separadores para sistemas de adición de vectores.

Tim
fuente
Esto es genial, gracias! ¿Tiene una referencia para el paso 2, a saber, el "compilador de TM a Presburger Arithmetic"? Ese parece ser el quid de la prueba.
cody
1
Podemos utilizar la reducción estándar de la máquina Turing para máquinas Minsky a la codificación ingenua de Presburger. Luego, cada estado de la máquina Turing finalmente tiene un estado de Presburger coincidente (con ). El modelo que tenía en mente asume aproximadamente que la cinta está en binario y hay 1 variable para la cinta , una variable que se mantiene en la posición si la cabeza de M está en la posición y usa para dividir en 3 variables donde y oi i i t 2 piiiit2p2 p t l , c , r l 2 p , c < 2 , r 2 p + 1 ( l + p + r = t = > c = 1 ) ( l + r = t = > c = 0 )p2ptl,c,rl2p,c<2,r2p+1(l+p+r=t=>c=1)(l+r=t=>c=0). Espero que el resto de la codificación sea clara.
Tim