Entscheidbarkeit der Presburger

Werbung
Proseminar Theoretische Informatik
28.01.2014
Entscheidbarkeit der Presburger-Arithmetik
Ajit Parikh
Helmut Alt
Entscheidbarkeit logischer Theorien
Die Entscheidbarkeitstheorie beschäftigt sich mit der Frage, ob bestimmte Probleme
algorithmisch lösbar sind oder nicht. In der Mathematik spielt häufig die Beweisbarkeit von
mathematischen Aussagen eine wichtige Rolle.
Wir werden uns mit der Frage beschäftigen, ob man für einige solcher Aussagen Algorithmen
finden kann, welche den Wahrheitsgehalt dieser Aussagen determinieren können. Wir
beschränken uns hierbei auf die Sätze in der Presburger-Arithmetik.
Beispiele zu mathematischen Aussagen:
(1) x z y : R(x, y, z)
(mit R(x, y, z) ← (x + y = z))
(2) q p x,y [p>q  (x,y>1  xy ≠ p)]
(3) q p x,y [p>q  (x,y>1  (xy ≠ p  xy ≠ p+2))]
(2) Unendlichkeit von Primzahlen ; (3) Unendlichkeit von Primzahlpaaren (noch nicht bewiesen)
Im weiteren Verlauf betrachten wir mathematische Ausdrücke als String über einem Alphabet 
 = { , , , , , x, R1,…,Rk }
, ,  : Boolesche Opertionen ; ,  : Quantoren ; x1, x2,…: Variablen ; R1,…,Rk : Relationen
Wir bilden über  eine Sprache, nämlich die Sprache der „wahren Aussagen“. Idee ist es, dass
wir über beliebige Aussagen entscheiden können, ob sie in dieser Sprache liegen und somit
wahr sind. Natürlich kann man die Symbole aus  nicht willkürlich aneinanderreihen.
Wir sprechen von sogenannten „well-formed strings“ über  und bezeichnen diese als Formel.
Definition (Formel)
Eine Formel 
Pränexform:
1) ist eine atomare Formel (R(x1,…xj))
2) hat die Form 1  2 , 1  2 ,  1
3) hat die Form xi [1] , xi [1] (1 , 2 sind kleinere Formeln)
 = Q1x1 Q2x2 … Qnxn []
1
(mit Qi  {, })
Definition (Satz)
Ein Satz ist eine Formel in der nur gebundene Variablen vorkommen.
Die Variablen xi können alle Werte aus einem vorher festgelegten Univerum U (auch
Grundmenge genannt) annehmen. ( xiU mit bspw. U=ℕ oder U=ℤ)
Definition (Relation)
Eine Relation ist eine Funktion von einem k-Tupel über dem Universum zu einem
Wahrheitswert.
R(x1,…, xk) : U → {TRUE, FALSE}
Definition (Struktur)
Eine Struktur M ist ein Tupel (U, P1,…, Pk) wobei P1,…, Pk Relationen sind, die dann zu den
jeweiligen Relationssymbolen Ri in einer Formel zugeordnet werden.
Man spricht von der Sprache einer Struktur wenn man die Menge aller Formeln betrachtet, die
jedes R mit einem entsprechenden P aus M belegen.
Ist  ein wahrer Satz in der Sprache einer Struktur M, so sagt man: M ist Struktur von .
Beispiel:
 = x z y : R(x, y, z) und M = (ℤ, PLUS) mit PLUS (a,b,c): (a+b=c)
