Kapitel 10

Werbung
 VON HOARE II
10 DER ZUSICHERUNGSKALKUL
10
10.1
1
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 2007
 VON HOARE II
10 DER ZUSICHERUNGSKALKUL
2
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 10.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 2007
 VON HOARE II
10 DER ZUSICHERUNGSKALKUL
3
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 10.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 2007
Herunterladen