04.01.2015 Aufrufe

Der Umgang mit dem Hoare-Kalkül zur Programmverifikation

Der Umgang mit dem Hoare-Kalkül zur Programmverifikation

Der Umgang mit dem Hoare-Kalkül zur Programmverifikation

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Michael Gellner<br />

Einführung in die Verifikation<br />

Michael Gellner<br />

Einführung in die Verifikation<br />

Teil 3:<br />

i + 1 n = i n<br />

Die Bedingungen i n und i < n stellen keinen Widerspruch zueinander<br />

dar, die zweite Bedingung formuliert lediglich denselben Sachverhalt<br />

schärfer und ist daher maßgeblich. Insgesamt lassen sich die zunächst unterschiedlich<br />

erscheinenden Aussagen <strong>zur</strong> Deckung bringen, die Verifikation<br />

kann fortgesetzt werden.<br />

5. Abschließend werden die drei Zuweisungen über der While-Schleife <strong>mit</strong><br />

Klauseln versehen. Ausgangsbasis hierfür ist die Invariante der While-<br />

Schleife, da<strong>mit</strong> wird widerum von unten nach oben gearbeitet.<br />

Insgesamt ergibt sich die folgende Spezifikation:<br />

n 0<br />

-1 = 2 0 – 1 0 = 0 2 0 n<br />

i := 0;<br />

-1 = 2 i –1 0 = i 2 i n<br />

k := -1;<br />

k = 2 i – 1 0 = i 2 i n<br />

R 1<br />

R 1<br />

-1 = 2 0 – 1 0 = 0 2 0 n<br />

y := 0;<br />

R 1<br />

i := 0;<br />

-1 = 2 i – 1 0 = i 2 i n<br />

k := -1;<br />

k = 2 i – 1 0 = i 2 i n<br />

y := 0;<br />

{ I } k = 2 i – 1 y = i 2 i n<br />

R 1<br />

R 1<br />

R 1<br />

while i < n do<br />

begin<br />

{ P } k = 2 i – 1 y = i 2 i n<br />

{ P B } k = 2 i –1 y = i 2 i x i n<br />

i := i + 1;<br />

k + 2 = 2 i –1 y + k + 2 = i 2 i n<br />

k := k + 2;<br />

k = 2 i – 1 y + k = i 2 i n<br />

R 1<br />

R 1<br />

end<br />

y := y + k;<br />

R 1<br />

{ P } k = 2 i –1 y = i 2 i n<br />

{ PB } k = 2 i –1 y = i 2 i x (i < n)<br />

y = n 2<br />

R 4a<br />

31<br />

32

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!