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