Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
187<br />
5.4 Definierbarkeit von Bitvektoroperationen in Presburger Z -<br />
Arithmetik<br />
Die um Bitvektoroperationen erweiterte Presburger Z -Arithmetik (kurz: Presburger<br />
Z,Bit -Arithmetik), kann ähnlich wie Presburger N -Arithmetik leicht in S1S<br />
übersetzt werden. Diese Logik ist daher entscheidbar und ihr Entscheidungsproblem<br />
besitzt höchstens nicht elementare Komplexität. Wie aber oben dargestellt,<br />
ist das Entscheidungsproblem der Presburger-Arithmetik in O(2 22n )<br />
lösbar und somit wesentlich einfacher als das Entscheidungsproblem von S1S.<br />
Dieses einfachere Entscheidungsproblem ist einer der Gründe für den Einsatz<br />
von Presburger-Arithmetik. Es ist daher interessant, die Komplexität des Entscheidungsproblems<br />
von Presburger Z,Bit -Arithmetik zu untersuchen.<br />
Zunächst soll betrachtet werden, ob Bitvektoroperationen in Presburger-<br />
Arithmetik definierbar sind. Wären Bitvektoroperationen in Presburger-Arithmetik<br />
definierbar, so besäßen Presburger Z - und Presburger Z,Bit -Arithmetik äquivalente<br />
Ausdruckskraft. Wenn die durch die Definitionen der Bitvektoroperationen<br />
implizierte Übersetzung von Presburger Z,Bit - nach Presburger Z -Arithmetik<br />
mit polynomiellem Aufwand möglich wäre, wäre zudem gezeigt, dass das<br />
Entscheidungsproblem von Presburger Z,Bit -Arithmetik in O(2 22n )lösbar ist. Im<br />
Folgenden soll gezeigt werden, dass Bitvektoroperationen jedoch nicht in Presburger<br />
Z -Arithmetik definierbar sind.<br />
Die Bitvektoroperation NOT kann leicht in Presburger Z -Arithmetik definiert<br />
werden durch<br />
NOT(x) . = z ←→ z . = −(x +1)<br />
Dagegen ist OR nicht definierbar.<br />
Lemma 2. Die Bitvektoroperation OR ist nicht in Presburger Z -Arithmetik definierbar.<br />
Beweis. Angenommen die Bitvektoroperation OR wäre in Presburger Z -Arithmetik<br />
definierbar. Dann ist aber auch das Prädikat Sing Z : Z → B, das gegeben ist<br />
durch<br />
⇔ es gibt ein k ∈ N mit i =2k<br />
in Presburger Z -Arithmetik definierbar durch<br />
(<br />
Sing (x,y,z)<br />
Z<br />
:= ≥ 0 (y) ∧ y ≤ x<br />
∧<br />
∀y ′ . ( ≥ 0 (y ′ ) ∧ y ′ ≤ x ) → OR(x, y ′ ) ≤ OR(x, y) ∧<br />
z = . )<br />
OR(x, y)+1<br />
∀z.Sing (z)<br />
Z<br />
Sing (i)<br />
Z<br />
↔ ∃x, y.Sing(x,y,z)<br />
Z<br />
Sei z eine Zweierpotenz. Dann ist zu zeigen, dass Sing (z)<br />
Z<br />
gilt. Sing (1)<br />
Z<br />
Sing (0,0,1)<br />
Z<br />
Sing (2k−1 ,2 k−1 −1,z)<br />
Z<br />
gilt. Für eine Zweierpotenz z =2 k mit k>0 ist Sing (z)<br />
Z<br />
gilt.<br />
gilt, da<br />
erfüllt, da