INF3140 Modeller for parallellitet INF3140/4140: Programanalyse

Like dokumenter
INF4140 MODELLER FOR PARALLELLITET. PMA-gruppen. Institutt for informatikk Universitetet i Oslo.

var y :{x :T R}; S endvar y

FOL: syntaks og representasjon. 15. og 16. forelesning


INF3140 Modeller for parallellitet INF3140/4140: Låser og Barrierer

Sekventkalkyle for utsagnslogikk

Dagens plan. INF4170 Logikk. Fri-variabel sekventkalkyle. Forelesning 10: Automatisk bevissøk II fri-variabel sekventkalkyle og sunnhet.

Semantikk Egenskaper ved predikatlogikk Naturlig deduksjon INF3170 / INF4171. Predikatlogikk: Semantikk og naturlig deduksjon.

Repetisjonsforelesning

UNIVERSITETET I OSLO

Logiske symboler. Ikke-logiske symboler. Konnektiver Kvantorer Har fast tolking

UNIVERSITETET I OSLO

Dagens plan. INF3170 Logikk. Induktive definisjoner. Eksempel. Definisjon (Induktiv definisjon) Eksempel

En formel er gyldig hviss den sann i alle tolkninger. Kan dette sjekkes automatisk?

Førsteordens sekventkalkyle

Forelesning 2: Induktive definisjoner, utsagnslogikk og sekventkalkyle Christian Mahesh Hansen januar 2007

Hint til oppgavene. Uke 34. Uke 35. Fullstendige løsningsforslag finnes på emnesidene for 2017.

Definisjon 1.1 (Sunnhet). Sekventkalkylen LK er sunn hvis enhver LK-bevisbar sekvent er gyldig.

INF3170 Logikk. Ukeoppgaver oppgavesett 7

INF3140 / INF4140 MODELLER FOR PARALLELLITET. PMA-gruppen. Institutt for informatikk Universitetet i Oslo.

Predikatlogikk Syntaks Semantikk INF3170 / INF4171. Predikatlogikk: Syntaks og semantikk. Andreas Nakkerud. 1. september 2015

UNIVERSITETET I OSLO

INF1800 LOGIKK OG BEREGNBARHET

Førsteordens sekventkalkyle

INF3170 Forelesning 11

TMA 4140 Diskret Matematikk, 2. forelesning

Databaser fra et logikkperspektiv

Dagens plan. INF3170 Logikk. Obliger og eksamen. Forelesning 1: Introduksjon. Utsagnslogikk og sekventkalkyle. Arild Waaler. 21.

En repetisjon hrj høst 2009

Hvis Ole følger inf3170, så liker Ole logikk. Ole følger inf3170, og Ole følger ikke inf3170. Ole følger inf3170, eller Ole følger ikke inf3170.

Dagens plan. INF4170 Logikk. Modelleksistens for grunn LK repetisjon. Kompletthet av fri-variabel LK. Teorem (Kompletthet) Lemma (Modelleksistens)

Dagens plan. INF3170 Logikk. Introduksjon. Forelesning 7: Førsteordens logikk sekventkalkyle og sunnhet. Christian Mahesh Hansen. 5.

Beregn minutter til å se gjennom og fullføre ubesvarte oppgaver på slutten av eksamenstiden.

Forelesning 7: Førsteordens logikk sekventkalkyle og sunnhet Christian Mahesh Hansen - 3. mars 2007

Intuisjonistisk logikk

INF3170 Logikk. Forelesning 11: Intuisjonistisk logikk. Roger Antonsen. 27. april Institutt for informatikk, Universitetet i Oslo

INF1800 Forelesning 18

Dagens plan. INF3170 Logikk. Negasjon som bakgrunn for intuisjonistisk logikk. Til nå i kurset. Forelesning 9: Intuisjonistisk logikk.

Forelesning 1: Introduksjon. Utsagnslogikk og sekventkalkyle Arild Waaler januar 2008

Dagens plan. INF3170 Logikk. Forstå teksten og begrepene! Disponér tiden! Forelesning 15: Oppgaveløsing. Christian Mahesh Hansen. 21.

INF1800 LOGIKK OG BEREGNBARHET

Repetisjon og noen løse tråder

INF1800 Forelesning 4

MAT1030 Diskret Matematikk

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

INF1800 LOGIKK OG BEREGNBARHET

