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