Modellierung, Analyse, Verifikation (Programmanalyse)

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