Das Problem des induktiven invarianten Separators für die Presburger-Arithmetik ist unentscheidbar.
Mir ist kein Beweis in der Literatur bekannt, auf den Sie hinweisen könnten. (Es scheint eine so einfache Frage zu sein, dass ich annehme, dass sie irgendwo da draußen ist.) Der Beweis, den ich mir ausgedacht habe, folgt ungefähr der gleichen Konstruktion wie das Halteproblem. Hier ist eine kurze Übersicht. Wir nehmen zunächst ein Entscheidungsverfahren vorhanden ist, und dann eine Maschine konstruieren S mit Eingang M . S verwendet D , um die Nichtbeendigung von M an sich selbst zu entscheiden, und dann kehrt S die Ausgabe um. Wir verwenden dann die Konstruktion von S, um zu zeigen, dass D eine falsche Antwort auf die Ausführung von S auf sich selbst geben muss.DSMSDMSSDS
Anstelle einer Reduzierung des Stoppproblems ist der Beweis in jeder Hinsicht eine Wiederholung des Beweises des Stoppproblems. Es ist etwas ausführlich, da die genau stärkste Post-Bedingung ausgedrückt werden kann. (Wenn ein einfacherer Beweis möglich ist, wäre ich sehr daran interessiert, ihn zu hören.) Nun zu den blutigen Details.
Das induktive invariant Separator Problem für Presburger Arithmetik ist für eine gegebene 4-Tupel wo ˉ v eine endliche Menge von Variablennamen ist, I n i t und B a d sind Presburger-Formeln, deren freie Variablen in ˉ v sind , N e x t ist die Presburger-Formel, deren freie Variablen in ˉ v oder ˉ sind⟨v¯,Init,Next,Bad⟩v¯InitBadv¯Nextv¯(eine grundierte Kopie von ˉ v ) gibt es eine Formelϕin der Presburger-Arithmetik mit freien Variablen in ˉ v, so dass:v¯′v¯ϕv¯
- Init⟹ϕ
- ϕ∧Next⟹ϕ′
- ϕ⟹¬Bad
wobei alle freien Variablen in ϕ primiert .ϕ′ϕ
Angenommen, dieses Problem ist entscheidbar. Es existiert dann eine Turingmaschine , die das Trennproblem entscheidet (für eine gegebene Codierung von Presburger-Formeln). Sei D eine deterministische Turingmaschine, die D ' simuliert . D beendet und entscheidet über das Separatorproblem.D′DD′D
Eine Variablenzuweisung über eine endliche Menge von Variablen ist eine Konjunktion ⋀ v i = c i, wobei c i eine ganzzahlige Konstante ist.{vi}⋀vi=cici
Ich werde auch die Existenz einer Turing-Maschine für den Presburger Arithmetik-Compiler mit einigen vernünftigen, aber starken Einschränkungen annehmen . C nimmt als Eingabe eine Turingmaschine M mit einem eindeutigen Endzustand t e r m und einer Eingabe w und konstruiert die Presburger-Formeln I n i t und N e x t über einen endlichen Satz von Variablen ˉ v . Informell benötigen wir die Pfade der Presburger-Formeln, um die Ausführung von M auf w zu simulierenCCMtermwInitNextv¯Mw. Außerdem benötigen wir eine Schrittsimulation. Formal benötigen wir Folgendes:
- weist eine eindeutige Konstante zu allen Steuerzuständen in M und die Konstante für lassen t e r m seine ⟨ t e r m ⟩ ,CMterm⟨term⟩
- enthält eine Variable p c in ˉ v , die den Steuerzustand von M bei jedem Schritt in der Ausführung verfolgt.Cpcv¯M
- erzeugt I n i t in Form einer Variablenzuweisung über ˉ v ,CInitv¯
- stellt sicher, dass N e x t einen eindeutigen Nachfolger für Variablenzuweisungen über ˉ v hat (die von I n i t aus erreichbar sind), wenn M deterministisch ist.CNextv¯InitM
- Damit eine injektive Funktion von einem Zustand von M (Steuerung und Band) zu einer variablen Zuordnung über b a r v existiert, so dass N e x t einen Nachfolger hat, wird der Anfangszustand von M auf w genau auf I n abgebildet i t und der Steuerzustand von M weist konsistent p c zu ,fMbarvNextMwInitMpc
- ist deterministisch undC
- endet.C
Konstruieren Sie nun die Turingmaschine , die eine Turingmaschine M als Eingabe verwendet und Folgendes ausführt (im Pseudocode):SM
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
DSSS(S)CInitNextSSiS(S)siiv¯i=f(si)NextInitSCNextInitf(s0)=v¯i=Init
DϕS(S)termkCDv¯1…v¯kϕpc=⟨term⟩D
DS(S)loopkksk+1=sk+2=…kϕ=⋁k+1i=1v¯iϕNextInit
- Init⟹ϕInitv¯1
- ϕ∧Next⟹ϕ′Nextiv¯iv¯′i+1
- ϕ⟹¬Badv¯ipc≠⟨term⟩
ϕ⟨v¯,Init,Next,Bad⟩D
D
Durch diese Übung habe ich Jerome Leroux 'Arbeit an Separatoren für Vektoradditionssysteme wirklich geschätzt.