Universität Duisburg-Essen Ingenieurwissenschaften / Informatik Dozent: Prof. Dr. Barbara König Übungsleitung: Jan Stückrath WS 2014/15 3. Februar 2015 Übungsblatt 7 Abgabe: 10. Februar 2015 Modellierung, Analyse, Verifikation (Programmanalyse) Testatblatt Aufgabe 24 Komposition von Galois-Verbindungen (7 Punkte) Gegeben seien die Galois-Verbindungen hαi , γi i, i = 1, 2 mit αi : L → Mi und γi : Mi → L. Das direkte Produkt von α1 und α2 wird folgendermaßen definiert: α : L → M1 × M2 l 7→ (α1 (l), α2 (l)) Dabei gilt für m1 , m01 ∈ M1 und m2 , m02 ∈ M2 : (m1 , m2 ) v (m01 , m02 ) ⇐⇒ m1 v m01 ∧ m2 v m02 . (a) Bestimmen Sie ein γ : M1 × M2 → L, so dass hα, γi eine Galois-Verbindung ist. Versuchen Sie dabei eine möglichst einfache Beschreibung von γ zu finden und zeigen Sie auch, dass γ die notwendigen Bedingungen einer Galois-Verbindung erfüllt. (b) Sei f : L → L eine (monotone) Funktion und seien fi# = αi ◦ f ◦ γi : Mi → Mi , i = 1, 2 die jeweils genauesten Approximationen dieser Funktion bezüglich der beiden GaloisVerbindungen. Zeigen Sie anhand eines Gegenbeispiels, dass die Funktion f1# × f2# : M1 × M2 → M1 × M2 (m1 , m2 ) 7→ (f1# (m1 ), f2# (m2 )) nicht notwendigerweise die genaueste Approximation von f bezüglich der Galois-Verbindung hα, γi ist. (Hinweis: Es gibt ein Gegenbeispiel, wobei die erste Galois-Verbindung auf der Vorzeichenabstraktion ({−, 0, +}) und die zweite auf der Even-/Odd-Abstraktion beruht.) (c) Betrachten Sie das direkte Produkt der zwei Galois-Verbindungen hα1 , γ1 i und hα2 , γ2 i, die mit Hilfe von Extraktionsfunktionen β1 , β2 folgendermaßen definiert sind: β1 : Z → {−0 , +} 0 falls z ≤ 0 − z 7→ + falls z > 0 β2 : Z → {−, +0 } − falls z < 0 z 7→ 0 falls z ≥ 0 + Die beiden Abstraktionen α1 , α2 sind beide surjektiv. Ist die Abstraktion α aus dem direkten Produkt hα, γi auch surjektiv? Falls nicht, so schränken Sie hα, γi entsprechend ein. 1 Aufgabe 25 Primzahlabstraktion (4 Punkte) Entwerfen Sie eine Galois-Verbindung hα, γi, die natürliche Zahlen (inklusive 0) auf folgende Weise abstrahiert: für jede Zahl wird bestimmt ob diese Zahl gleich 0 ist, gleich 1 ist, eine Primzahl ist, oder ob keine der drei vorhergehenden Bedingungen gilt. Bestimmen Sie eine passende Extraktionsfunktion β und die genauesten sicheren Approximationen der Operatoren für Multiplikation und Addition. Aufgabe 26 Hoare-Logik II (4 Punkte) Beweisen Sie mit Hilfe von Hoare-Logik, dass die folgenden Abläufe nicht durchführbar sind. Zeigen Sie dies rückwärts für (a), indem Sie beginnend mit dem Wert false durch Berechnung der schwächsten Vorbedingungen den Wert true herleiten, und vorwärts für (b), indem Sie beginnend mit dem Wert true durch Berechnung der stärksten Nachbedingungen den Wert false herleiten. (a) [x>y+2]1 ;[x:=x-1]2 ;[skip]3 ;[c:=x-1]4 ;[c<y]5 (b) [x>y]1 ;[c:=y-5]2 ;[y>x]3 Aufgabe 27 Prädikatabstraktion (5 Punkte) Bestimmen Sie für das folgende While-Programm passende Prädikate, um zu zeigen, dass Block 6 nicht erreichbar ist. Zeigen Sie, dass ihre Prädikatmenge ausreichend ist, indem Sie die abstrakte Interpretation dieses Programms unter Verwendung Ihrer Prädikatabstraktion angeben. Die abstrakte Interpretation muss dabei mit dem Wert true beginnen und am Block 6 den Wert false annehmen, damit die Prädikatmenge ausreichend ist. [x:=y+1]1 ; if [x<100]2 then [x:=101]3 else [skip]4 fi; if [x<y]5 then [skip]6 else [skip]7 fi 2