Dagens plan. INF3170 Logikk. Syntaks: Utsagnslogiske formler. Motivasjon

INF3170 / INF4171. Predikatlogikk: Skolemfunksjoner; Andreordens logikk. Andreas Nakkerud. 10. september 2015

Repetisjon: Førsteordens syntaks og semantikk. 2 Førsteordens sekventkalkyle. 3 Sunnhet av førsteordens sekventkalkyle. 1 Mengden T av termer i L:

MAT1030 Diskret Matematikk

MAT1030 Diskret matematikk

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Eksempel ((p q) r) Eksempel (p (q r))

Bevis for sunnhet (og kompletthet) av bevissystemet med hensyn på semantikken

Merk: kopieringen av hovedformelen i γ-reglene medfører at bevissøk i førsteordens logikk ikke nødvendigvis behøver å terminere!

Det betyr igjen at det får verdien F nøyaktig når p = T, q = T og r = F.

INF4140: Låser og Barrierer (Locks and Barriers)

UNIVERSITETET I OSLO

INF4170 { Logikk. Forelesning 1: Utsagnslogikk. Arild Waaler. 20. august Institutt for informatikk, Universitetet i Oslo

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk

Kapittel 4: Logikk (fortsettelse)

1 Utsagnslogikk (10 %)

MAT1030 Forelesning 4

Forelesning 7: Førsteordens logikk sekventkalkyle og sunnhet Christian Mahesh Hansen - 5. mars 2007

UNIVERSITETET I OSLO

Hvis formlene i Γ og er lukkede, vil sannhetsverdiene til formlene under M være uavhengig av variabeltilordning.

TMA 4140 Diskret Matematikk, 3. forelesning

INF1800 Forelesning 17

Forelesning 14. Rekursjon og induksjon. Dag Normann februar Oppsummering. Oppsummering. Beregnbare funksjoner

INF1800 LOGIKK OG BEREGNBARHET

Oppgave 4.4 Skriv ned setninger som svarer til den konverse og den kontrapositive av følgende utsagn.

Betinget eksekvering og logiske tester i shell

INF 3230/4230 Forelesning 9: Omskrivningslogikk

INF3170 Logikk. Forelesning 3: Utsagnslogikk, semantikk, sekventkalkyle. Roger Antonsen. Institutt for informatikk, Universitetet i Oslo

MAT1030 Diskret matematikk

Kapittel 4: Logikk (predikatlogikk)

MAT1030 Diskret matematikk

Førsteordens logikk - syntaks

MAT1030 Plenumsregning 5

Dagens plan. INF3170 Logikk. Semantikk for sekventer. Definisjon (Motmodell/falsifiserbar sekvent) Definisjon (Gyldig sekvent) Eksempel.

Litt mer mengdelære. INF3170 Logikk. Multimengder. Definisjon (Multimengde) Eksempel

Oppsummering av Kapittel 3. MAT1030 Diskret matematikk LOGIKK. Logikk. Forelesning 5: Logikk

TDT4105 Informasjonsteknologi, grunnkurs. Matlab 5: Løkker (FOR og WHILE) Matlab 6: Problemløsning / Algoritmer

MAT1030 Forelesning 14

I Kapittel 3 så vi på hvordan data, som hele tall og reelle tall, kan representeres som bitsekvenser

INF1080 Logiske metoder for informatikk. 1 Små oppgaver [70 poeng] 1.1 Grunnleggende mengdelære [3 poeng] 1.2 Utsagnslogikk [3 poeng]

Repetisjonsforelesning - INF1080

INF3170 Forelesning 2

Sekventkalkyle for første ordens predikatlogikk uten likhet

Kompletthet av LK. INF3170 Logikk. Overblikk. Forelesning 9: Mer sekventkalkyle og kompletthet. Roger Antonsen

Forelesning 3-6. februar 2006 Utsagnslogikk sekventkalkyle og sunnhet. 1 Mengdelære III. 2 Utsagnslogikk. 1.1 Multimengder. 2.

Kapittel 6: Funksjoner

Bruk piazza for å få rask hjelp til alles nytte!

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet. INF1080 Logiske metoder for informatikk

UNIVERSITETET I OSLO

Kapittel 4: Logikk (predikatlogikk)

Forberedelse Kompletthet Kompakthet INF3170 / INF4171. Predikatlogikk: kompletthet, kompakthet. Andreas Nakkerud. 8.

Emne 13 Utsagnslogikk

INF3170 Forelesning 4

INF1800 LOGIKK OG BEREGNBARHET

Transkript:

INF3140/4140: Programanalyse Uke 4, side 1.

Hvordan sjekke egenskaper ved programmer? Testing eller debugging øker tilliten til programmet ved prøving, men gir ingen garanti for korrekthet Operasjonell resonnering utprøver alle historiene til et program Formell analyse : Metode for å regne på egenskaper ved et program uten å prøve historiene én og én En test kan påvise feil, men aldri påvise korrekthet! Uke 4, side 2.

Tilstander En tilstand i et program består av verdier knyttet til programvariable. F.eks. {x == 2 y == 3} Tilstandsrommet til et program er gitt ved de forskjellige verdiene som de deklarerte variablene kan ta Sekvensielt program: en tråd opererer på sitt eget tilstandsrom Tilstanden endres v.h.a. tilordninger Eksempel {x == 5 y == 5}x = x 2;{x == 10 y == 5}y = y 2;{x == 10 y == 10} Uke 4, side 3.

Programeksekvering Gitt programmet S : S 1 ; S 2 ;... ; S n ; som starter i en tilstand p 0 : p 0 p 1 p 2 p n 1 p n S 1 S2... Sn Der p 1, p 2,...p n er tilstandene underveis i eksekveringen Dette kan dokumenteres ved: {p 0 }S 1 {p 1 }S 2 {p 2 }... {p n 1 }S n {p n } p 0, p n utgjør en ekstern spesifikasjon av programmet: {p 0 }S{p n } p 0 kalles gjerne starttilstanden og p n sluttilstanden Eksemplet fra forrige foil: {x == 5 y == 5}x = x 2;y = y 2;{x == 10 y == 10} Uke 4, side 4.

Predikater (Betingelser) Vi ønsker gjerne å si noe mer generelt om programmer, f.eks. {x == y}x = x 2;y = y 2;{x == y} Vi snakker ikke nødvendigvis om bestemte verdier avxogy, men om relasjoner mellom variablenes verdier Hvis relasjonen x == y holder når programmet starter, vil x == y også holde når programmet terminerer Da må dette også holde for bestemte initialtilstander som oppfyller relasjonen, f.eks. x == y == 5 Skal se på et system for å regne på slike relasjoner Uke 4, side 5.

Predikater Et predikat P kan betraktes som sett av tilstander som gjør P sann: x == y: Alle tilstander der x har samme verdi som y x y: Alle tilstander der x er mindre enn eller lik y x == 2 y == 3: Bare én tilstand (hvis x og y er eneste variable) true: Alle tilstander false: Ingen tilstander Eksempel {x == y}x = x 2;{x == 2 y}y = y 2;{x == y} Uke 4, side 6.

Parallell eksekvering Parallelt program: Flere tråder opererer på felles tilstandsrom. Oppdateringene til x og y kan gjøres i parallell co < x = x 3; > < y = y 2; > oc Alle parallelle eksekveringer kan skrives som en sekvens av atomære operasjoner på tilstandsrommet (gir en historie) Gir to mulige historier for programmet over Hvis n prosesser gjør m atomiske operasjoner har vi generelt: (n m)! m! n Uke 4, side 7.

Formell analyse av programmer Formell analyse er en metode for å regne på egenskaper ved et program. Dette hjelper oss til å forstå hvordan programmer virker. Det hjelper også for å konstruere programmer. Vi skal nå se på slutningsregler for formell analyse. Formelt system Aksiomer: Definerer betydningen av programsetninger i språket Slutningsregler: Lar oss koble sammen betydningen av enkeltsetninger til betydningen av hele programmet. Uke 4, side 8.

Formelle logiske systemer Vårt formelle logiske system består av: en mengde symboler en menge formler : meningsfylte kombinasjoner av symboler en mengde aksiomer : spesielle utsagn som antas å være sanne en mengde slutningsregler Slutningsreglene forteller oss hvordan vi kan finne nye sanne utsagn fra aksiomer og andre sanne utsagn: H 1 H 2... H n C Hver H i er en hypotese til slutningsregelen og C er konklusjonen. Konklusjonen er sann hvis alle hypotesene er sanne. Uke 4, side 9.

Symboler Vårt formelle logiske system består av følgende symboler: variabler (x, y,...) relasjonssymboler (=,,...) funksjonssymboler (funksjoner som ikke tar argumenter er konstanter) "connectives" (,,, ) kvantorer (, ) Uke 4, side 10.

Eksempler på formler Dersom A og B er formler så er også følgende formler: A -betyr ikke A A B -betyr A eller B A B -betyr A og B A B -betyr A impliserer/medfører B Dersom x er en variabel og P er en funksjon som kan anvendes på x så er følgende formler: x : P(x) -betyr at P(x) er sann for alle mulige verdier av x x : P(x) -betyr at det finnes minst en verdi av x som gjør P(x) sann Uke 4, side 11.

Eksempler på aksiomer og slutningsregler Typiske aksiomer A A A A Typiske slutningsregler A B A B A A B B A A B ( A) B A B Uke 4, side 12.

Noen viktige begreper tolkning koble hver formel til sann eller usann bevis utledning hvor alle løvnodene er aksiomer teorem alle linjene i et bevis er et teorem sunnhet alt som kan bevises er sant kompletthet alt som er sant kan bevises Uke 4, side 13.

Programmeringslogikk (PL)/Hoare logikk PL lar oss uttrykke og bevise utsagn om programmer. Formler i PL handler om programsetninger. De skrives som tripler: {P } S {Q} S er setning(er) i programmeringsspråket. P kalles forbetingelse og Q bakbetingelse til S. P og Q uttrykker egenskaper ved programtilstanden. Uke 4, side 14.

Tolkningen av tripler PL uttrykker partiell korrekthet. {P } S {Q} er sann hvis P er sann i initialtilstanden til S og S terminerer så vil Q være sann i sluttilstanden til S. Uke 4, side 15.

Eksempler på formler i PL {x == 4} x = 5; {x == 5} {true} x = 5; {x == 5} {y == 4} x = 5; {y == 4} {x == 4} x = x + 1; {x == 5} {x == a y == b} x = x + y; {x == a + b y == b} {x == 4 y == 7} x = x + 1; {x == 5 y == 7} Uke 4, side 16.

Slutningsregler for PL I PL har vi slutningsregler for hver setning i programmeringsspråket. Tilordningsaksiomet {P x e } x = e; {P } Tekstlig substitusjon: P x e betyr: Alle forekomster av x i P byttes ut med e. Gitt bakbetingelsen kan forbetingelsen beregnes! Dersom tilordningen x = e skal resultere i en tilstand som tilfredsstiller P, må tilstanden før tilordningen oppfylle P der x er byttet ut med e. Uke 4, side 17.

Tekstlig substitusjon (x == 1) x (x+1) x + 1 == 1 (x + y == a) y (y+x) x + (y + x) == a (y == a) x (x+y) y == a Propagerer inn i formler ( A) x e (A x e ) (A B) x e A x e B x e (A B) x e A x e B x e Uke 4, side 18.

Bevise et trippel For å bevise trippelet {P }x = e{q} i PL, må vi vise at forbetingelsen P impliserer Q x e P Q x e {Q x e }x = e{q} {P }x = e{q} Q x e er det største settet av tilstander slik at tilordningen garantert terminerer med Q Vi må vise at P er i dette settet. Uke 4, side 19.

Eksempler {1 == 1} x = 1; {x == 1} {x == 0} x = x + 1; {x == 1} {x == a y == b} x = x + y; {x == a + b y == b} {x == a} q = 0; {q y + x == a} {q y + x == a} x = x y; {q y + x + y == a} {q y + x + y == a} q = q + 1; {q y + x == a} {5 == 6} x = 5; {x == 6} Uke 4, side 20.

Bevissystemet PL (Hoare-logikk) Uttrykke og bevise egenskaper ved programmer Trippelform {P }S{Q} Oppfører programmet seg i henhold til spesifikasjonen? Ønsker å bevise egenskaper ved programeksekveringer Trenger ikke å eksekvere koden for å gjøre analysen En tolkning mapper tripler til true eller false Vi ønsker at {x == 0}x = x +1{x == 1} skal tolkes som true {x == 0}x = x +1{x == 0} skal tolkes som false Uke 4, side 21.

Tolkninger En tolkning mapper tripler til true eller false {P } S {Q} er sann hvis P er sann i initialtilstanden til S og eksekveringen av S terminerer så vil Q være sann i sluttilstanden til S. Tolkningen er altså forbundet med eksekveringen av koden. Det er slike eksekveringer vi ønsker å resonnere om ( regne på ) i programlogikken (PL) Uke 4, side 22.

Bevissystemet PL Bevissystemet består av aksiomer og slutningsregler Aksiomene omtaler de elementære programsetningene x = e, skip,... Slutningsreglene omtaler hvordan setninger settes sammen S1 ; S2, if, while, await, co...oc,... Teoremer i PL På trippelform Alle aksiomer er teoremer Konklusjonen i en regel er et teorem, gitt at hypotesene er teoremer: H 1 H 2... H n C Uke 4, side 23.

Sunnhet Dersom et trippel {P }S{Q} er et teorem i PL, så tolkes trippelet til true! F.eks. ønsker vi at {x == 0}x = x +1{x == 1} skal være et teorem (fordi det ble tolket som true)......mens {x == 0}x = x +1{x == 0} ikke skal være et teorem (fordi det ble tolket som false) Sunnhet: Alle teoremer i PL er sanne tripler (bevis ikke pensum) Hvis vi kan bruke PL til å vise at et program har en gitt egenskap, så vil eksekveringen av programmet oppfylle denne egenskapen Uke 4, side 24.

Partiell korrekthet I tolkningen antar vi terminering av setningene i {P }S{Q}, men dette bevises ikke. Vi sier dermed at vi har partiell korrekthet. Predikatene (P, Q) uttrykker safety egenskaper Predikatene i for- og bakbetingelsene begrenser mulige tilstander: {false} S; {true} {true} S; {false} programmet stopper før S uttrykker ikke-terminering av S Partiell korrekthet : Bakbetingelsen holder bare hvis programmet terminerer. Uke 4, side 25.

Tilordningsaksiomet {P x e } x = e; {P } Tekstlig substitusjon: P x e betyr: Alle forekomster av x i P byttes ut med e. Gitt bakbetingelsen kan forbetingelsen beregnes! Dersom tilordningen x = e skal resultere i en tilstand som tilfredstiller P, må tilstanden før tilordningen oppfylle P der x er byttet ut med e. Uke 4, side 26.

Eksempel 1 Dersom vi ønsker at tilordningenx = e skal terminere i en tilstand derx har verdien 5, så måeha verdien 5 før tilordningen {e == 5} x = e {x == 5} {P x e } x = e {P } Uke 4, side 27.

Eksempel 2 Gitt tilordningsaksiomet, kan vi bevise {P }x = e{q} ved å se at implikasjonen P Q x e er sann {(q y) + x == a}x = x y{(q y) + x + y == a} {(q y) + x + y == a}q = q +1{(q y) + x == a} Blå utsagn er logiske beviskrav. I dette kurset nøyer vi oss med å være overbeviste om at disse holder. (De bevises ikke formelt.) Q x e representerer den største mengden av tilstander som garanterer at eksekveringen terminerer i Q Implikasjonen krever at de aktuelle tilstandene (P ) er innenfor denne mengden Uke 4, side 28.

Slutningsregler for sekvensielle setninger Sammensetning {P } S 1 ; {Q} {Q} S 2 ; {R} {P } S 1 ; S 2 ; {R} Kondisjonal {P B} S; {Q} (P B) Q {P } if (B) S; {Q} Konsekvens P P {P } S; {Q} Q Q {P } S; {Q } While-løkke {I B} S; {I} {I} while (B) S; {I B} Blå utsagn: logiske beviskrav. While-setningen trenger en For-løkka: oppgave 2.22! løkke-invariant! Uke 4, side 29.

Sammensetningsregelen Tillater oss å gå baklengs over tilordninger. Mellombetingelsene konstrueres underveis! x == y 2 x == 2 y x == 2 y x == 2 y {x == y}x = x 2; {x == 2 y} {x == 2 y}y = y 2; {x == y} {x == y}x = x 2; y = y 2; {x == y} (q y) + x == a ((q + 1) y) + x y == a ((q + 1) y) + x == a ((q + 1) y) + x == a {(q y) + x == a}x = x y; {((q + 1) y) + x == a} {((q + 1) y) + x == a}q = q + 1; {(q y) + x == a} {(q y) + x == a}x = x y; q = q + 1; {(q y) + x == a} Uke 4, side 30.