Modeller och uttrycksfullhet hos predikatlogik Department of mathematics Umeå university Föreläsning 10
Dagens föreläsning 1 Innehåll på resten av kursen 2 Varför verifikation? Formella metoder för verifikation 3
Följande kommer att tas upp på de kommande föreläsningarna Modeller och modellteori Modellprövning Verktyg, NuSMV Algoritmer Temporallogik Linjärstids-temporallogik (LTL) Förgrenad-tids temporallogik (CTL)
Varför verifikation? Formella metoder för verifikation Varför behövs verifikation? I system som används i kritiska applikationer kan buggar få förödande konsekvenser. Kostnaden för hård- och mjukvarufel kan ibland uppgå till flera miljarder kronor och ibland även mänskliga liv.
Ariane 5 Innehåll på resten av kursen Varför verifikation? Formella metoder för verifikation
Pentium Innehåll på resten av kursen Varför verifikation? Formella metoder för verifikation Här var det en serie från Userfriendly.org som jag valde att inte ta med i denna handout. Den går att hitta på www.userfriendly.org för den som är intresserad.
Varför verifikation? Formella metoder för verifikation Några kända (mycket) förödande mjukvarufel FDIV-bugg i Intel Pentium-processorn Ariane 5 - Rymdraket som exploderade 1996. Kostnad c:a 7 miljarder USD. Therac-25 - En maskin för strålningsbehandling av cancer-patienter. Felet resulterade i att minst fem patienter miste sina liv. MIM-104 Patriot - Luftvärnsmissil som p.g.a. en bugg missade att stoppa en SCUD-missil som dödade 28 människor.
Formell verifikation Innehåll på resten av kursen Varför verifikation? Formella metoder för verifikation Formell verifikation är användandet av formella verktyg från matematik och logik för att visa att ett system (kan vara både mjuk- och hårdvara) gör vad det ska göra (uppfyller vissa givna specifikationer). Består vanligtvis av tre delar: Ett språk för att modellera systemet Ett språk för att beskriva de egenskaper som ska verifieras En metod för att pröva om systemet uppfyller specifikationen
Varför verifikation? Formella metoder för verifikation Två olika typer av formell verifikation Bevisbaserad verifikation Systemet beskrivs med en uppsättning formler Γ och specifikationen med en annan formel φ. Metoden går ut på att visa att Γ φ. Modellbaserad verifikation Systemet representeras av en modell M och specifikationen representeras av en formel φ. Metoden går i huvudsak ut på att visa att M satisfierar φ, dvs att M = φ (mer om detta senare).
Bevisbaserad verifikation Varför verifikation? Formella metoder för verifikation Mycket svårt att helt automatisera (t.o.m. omöjligt enligt Gödels ofullständighetssats). Används vanligtvis för FO. Om vi arbetar i en logik där Γ φ omm Γ = φ så gäller beviset för alla modeller. Kan användas för system med många tillstånd. Det finns en stor uppsättning theorem provers.
Varför verifikation? Formella metoder för verifikation Modellbaserad verifikation (modellprövning) I allmänhet enklare än bevisbaserad verifikation eftersom vi bara tittar på en möjlig modell. Lämplig för t.ex. kommunikationsprocesser med ändligt många tillstånd. Vanligtvis baserad på någon form av temporallogik (i den här kursen kommer CTL och LTL att gås igenom).
Modellprövning Innehåll på resten av kursen Varför verifikation? Formella metoder för verifikation abstraktion System Matematisk modell M Specifikation representation Formell specifikation φ Modellprövning: M = φ?
Varför verifikation? Formella metoder för verifikation Exempel där formell verifikation används Utveckling av hårdvarukretsar och processorer - Används av företag som Intel, AT&T, HP, Motorola, Sun, Fujitu-Siemens och NEC. The Compcert verified compiler - En C-kompilator för PowerPC-arkitekturen där det är bevisat den genererade assemblerkoden är semantiskt ekvivalent med källkoden för det ursprungliga programmet. Extremt säkra operativsystem - För att uppnå den absolut högsta säkerhetsklassificeringen från NSA krävs att ett operativsystem är formellt verifierat, designad och testat.
? är en gren av matematisk logik som studerar strukturer (modeller) m.h.a. logik. Brukar vanligtvis använda första ordningens predikatlogik. Ligger i gränslandet mellan datavetenskap, matematik, filosofi och logik. Delas ofta in i två olika områden: Ändlig modellteori Oändlig modellteori
Vad är en modell? Innehåll på resten av kursen I satslogiken är en modell en funktion ν : P {T, F} där P är mängden atomer. Om P = n har vi 2 n möjliga modeller. I predikatlogiken är det mer komplicerat...
Modeller i predikatlogik (repetition) Definition F - mängd funktionssymboler P - mängd predikatsymboler En modell M till (F, P) är följande: A är en mängd av konkreta värden (kallas vanligtvis för universa) för varje 0-ställig funktionssymbol f F har vi ett konkret element f M A för alla n-ställiga funktionssymboler f F där n > 0 har vi en funktion f M : A n A för alla n-ställiga predikatsymboler P P har vi en mängd P M A n
Exempel på en modell i predikatlogik Example Funktionssymboler: F = {sum(x, y)} Predikatsymboler: P = {prime(x), even(x)} Vill studera formeln x(even(x) y z(prime(z) prime(y) sum(y, z) = x)) Lämplig modell?
Exempel forts... Innehåll på resten av kursen Example En tänkbar modell M: A = N sum M (x, y) = x + y prime M = mängden av alla primtal even M = mängden av alla jämna tal större än 2 Formeln x(even(x) y z(prime(z) prime(y) sum(y, z) = x)) kan nu utläsas som: Varje jämnt heltal större än tre är summan av två primtal. Observera att detta är en oändlig modell!
En annan tänkbar modell Example En enklare modell M är följande: A = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} sum M (x, y) = x + y prime M = mängden av alla primtal i A = {2, 3, 5, 7, 11} even M = mängden av alla jämna tal i A större än 2 = {4, 6, 8, 10, 12} Det är lätt att inse att formeln är sann i denna modell ty: 4 = 2 + 2, 6 = 3 + 3, 8 = 5 + 3, 12 = 5 + 7
Miljö Innehåll på resten av kursen För fria variabler behöver vi en funktion som mappar dessa mot konkreta värden i universat A när vi ska undersöka om formeln uppfyller modellen. Definition En miljö för ett universa A är en funktion l : var A. Om l(x) = a skriver vi l[x a].
Definition av M = φ Definition Givet en modell M för (F, P) och en miljö l så definierar vi M = l φ (utläses φ är sann i M med respekt på miljön l) rekursivt på följande sätt: Om φ = P(t 1, t 2,..., t n ) och l(t 1 ) = a 1,..., l(t n ) = a n så gäller M = l φ om (a 1,..., a n ) P M M = l ψ gäller omm M = l[x a] ψ för alla a A. M = l ψ gäller omm M = l[x a] ψ för någon a A. M = l ψ gäller omm M = l ψ inte gäller. M = l ψ 1 ψ 2 gäller omm M = l ψ 1 och M = l ψ 2 gäller. M = l ψ 1 ψ 2 gäller omm M = l ψ 1 eller M = l ψ 2 gäller. M = l ψ 1 ψ 2 gäller omm M = l ψ 2 alltid gäller då M = l ψ 1 gäller.
M = φ forts... Innehåll på resten av kursen Om M = l φ gäller oavsett valet av miljö l skriver vi bara M = φ. Detta gäller alltid om φ saknar fria variabler. Definition Om Γ är en mängd formler i predikatlogik och φ är en annan formel i samma logik så gäller Γ = φ omm M = l ψ gäller för alla modeller M, miljöer l och ψ Γ.
Exempel på tavlan Innehåll på resten av kursen
Sammanfattning av dagens föreläsning Vad är verifikation och varför behövs det. Olika typer av verifikation Modeller i predikatlogik
Nästa föreläsning Innehåll på resten av kursen Introduktion till temporallogik Linjärtids-temporallogik (LTL) Syntax Semantik