Jos Baeten josb@wintuenl http://wwwwintuenl/~josb/ HG 719 tel: 040 247 5155 Hoorcollege 3 (12 april 2007)
Voorbeeld [Bewijstechniek 2 niet altijd succesvol] Executie van commands is deterministisch: c Com c, σ σ 0 & c, σ σ 1 σ 0 = σ 1 Bewijspoging: Beschouw de mogelijke vormen van de afleiding met de transities c, σ σ 0 en c, σ σ 1 als conclusie Probleem: In het geval c while b do c komt c weer voor in de premisse van (C7), dus structuurinductie helpt niet Hoorcollege 3 (12 april 2007) 1/20
Welgefundeerde inductie [well-founded induction] Een binaire relatie op een verzameling A heet welgefundeerd (Eng: well-founded) als er geen oneindig rijtje a 0, a 1,, a i, van elementen van A bestaat zo dat a i a 1 a 0 Bijvoorbeeld: de binaire relatie < op N is Hoorcollege 3 (12 april 2007) 2/20
Welgefundeerde inductie [well-founded induction] Een binaire relatie op een verzameling A heet welgefundeerd (Eng: well-founded) als er geen oneindig rijtje a 0, a 1,, a i, van elementen van A bestaat zo dat a i a 1 a 0 Bijvoorbeeld: de binaire relatie < op N is welgefundeerd; Hoorcollege 3 (12 april 2007) 2/20
Welgefundeerde inductie [well-founded induction] Een binaire relatie op een verzameling A heet welgefundeerd (Eng: well-founded) als er geen oneindig rijtje a 0, a 1,, a i, van elementen van A bestaat zo dat a i a 1 a 0 Bijvoorbeeld: de binaire relatie < op N is welgefundeerd; de binaire relatie < op Z is Hoorcollege 3 (12 april 2007) 2/20
Welgefundeerde inductie [well-founded induction] Een binaire relatie op een verzameling A heet welgefundeerd (Eng: well-founded) als er geen oneindig rijtje a 0, a 1,, a i, van elementen van A bestaat zo dat a i a 1 a 0 Bijvoorbeeld: de binaire relatie < op N is welgefundeerd; de binaire relatie < op Z is niet welgefundeerd Hoorcollege 3 (12 april 2007) 2/20
Welgefundeerde inductie [well-founded induction] Een binaire relatie op een verzameling A heet welgefundeerd (Eng: well-founded) als er geen oneindig rijtje a 0, a 1,, a i, van elementen van A bestaat zo dat a i a 1 a 0 Bijvoorbeeld: de binaire relatie < op N is welgefundeerd; de binaire relatie < op Z is niet welgefundeerd Bij iedere welgefundeerde relatie op A hoort een inductieprincipe: Hoorcollege 3 (12 april 2007) 2/20
Welgefundeerde inductie [well-founded induction] Een binaire relatie op een verzameling A heet welgefundeerd (Eng: well-founded) als er geen oneindig rijtje a 0, a 1,, a i, van elementen van A bestaat zo dat a i a 1 a 0 Bijvoorbeeld: de binaire relatie < op N is welgefundeerd; de binaire relatie < op Z is niet welgefundeerd Bij iedere welgefundeerde relatie op A hoort een inductieprincipe: a A P (a) desda a A ( b a P (b)) P (a) }{{} doorgeefeigenschap Hoorcollege 3 (12 april 2007) 2/20
Welgefundeerde inductie [well-founded induction] (2) De binaire relatie < 1 op N gedefinieerd door m < 1 n n = m + 1 is welgefundeerd Het bijbehorende inductieprincipe is natuurlijke inductie De binaire relatie 1 op Aexp gedefinieerd door a 1 a a is een onmiddellijke subexpressie van a is welgefundeerd Het bijbehorende inductieprincipe is structuurinductie op Aexp Hoorcollege 3 (12 april 2007) 3/20
De deelafleidingsordening Gegeven een verzameling R van regelinstanties, hebben we (al eerder) het begrip R-afleiding als volgt gedefinieerd: (i) een regelinstantie ( /y) R is een R-afleiding van y; (ii) als ({x 1,, x n }/y) R en d i een R-afleiding van x i (1 i n), dan is ({d 1,, d n }/y) een R-afleiding van y We schrijven d 1 d als d = ({d 1,, d n }/y) en d = d i voor zekere 1 i n; d heet dan een onmiddellijke deelafleiding van d De transitieve afsluiting van 1 is de deelafleidingsordening Als d d dan heet d een deelafleiding van d Hoorcollege 3 (12 april 2007) 4/20
Voorbeeldafleiding 2, σ 2 (A1) (A2) (A1) X, σ 3 4, σ 4 (A5) X 4, σ 12 5, σ 5 2 + ((X 4) 5), σ 9 (X 4) 5, σ 7 (A3) (A1) (A4) Hoorcollege 3 (12 april 2007) 5/20
Inductie op afleidingen Zij R een verzameling regelinstanties en zij D de verzameling van alle R-afleidingen De deelafleidingsordening is een welgefundeerde binaire relatie op D, dus er is een bijbehorend inductieprincipe: d D P (d) desda d D ( d d P (d )) P (d) }{{} doorgeefeigenschap Dit inductieprincipe heet inductie op afleidingen Hoorcollege 3 (12 april 2007) 6/20
Executie van commands is deterministisch (0) Stelling: Voor alle c Com: Als c, σ σ 0 en c, σ σ 1, dan σ 0 = σ 1 Bewijs: Stel c, σ σ 0 en c, σ σ 1 Dan zijn er afleidingen d 0 en d 1 zo dat d 0 c, σ σ 0 ; en d 1 c, σ σ 1 We doen inductie op de afleiding d 0 en onderscheiden 7 gevallen op grond van de laatste regelinstantie in d 0 Hoorcollege 3 (12 april 2007) 7/20
Executie van commands is deterministisch (1) Geval 1: laatste regelinstantie is een instantie van (C1) Hoorcollege 3 (12 april 2007) 8/20
Executie van commands is deterministisch (1) Geval 1: laatste regelinstantie is een instantie van (C1) Dan c skip en d 0 = { skip, σ σ (C1) } en d 1 = { skip, σ σ (C1) }, dus σ 0 = σ = σ 1 Hoorcollege 3 (12 april 2007) 8/20
Executie van commands is deterministisch (2) Geval 2: laatste regelinstantie is een instantie van (C2) Hoorcollege 3 (12 april 2007) 9/20
Executie van commands is deterministisch (2) Geval 2: laatste regelinstantie is een instantie van (C2) Dan c X := a en { d 0 = a, σ m X := a, σ σ[m/x ] (C2) } en d 1 = { a, σ n X := a, σ σ[n/x ] (C2) } Hoorcollege 3 (12 april 2007) 9/20
Executie van commands is deterministisch (2) Geval 2: laatste regelinstantie is een instantie van (C2) Dan c X := a en { d 0 = a, σ m X := a, σ σ[m/x ] (C2) } en d 1 = { a, σ n X := a, σ σ[n/x ] (C2) } De evaluatie van arithmetic expressions is deterministisch, dus m = n, en dus σ 0 = σ[m/x ] = σ[n/x ] = σ 1 Hoorcollege 3 (12 april 2007) 9/20
Executie van commands is deterministisch (3) Geval 3: laatste regelinstantie is een instantie van (C3) Hoorcollege 3 (12 april 2007) 10/20
Executie van commands is deterministisch (3) Geval 3: laatste regelinstantie is een instantie van (C3) Dan c c 0 ; c 1 en d 0 = c 0, σ σ 0 c 1, σ 0 σ 0 (C3) en d 1 = c 0, σ σ 1 c 1, σ 1 σ 1 (C3) c 0 ; c 1, σ σ 0 c 0 ; c 1, σ σ 1 Hoorcollege 3 (12 april 2007) 10/20
Executie van commands is deterministisch (3) Geval 3: laatste regelinstantie is een instantie van (C3) Dan c c 0 ; c 1 en d 0 = c 0, σ σ 0 c 1, σ 0 σ 0 (C3) en d 1 = c 0, σ σ 1 c 1, σ 1 σ 1 (C3) c 0 ; c 1, σ σ 0 c 0 ; c 1, σ σ 1 De afleiding die c 0, σ σ 0 bewijst, is een deelafleiding van d 0, dus volgens de inductiehypothese geldt σ 0 = σ 1 Hoorcollege 3 (12 april 2007) 10/20
Executie van commands is deterministisch (3) Geval 3: laatste regelinstantie is een instantie van (C3) Dan c c 0 ; c 1 en d 0 = c 0, σ σ 0 c 1, σ 0 σ 0 (C3) en d 1 = c 0, σ σ 1 c 1, σ 1 σ 1 (C3) c 0 ; c 1, σ σ 0 c 0 ; c 1, σ σ 1 De afleiding die c 0, σ σ 0 bewijst, is een deelafleiding van d 0, dus volgens de inductiehypothese geldt σ 0 = σ 1 We kunnen vervolgens nog een keer de inductiehypothese toepassen, nu voor de deelafleiding die c 1, σ 0 σ 0 bewijst, en daaruit volgt dan σ 0 = σ 1 Hoorcollege 3 (12 april 2007) 10/20
Executie van commands is deterministisch (4) Geval 4: laatste regelinstantie is een instantie van (C4) Hoorcollege 3 (12 april 2007) 11/20
Executie van commands is deterministisch (4) Geval 4: laatste regelinstantie is een instantie van (C4) Dan c if b then c 0 else c 1 en d 0 = b, σ true c 0, σ σ 0 (C4) en d 1 = if b then c 0 else c 1, σ σ 0 if b then c 0 else c 1, σ σ 1 Hoorcollege 3 (12 april 2007) 11/20
Executie van commands is deterministisch (4) Geval 4: laatste regelinstantie is een instantie van (C4) Dan c if b then c 0 else c 1 en d 0 = b, σ true c 0, σ σ 0 (C4) en d 1 = b, σ true c 0, σ σ 1 (C4) if b then c 0 else c 1, σ σ 0 if b then c 0 else c 1, σ σ 1 (Merk op: omdat b, σ true en evaluatie van boolean expressions deterministisch is, is de laatst toegepaste regel in d 1 ook (C4)) De afleiding die c 0, σ σ 0 bewijst, is een deelafleiding van d 0, dus volgens de inductiehypothese geldt σ 0 = σ 1 Hoorcollege 3 (12 april 2007) 11/20
Executie van commands is deterministisch (5) Geval 5: laatste regelinstantie is een instantie van (C5) Hoorcollege 3 (12 april 2007) 12/20
Executie van commands is deterministisch (5) Geval 5: laatste regelinstantie is een instantie van (C5) Dan c if b then c 0 else c 1 en d 0 = b, σ false c 1, σ σ 0 (C5) en d 1 = if b then c 0 else c 1, σ σ 0 if b then c 0 else c 1, σ σ 1 Hoorcollege 3 (12 april 2007) 12/20
Executie van commands is deterministisch (5) Geval 5: laatste regelinstantie is een instantie van (C5) Dan c if b then c 0 else c 1 en d 0 = b, σ false c 1, σ σ 0 (C5) en d 1 = b, σ false c 1, σ σ 1 (C5) if b then c 0 else c 1, σ σ 0 if b then c 0 else c 1, σ σ 1 (Merk op: omdat b, σ false en evaluatie van boolean expressions deterministisch is, is de laatst toegepaste regel in d 1 ook (C5)) De afleiding die c 1, σ σ 0 bewijst, is een deelafleiding van d 0, dus volgens de inductiehypothese geldt σ 0 = σ 1 Hoorcollege 3 (12 april 2007) 12/20
Executie van commands is deterministisch (6) Geval 6: laatste regelinstantie is een instantie van (C6) Hoorcollege 3 (12 april 2007) 13/20
Executie van commands is deterministisch (6) Geval 6: laatste regelinstantie is een instantie van (C6) Dan c while b do c en d 0 = b, σ false (C6) en d 1 = while b do c, σ σ while b do c, σ σ Hoorcollege 3 (12 april 2007) 13/20
Executie van commands is deterministisch (6) Geval 6: laatste regelinstantie is een instantie van (C6) Dan c while b do c en d 0 = b, σ false (C6) en d 1 = while b do c, σ σ b, σ false while b do c, σ σ (C6) (Merk op: omdat b, σ false en evaluatie van boolean expressions deterministisch is, is de laatst toegepaste regel in d 1 ook (C6)) Dus σ 0 = σ = σ 1 Hoorcollege 3 (12 april 2007) 13/20
Executie van commands is deterministisch (7) Geval 7: laatste regelinstantie is een instantie van (C7) Hoorcollege 3 (12 april 2007) 14/20
Executie van commands is deterministisch (7) Geval 7: laatste regelinstantie is een instantie van (C7) Dan c while b do c en d 0 = b, σ true c, σ σ 0 while b do c, σ 0 σ 0 (C7) en while b do c, σ σ 0 d 1 = while b do c, σ σ 1 Hoorcollege 3 (12 april 2007) 14/20
Executie van commands is deterministisch (7) Geval 7: laatste regelinstantie is een instantie van (C7) Dan c while b do c en d 0 = b, σ true c, σ σ 0 while b do c, σ 0 σ 0 (C7) en while b do c, σ σ 0 d 1 = b, σ true c, σ σ 1 while b do c, σ 1 σ 1 (C7) while b do c, σ σ 1 Hoorcollege 3 (12 april 2007) 14/20
(Merk op: omdat b, σ true en evaluatie van boolean expressions deterministisch is, is de laatst toegepaste regel in d 1 ook (C7)) De afleiding die c, σ σ 0 bewijst, is een deelafleiding van d 0, dus volgens de inductiehypothese geldt σ 0 = σ 1 We kunnen vervolgens nog een keer de inductiehypothese toepassen, nu voor de deelafleiding die while b do c, σ 0 σ 0 bewijst, en daaruit volgt dan σ 0 = σ 1 Hoorcollege 3 (12 april 2007) 15/20
Regelinductie voor commands [rule induction for commands] We kunnen met de regels voor de executie van commands ook direct een inductieprincipe associëren: Om te bewijzen dat P (c, σ, σ ) voor alle c Com en σ, σ Σ zo dat c, σ σ, is het voldoende om te bewijzen dat alle regels voor de executie van commands de eigenschap P bewaren Bijvoorbeeld, (C7) bewaart P als voor alle c Com en σ, σ Σ: b, σ true & c, σ σ & P (c, σ, σ ) & while b do c, σ σ & P (while b do c, σ, σ ) P (while b do c, σ, σ ) Hoorcollege 3 (12 april 2007) 16/20
Voorbeeld: bewijs met regelinductie voor commands Definieer de functie loc L : Com Pow(Loc) met inductie naar de structuur van commands: loc L (skip) =, loc L (X := a) = {X }, loc L (c 0 ; c 1 ) = loc L (if b then c 0 else c 1 ) = loc L (c 0 ) loc L (c 1 ), loc L (while b do c) = loc L (c) Propositie: Zij Y een locatie Dan geldt voor alle c Com en σ, σ Σ zo dat c, σ σ : Y loc L (c) σ(y ) = σ (Y ) Hoorcollege 3 (12 april 2007) 17/20
Welgefundeerd vs minimaal element Zij een binaire relatie op de verzameling A Zij Q een deelverzameling van A Een minimaal element van Q is een element m Q zó dat b m b Q Hoorcollege 3 (12 april 2007) 18/20
Welgefundeerd vs minimaal element Zij een binaire relatie op de verzameling A Zij Q een deelverzameling van A Een minimaal element van Q is een element m Q zó dat b m b Q Propositie: is welgefundeerd dan en slechts dan als elke niet-lege deelverzameling Q van A een minimaal element heeft Hoorcollege 3 (12 april 2007) 18/20
Toepassing minimaliteit: loop! Propositie: Voor alle σ, σ Σ: while true do skip, σ σ Hoorcollege 3 (12 april 2007) 19/20
Toepassing minimaliteit: loop! Propositie: Voor alle σ, σ Σ: while true do skip, σ σ Bewijs: Laat w while true do skip en stel w, σ σ Hoorcollege 3 (12 april 2007) 19/20
Toepassing minimaliteit: loop! Propositie: Voor alle σ, σ Σ: while true do skip, σ σ Bewijs: Laat w while true do skip en stel w, σ σ Dan is er een minimale afleiding d zo dat d w, σ σ ; Hoorcollege 3 (12 april 2007) 19/20
Toepassing minimaliteit: loop! Propositie: Voor alle σ, σ Σ: while true do skip, σ σ Bewijs: Laat w while true do skip en stel w, σ σ Dan is er een minimale afleiding d zo dat d w, σ σ ; de laatste regelinstantie in d moet een instantie van (C7) zijn: d = true, σ true skip, σ σ w, σ σ w, σ σ (C7) Hoorcollege 3 (12 april 2007) 19/20
Toepassing minimaliteit: loop! Propositie: Voor alle σ, σ Σ: while true do skip, σ σ Bewijs: Laat w while true do skip en stel w, σ σ Dan is er een minimale afleiding d zo dat d w, σ σ ; de laatste regelinstantie in d moet een instantie van (C7) zijn: d = true, σ true skip, σ σ w, σ σ w, σ σ (C7) Maar dan bevat d een deelafleiding d zo dat d w, σ σ, terwijl we hebben aangenomen dat d minimaal is: Hoorcollege 3 (12 april 2007) 19/20
Toepassing minimaliteit: loop! Propositie: Voor alle σ, σ Σ: while true do skip, σ σ Bewijs: Laat w while true do skip en stel w, σ σ Dan is er een minimale afleiding d zo dat d w, σ σ ; de laatste regelinstantie in d moet een instantie van (C7) zijn: d = true, σ true skip, σ σ w, σ σ w, σ σ (C7) Maar dan bevat d een deelafleiding d zo dat d w, σ σ, terwijl we hebben aangenomen dat d minimaal is: tegenspraak! Hoorcollege 3 (12 april 2007) 19/20
Voor volgende keer Uit het dictaat: 31, 32, 34, 35, 36, 313 Aanvullende opgaven: A8 Opgave van de week: Breid de operationele semantiek van IMP uit met regels voor de constructie do c while b De executie van do c while b gaat net als de executie van while b do c met dat verschil dat de conditie b niet getest wordt voordat de body c de eerste keer wordt uitgevoerd 1 Bewijs vervolgens met inductie op afleidingen dat voor alle σ, σ Σ: als while b do c, σ σ, dan do (if b then c else skip) while b, σ σ 1 Maak in je regels voor do-while geen gebruik van de aanwezigheid van while-do in de taal Hoorcollege 3 (12 april 2007) 20/20