Serge Autexier Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe 2020
3. Übungsblatt
Ausgabe: 14.05.20 Abgabe: 19.05.20
Dieses Übungsblatt ist ein PDF-Formular. Bitte in einem PDF-Viewer Ihrer Wahl ausfüllen, abspeichern, und an die Veranstalter mailen.
Gruppe: 1 2 3 4 5 6 7 8 9 10 11 12
Name: Matrikelnummer:
Name: Matrikelnummer:
Name: Matrikelnummer:
3.1 Eigenschaften von arithmetischen und boolschen Ausdrücken
(a) Wir definieren die Funktion Vars auf arithmetischen Ausdrücken, welche die Menge der in einem arith- metischen Ausdruck enthaltenen Programmvariablen liefert:
Vars(x)=def{x} x∈Loc
Vars(n)=def∅ n∈Z
Vars(a1⊕a2)=defVars(a1)∪Vars(a2) ⊕ ∈ {+,−,×, /}
(i) Seienx,y,z∈ Loc. Berechnen Sie die Menge der Programmvariablen der folgenden arithmetischen Ausdrücke:
Vars(x+3∗y) = (1)
Vars((z∗2)/x) = (2)
(ii) Folgende Eigenschaft soll für arithmetische Ausdrücke gelten:
∀a∈AExp.∀σ∈Σ.∀n∈Z.ha,σi →Aexpn =⇒ Vars(a)⊆dom(σ) (3) Was bedeutet diese Eigenschaft (in natürlicher Sprache)?
— Seite 1 von 3 —
3. Übungsblatt Korrekte Software: Grundlagen und Methoden, SoSe 2020
(iii) Beweisen Sie Eigenschaft (3).
(b) Wir erweitern jetzt die Funktion Vars auf boolsche Ausdrücke wie folgt:
Vars(0)=defVars(1)=def∅
Vars(a1⊕a2)=defVars(a1)∪Vars(a2) ⊕ ∈ {==,<=},a1,a2∈AExp Vars(b1⊕b2)=defVars(b1)∪Vars(b2) ⊕ ∈ {&&,||},b1,b2∈BExp
Vars(!b)=defVars(b) b∈BExp
(i) Seienx,y,z ∈Loc. Berechnen Sie die Menge der Programmvariablen der folgenden boolschen Aus- drücke:
Vars(x+3∗y==z+5) = (4)
Vars(x<=2∗y&& 2∗z<=x) = (5)
(ii) Wir betrachten wieder eine Eigenschaft, diesmal für boolsche Ausdrücke:
∀b∈BExp.∀σ∈Σ.∀n∈ {true,false}.hb,σi →Bexpn =⇒ Vars(b)⊆dom(σ) (6) Was bedeutet diese Eigenschaft?
— Seite 2 von 3 —
3. Übungsblatt Korrekte Software: Grundlagen und Methoden, SoSe 2020
(iii) Widerlegen Sie Eigenschaft (6), indem Sie ein Gegenbeispiel angeben.
3.2 Eigenschaften von Programmen
Betrachten Sie folgende spezielle Eigenschaft von C0-Programmen:
∀c∈Stmt.∀x∈Loc.∀σ,σ0 ∈Σ.(x∈dom(σ)∧ hc,σi →Stmtσ0) =⇒ x∈dom(σ0) (7) (a) Was bedeutet diese Eigenschaft?
(b) Warum gilt diese Eigenschaft?
(c) Geben Sie eine Beweisskizze für Eigenschaft (7) an. Die Beweisskizze sollte angeben, welche Beweisme- thode (Induktion (welche, worüber?)) genutzt wird.
— Seite 3 von 3 —