Capaciteitsgroep Informatica Faculteit Wiskunde en Informatica, TU/e Tentamen Semantiek 2IT40 21 augustus 2007, 9.00–12.00u. Er zijn in totaal honderd punten te behalen. Het tentamencijfer is gelijk aan het tiende deel van het behaalde aantal punten. Dit is een gesloten boek tentamen; u mag geen gebruik maken van dictaat, handouts, aantekeningen, slides, etc. Er is een bijlage bij dit tentamen met daarin een aantal tabellen met afleidingsregels. Opgave 1 Zij b een boolse uitdrukking in de taal IMP, en zij c1 , c2 , c3 programma’s (commands) in deze taal. Maak gebruik van de (big-step) operationele semantiek van IMP, om te bewijzen dat als hwhile b do c1 , σi → σ 0 , dat dan geldt hb, σ 0 i → false. Gebruik dit feit vervolgens om te bewijzen dat (while b do c1 ); (if b then c2 else c3 ) ∼ (while b do c1 ); c3 . (20 ptn.) Opgave 2 Beschouw het IMP programma c ≡ while (X 6= 0) do (X := X − 1 ; Y := Y + 1) . Neem aan dat X en Y de enige locaties zijn, zodat een toestand σ ∈ Σ kan worden gerepresenteerd door het paar (σ(X ), σ(Y )). (a) Laat zien, door gebruik te maken van de small-step operationele semantiek van c, dat er een begintoestand is vanuit welke het programma c niet termineert. (10 ptn.) (b) Laat zien dat de partiële functie ψ : Σ * Σ gedefinieerd door (0, x + y) als x ≥ 0 ψ(x, y) = ⊥ als x < 0 een dekpunt is van de iterator Γc , gebruikt in de denotationele semantiek van c. (10 ptn.) (c) Definieer de rij functies ϕ0 , ϕ1 , . . . , ϕn , . . ., startend met de nooit gedefinieerde functie, de volgende in de rij steeds verkregen door de iterator Γc toe te passen, die convergeert naar de denotationele semantiek van c. (10 ptn.) (d) Vind nog een ander dekpunt van de iterator Γc . Bewijs, dat deze functie inderdaad een dekpunt is. (15 ptn.) 1 Opgave 3 Beschouw de GCL commands w ≡ if X > 0 → X := 0 8 X < 0 → X := 0 fi en w0 ≡ do X > 0 → X := 0 8 X < 0 → X := 0 od . (a) Bewijs dat de formule {true}w{X = 0} geldig is in de zin van partiële correctheid. (5 ptn.) (b) Bewijs dat de formule {true}w{X = 0} niet geldig is in de zin van totale correctheid. (5 ptn.) (c) Geef een preconditie A zodanig dat {A}w{X = 0} wel geldig is in de zin van totale correctheid. Bewijs uw antwoord. (5 ptn.) (d) Bewijs dat de formule {true}w0 {X = 0} geldig is in de zin van totale correctheid. (5 ptn.) Opgave 4 Beschouw het FUN programma P : mult x y = if x = 0 then 0 else x ∗ y . Vind twee FUN termen t1 en t2 zo dat de call-by-name operationele semantiek van mult t1 t2 niet gelijk is aan die van mult t2 t1 . Motiveer uw antwoord! (15 ptn.) 2