Grundläggande logik och modellteori
Inledning till modellteori och modellprövning
Jonas Hägglund
Department of mathematics Umeå university
Våren 2011
Jonas Hägglund (Umeå university) Grundläggande logik och modellteori VT 2011 1 / 25
Dagens föreläsning
1 Innehåll på resten av kursen
2 Verifikation
Varför verifikation?
Formella metoder för verifikation
3 Modellteori
Vad är modellteori Modeller
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)
Jonas Hägglund (Umeå university) Grundläggande logik och modellteori VT 2011 3 / 25
Varför verifikation?
Creative Commons Attribution-NonCommercial, www.xkcd.orgc
Varför behövs verifikation?
I system som används i kritiska applikationer kan buggar få förödande konsekvenser.
Massproducerad hårdvara.
Kostnaden för hård- och mjukvarufel kan ibland uppgå till flera miljarder kronor och ibland även mänskliga liv.
Jonas Hägglund (Umeå university) Grundläggande logik och modellteori VT 2011 5 / 25
Ariane 5
Ariane 5 rocket c Creative Commons Attribution-Share Alike
Exploderade 1996 Orsaken: En typkonvertering från en 64-bitars float till en 16-bitars int.
Kostnad: Över 3 miljarder kr.
Några andra kända och (mycket) förödande mjukvarufel
FDIV-bugg i Intel Pentium-processorn resulterade att flyttalsdivision ibland kunde ge fel resultat. Kostnad: nästan 500 miljoner 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.
Ett problem hos AT&T 1990 gjorde att en stor del av det amerikanska telefonnätet var nere under flera timmar.
Tredje världskriget (nästan iaf) - Den 26:e september 1983 indikerade ett sovjetiskt varningssystem felaktigt att USA hade avfyrat fem
kärnvapenmissiler mot Sovjetunionen.
Jonas Hägglund (Umeå university) Grundläggande logik och modellteori VT 2011 7 / 25
Några andra kända och (mycket) förödande mjukvarufel
FDIV-bugg i Intel Pentium-processorn resulterade att flyttalsdivision ibland kunde ge fel resultat. Kostnad: nästan 500 miljoner 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.
Ett problem hos AT&T 1990 gjorde att en stor del av det amerikanska telefonnätet var nere under flera timmar.
Tredje världskriget (nästan iaf) - Den 26:e september 1983 indikerade ett sovjetiskt varningssystem felaktigt att USA hade avfyrat fem
kärnvapenmissiler mot Sovjetunionen.
Formell 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
Jonas Hägglund (Umeå university) Grundläggande logik och modellteori VT 2011 8 / 25
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
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.
Jonas Hägglund (Umeå university) Grundläggande logik och modellteori VT 2011 10 / 25
Modellbaserad verifikation (modellverifiering)
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
System
Matematisk modell M
Specifikation
Formell specifikation φ
Modellprövning: M |= φ?
abstraktion representation
Jonas Hägglund (Umeå university) Grundläggande logik och modellteori VT 2011 12 / 25
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 att 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.
Rymdsonder - NASA har använt modeltestning för flera rymdsonder på senare tid.
Vad är modellteori?
Modellteori ä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
Jonas Hägglund (Umeå university) Grundläggande logik och modellteori VT 2011 14 / 25
Varför ska datavetare bry sig om modellteori?
Tillämpningar för ändlig modellteori kan bland annat hittas inom Databasteori
Komplexitetsteori Teori för formella språk AI
Formell verifikation
Mer om detta senare i kursen
Lästips för intresserade: Elements of Finite Model Theory av Leonid Libkin.
Vad är en modell? (repetition)
I satslogiken kan enmodell för en mängd formler intuitivt ses som en tolkning som där formlerna är sanna. Formellt: Om Γ ⊂ WF (L) så är en modell för Γ en funktion ν : P → {T , F } där P är
mängden atomer så att ν(φ) = T för alla φ ∈ Γ. Mängden av alla modeller för Γ betecknas Mod(Γ).
I predikatlogiken är det mer komplicerat...
Jonas Hägglund (Umeå university) Grundläggande logik och modellteori VT 2011 16 / 25
Modeller i predikatlogik (repetition)
Definition
F - mängd funktionssymboler P - mängd predikatsymboler C - mängd konstanter
Entolkning J till V = (F , P, C) är följande:
A 6= ∅ är en mängd av konkreta värden (kallas vanligtvis för universa eller domän och betecknas ibland dom(J )) för varje konstant c ∈ C har vi ett konkret element cJ ∈ A för alla n-ställiga funktionssymboler f ∈ F där n > 0 har vi en funktion fJ :An→ A
för alla n-ställiga predikatsymboler P ∈ P har vi en mängd PJ ⊂ An
Notation: V brukar ofta kallas för ettvokabulär.
Modeller forts...
Definition
Om Φ är en mängd meningar och M en tolkning till ett vokabulär så säger vi att M är enmodell till Φ om φM=1 för alla φ ∈ Φ. Detta skrivs vanligtvis M |= Φ. Mängden av alla modeller till Φ skrivs Mod(Φ).
Definition
Ett vokabulär V tillsammans med en tolkning M kallas för en V-struktur.
Jonas Hägglund (Umeå university) Grundläggande logik och modellteori VT 2011 18 / 25
Exempel på en struktur
Example
Låt V = ({sum(2),mult(2)}, ∅, {1s,2s,3s,4s, . . . })och tolkningen M vara följande:
Universa A = N
sum(x , y ) = x + y och mult(x , y ) = xy 1s =1, 2s=2, . . .
Observera att man ofta identifierar symbolerna med symbolernas tolkning när man definierar strukturer. Dvs. t.ex. låter symbolen 1 vara talet 1 ∈ N och sum(x, y) brukar skrivas x + y (infix notation).
Exempel på en modell i predikatlogik
Example
Låt V = (F , P, C) vara som i föregående exempel och betrakta φ = ∀x ∃y (1 + x2=y ) . Är då M en modell till φ? Dvs gäller M |= φ?
Hur är det med ψ = ∀y ∃x (1 + x2=y )?
Jonas Hägglund (Umeå university) Grundläggande logik och modellteori VT 2011 20 / 25
Ännu ett exempel
Example
Låt ({sum(2)}, {prime(x), even(x)}, {1, 2, 3, 4, . . . }) vara ett vokabulär och betrakta formeln
φ = ∀x (even(x ) → ∃y ∃z(prime(z) ∧ prime(y ) ∧ sum(y , z) = x ))
Lämplig modell?
Exempel forts...
Example
Betrakta följande struktur M:
A = N
sumM(x , y ) = x + y
primeM=mängden av alla primtal
evenM=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. Är detta sant i M? Dvs gäller det att M |= φ?
Jonas Hägglund (Umeå university) Grundläggande logik och modellteori VT 2011 22 / 25
En annan tänkbar modell
Example
En enklare struktur M0 är följande:
A = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
sumM0(x , y ) = x + y mod 13
primeM0 =mängden av alla primtal i A = {2, 3, 5, 7, 11}
evenM0 =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 detta är en modell ty:
4 = 2 + 2, 6 = 3 + 3, 8 = 5 + 3, 12 = 5 + 7
Sammanfattning av dagens föreläsning
Vad är verifikation och varför behövs det.
Olika typer av verifikation Väldigt kort om modellteori Modeller i predikatlogik
Jonas Hägglund (Umeå university) Grundläggande logik och modellteori VT 2011 24 / 25
Nästa föreläsning
Introduktion till temporallogik Linjärtids-temporallogik (LTL)
Syntax Semantik
Introduktion till modellprövning