10 Der Zusicherungskalkül von Hoare II

Werbung
 VON HOARE II
10 DER ZUSICHERUNGSKALKUL
10
10.1
46
Der Zusicherungskalkül von Hoare II
Korrektheit

Nach den Ergebnissen des vorigen Kapitels haben wir folgende Aquivalenzen:
{p} a {q} g
ultig
⇔
p · a · ¬q = 0
⇔
p ≤ |a]q
Wir wollen sehen, dass mit der zweiten Darstellung die Korrektheitsbeweise fur die Regeln des Hoare-Kalkuls
sogar noch einmal einfacher werden.
Fur die sequentielle Kompositionsregel
{p} a {q}
{q} b {r}
{p} a · b {r}
nehmen wir an, dass die Pramissen gelten, d.h. p ≤ |a]q und q ≤ |b]r.
Isotonie von |a] im Testargument und das Gesetz fur | ] bezuglich Komposition zeigen nun
p ≤ |a]||b]r ≤ |a · b]r
wie gewunscht.
Man beachte, dass nicht einmal Modalitat notig ist.
Fur skip erhalten wir
p ≤ |skip]q ⇔ p ≤ |1]q ⇔ p ≤ q

Ahnlich
ergibt sich fur abort
p ≤ |abort]q ⇔ p ≤ |0]q ⇔ p ≤ 1 ⇔ TRUE
Betrachten wir noch die Regel fur die nichtdeterministische Auswahl:
{p} a1 {q}
{p} a2 {q}
{p} a1 + a2 {q}
Nehmen wir wieder die Pramissen an, d.h. p ≤ |a1 ]q und p ≤ |a2 ]q. Es folgt, da · auf Tests die grote untere
Schranke liefert,
p ≤ |a1 ]q · |a2 ]q = |a1 + a2 ]q
10.2
Relative Vollständigkeit
Bei Kalkulen spielt neben der Korrektheit auch die Vollstandigkeit eine wichtige Rolle.
Wir wollen eine abgeschwachte Vollstandigkeitseigenschaft des Hoare-Kalkuls algebraisch zeigen.
Dazu sei in einem Halbring S eine Menge A ⊆ S von Elementen gegeben, die
Zuweisungen) darstellen.
atomare Anweisungen (z.B.
Ferner sei C ⊆ S die Menge aller zusammengesetzten Anweisungen, die sich aus den Elementen von A durch
endlichmalige Anwendung der Halbringoperationen erzeugen lassen.
Algebraische Semantik
c B. Moller 2008
 VON HOARE II
10 DER ZUSICHERUNGSKALKUL
47
Das entspricht der kontextfreien Grammatik
C ::= A | abort | skip | C + C | C · C
fur zusammengesetzte Anweisungen.
Als Kalkulregeln dienen die Kompositions-, Auswahl- und Abschwachungsregel sowie die Axiome (fur beliebige
Tests p, q)
{p} abort {q}
{p} skip {p}
Dazu kommt fur jede atomare Anweisung a ∈ A und jeden Test q das Axiom
{||a]q} a {q}
Die Korrektheit ist trivial, da Gultigkeit von {||a]q} a {q} nur |a]q ≤ |a]q bedeutet.
Das Zuweisungsaxiom
{PxE } x = E {P}
hat genau diese Form, passt also nahtlos in den abstrakten Rahmen.
Herleitungen sind wie ublich deniert, und wir schreiben ` {p} a {q}, wenn sich das Tripel {p} a {q} mit Hilfe
der angegebenen Kalkulregeln herleiten lasst.
Wir zeigen nun eine Hilfsaussage fur das angekundigte Vollstandigkeitsresultat.
Lemma 1 Ist der zugrunde liegende Halbring S modal, so gilt f
ur alle Anweisungen c ∈ C und alle q ∈ test(S)
` {||c]q} c {q}
Dass {||c]q} c {q} gultig ist, ist wie bei den atomaren Anweisungen trivial.
Beweis: Induktion u
ber den Aufbau von c.
(i) Ist c atomar oder abort oder skip, so ist die Aussage trivial, da das entsprechende Hoare-Tripel ein Axiom
ist.
(ii) Sei c = d + e. Nach Induktionsannahme gilt
` {||d]q} d {q},
` {||e]q} e {q}
Da fur r =df |d]q · |e]q gilt r ≤ |d]q und r ≤ |e]q, zeigt die Abschwachungsregel
` {r} d {q}
` {r} e {q}
Nun ist die Auswahlregel anwendbar und zeigt
` {r} d + e {q}
Aber nach einem Boxgesetz ist r = |d + e]q und wir sind fertig.
(iii) Sei c = d · e fur d, e ∈ C und die Induktionsannahme gelte fur d und e. Dann hat man insbesondere (setze
q 0 =df |e]q)
` {||d](||e]q)} d {||e]q},
Die Kompositionsregel zeigt nun
Algebraische Semantik
` {||e]q} e {q}.
` {||d](||e]q)} d · e {q}
c B. Moller 2008
 VON HOARE II
10 DER ZUSICHERUNGSKALKUL
48
Da Modalitat vorausgesetzt ist, ist das aquivalent zur Behauptung
` {||d · e]q} d · e {q}
Dies ist die einzige Stelle im Beweis, die Modalitat verwendet.
Nun konnen wir zeigen, dass der Hoare-Kalkul in folgendem Sinne relativ
t
u
vollstandig ist:
Satz 2 Ist c ∈ C und {p} c {q} g
ultig, so folgt ` {p} c {q}.
Beweis: Da G
ultigkeit von {p} c {q} aquivalent zu p ≤ |c]q ist, folgt die Behauptung aus dem vorigen Lemma
und der Abschwachungsregel.
t
u
Wieso ist das nur ein relatives Vollstandigkeitsresultat?
• Die Abschwachungsregel enthalt Pramissen der Form p ⇒ q.
• Es sind aber keine Schlussregeln angegeben, die es erlauben, solche Aussagen herzuleiten.
• In konkreten Kalk
ulen werden Tests durch logische Formeln (meistens der Pradikatenlogik erster Stufe)
dargestellt;
• man verlasst sich dann zur Herleitung von Implikationsaussagen p ⇒ q auf einen entsprechenden pradi-
katenlogischen Kalkul.
• Solange man dabei keine bestimmte Interpretation auszeichnen will, gibt es dazu auch vollstandige
Kalkule.
• Der ber
uhmte Unvollstandigkeitssatz von Godel besagt aber (grob), dass es keinen vollstandigen Kalkul
erster Stufe gibt, wenn man interessante\ Interpretationen (die etwa die naturlichen Zahlen enthalten)
"
betrachtet.
• Damit ist der Hoare-Kalk
ul nur so vollstandig wie der zu Grunde liegende Implikationskalkul\, aber
"
immerhin vollstandig relativ zu diesem.
Eine weitere Einschrankung des Hoare-Kalkuls liegt in Folgendem:
• F
ur unser Lemma waren die Tests |c]q wichtig.
• Nun ist aus ahnlichen Gr
unden wie bei der Vollstandigkeit aber gar nicht klar, ob sich in einer konkreten
Programmlogik alle solchen Tests auch durch Formeln ausdrucken lassen,
• besonders, wenn wir spater noch Schleifen hinzunehmen.
• F
ur das relative Vollstandigkeitsresultat muss also angenommen werden, dass die verwendete Logik hinreichend ausdrucksstark ist, d.h. dass |c]q wirklich stets durch eine Formel ausdruckbar ist.
Algebraische Semantik
c B. Moller 2008
Herunterladen