Definition (Theorie)
Sei M eine Struktur, so ist die Theorie Th(M) die Menge der wahren Sätze in der Sprache von M
Th(M) = { | M ist Struktur von }
Axiome der Presburger-Arithmetik
1)
2)
3)
4)
5)
x :  (x + 1 = 0)
x,y : (x + 1 = y + 1 → x = y)
x : x + 0 = x
x,y : (x + y) + 1 = x + (y + 1)
Sei P(x) eine Formel in der Sprache der Presburger-Arithmetik mit wenigstens einer
freien Variable x so gilt: (P(0)  x : (P(x)  P(x+1)))  y : P(y)
Die booleschen Operationen sind durch endliche Automaten realisierbar denn reguläre Sprachen
sind unter Vereinigung, Schnitt und Negation abgeschlossen.
2
Was wir noch brauchen ist ein endlicher Automat für die Addition. Wie man leicht sieht, reicht
es aus, die Entscheidbarkeit von Th(ℕ, +) um auch die Entscheidbarkeit der PresburgerArithmetik zu beweisen.
Addition natürlicher Zahlen mittels endlicher Automaten
Sei:
3 =
0
1
0
1
0 , 0 , 1 ,…, 1
0
0
0
1
Ein Wort 3* liefert uns 3 Zeilen (bestehend aus 0en und 1en). Wir betrachten jede dieser
Zeilen als natürliche Zahl in Binärdarstellung und definieren die Sprache L als
L = { 3* | unterste Zeile in  ist Summe der darüber liegenden }
Beweis, dass L regulär ist:
Wir bilden aus  sein Reverses R. Wir wissen bereits dass LR = {R | L} regulär ist. Wir
konstruieren einen endlichen Automaten A, der für eine Eingabe R dann in einen
akzeptierenden Zustand übergeht wenn in einem gelesenen Zeichen i die Summe der oberen
beiden Zahlen gleich der unteren ist (ggf. mit einem zuvor gemerkten Übertrag). Falls dies nicht
der Fall ist, hält A in einem nicht akzeptierenden Zustand. Das heißt: L ist durch einen DEA
realisierbar und somit regulär.
Entscheidbarkeit von Th(ℕ, +)
Beweisidee: Wir brauchen einen Algorithmus, der für eine Eingabe  testet, ob diese in
M = (ℕ, +) wahr ist oder nicht.
Wir wissen bereits:
 = Q1x1 Q2x2 … Qnxn []
Außerdem definieren wir:
i = Qi+1xi+1 Qi+2xi+2 … Qnxn []
Somit ist 0 =  ; n = 
i hat i freie Variablen, die wir substituieren können.
Der Algorithmus konstruiert für jedes i einen Automaten Ai , der genau die Eingabestrings, also
die Menge der i-Tupel, erkennt, für die i wahr wird, wenn man diese für die freien Variablen
einsetzt. Er beginnt mit der Konstruktion von An und anschließend für jedes i zwischen 1 und n
einen Automaten Ai-1 mit Verwendung von Ai . Ist der Algorithmus bei A0 angekommen,
akzeptiert er, wenn A0 das leere Wort  akzeptiert.
3
Beweis:
Für i > 0 :
i =
0
1
0
0 , 0 , 1 , …,
⁞
⁞
⁞
0
0
0
1
1
⁞
1
Bei einer Eingabe  werden zunächst alle i definiert. Dann wird ein endlicher Automat An
erzeugt (da n =  und  quantorenfrei ist, existiert ein solcher Automat, denn er muss „nur“
Addition und boolesche Operationen realisieren können (siehe oben)).
Zur Konstruktion von Ai-1 betrachten wir den ersten Quantor in i-1.
 Falls Qi =  : Ai-1 imitiert das Verhalten von Ai mit dem Unterschied, dass die Zahl (bzw.
Reihe) ai nicht als Teil der Eingabe erhalten wird, sondern nicht deterministisch geraten
wird. Ai-1 liest ein Symbol, rät n.det. ein z{0,1}, welches hinzugefügt wird und simuliert
diese Eingabe auf Ai
b1
⁞
bi-1
→
b1
⁞
bi-1
z
[neues Symbol wird auf Ai simuliert]
Es ist klar, dass wenn Ai-1 eine Eingabe (a1, …, ai-1) akzeptiert wenn ein ai existiert, so dass
Ai die Eingabe (a1, …, ai-1, ai) akzeptiert.
 Falls Qi =  : Wir wissen xi-1 i   xi-1  i . Das bedeutet wir konstruieren einen
endlichen Automaten, der das Komplement von der Sprache von Ai erkennt, dann wie bei 
fortfährt und letztendlich wieder eine Komplementbildung vornimmt.
Wenn  wahr ist, dann wir der endliche Automat A0 jede Eingabe akzeptieren. Also wird
getestet ob A0  akzeptiert. Nur wenn das der Fall ist, ist  wahr und der Algorithmus akzeptiert.
Damit ist gezeigt, dass es für Sätze in Th(ℕ, +) einen Algorithmus gibt, der sagen kann, ob diese
Sätze wahr oder falsch sind. Somit ist bewiesen, dass nicht nur Th(ℕ, +), sondern auch die
Presburger_Arithmetik entscheidbar ist.
Literatur
M. Sipser - Introduction to the Theory of Computation - PWS Publ.Comp. 1997
4
Herunterladen