Grundläggande logik och modellteori - Inledning till modellteori och ...
Grundläggande logik och modellteori - Inledning till modellteori och ...
Grundläggande logik och modellteori - Inledning till modellteori och ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong><br />
<strong>Inledning</strong> <strong>till</strong> <strong>modellteori</strong> <strong>och</strong> modellprövning<br />
Jonas Hägglund<br />
Department of mathematics<br />
Umeå university<br />
Våren 2010<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 1 / 26
Dagens föreläsning<br />
1 Innehåll på resten av kursen<br />
2 Verifikation<br />
Varför verifikation?<br />
Formella metoder för verifikation<br />
3 Modellteori<br />
Vad är <strong>modellteori</strong><br />
Modeller<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 2 / 26
Följande kommer att tas upp på de kommande<br />
föreläsningarna<br />
Modeller <strong>och</strong> <strong>modellteori</strong><br />
Modellprövning<br />
Verktyg, NuSMV<br />
Algoritmer<br />
Temporal<strong>logik</strong><br />
Linjärstids-temporal<strong>logik</strong> (LTL)<br />
Förgrenad-tids temporal<strong>logik</strong> (CTL)<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 3 / 26
Varför behövs verifikation?<br />
I system som används i kritiska applikationer kan buggar få<br />
förödande konsekvenser.<br />
Kostnaden för hård- <strong>och</strong> mjukvarufel kan ibland uppgå <strong>till</strong> flera<br />
miljarder kronor <strong>och</strong> ibland även mänskliga liv.<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 4 / 26
Ariane 5<br />
Bilden är borttagen<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 5 / 26
Pentium<br />
Bilden är borttagen men återfinns här: Bild<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 6 / 26
Pentium<br />
Bilden är borttagen men återfinns här: Bild<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 7 / 26
Några kända (mycket) förödande mjukvarufel<br />
FDIV-bugg i Intel Pentium-processorn<br />
Ariane 5 - Rymdraket som exploderade 1996. Kostnad c:a 7<br />
miljarder USD.<br />
Therac-25 - En maskin för strålningsbehandling av<br />
cancer-patienter. Felet resulterade i att minst fem patienter miste<br />
sina liv.<br />
MIM-104 Patriot - Luftvärnsmissil som p.g.a. en bugg missade att<br />
stoppa en SCUD-missil som dödade 28 människor.<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 8 / 26
Formell verifikation<br />
Formell verifikation är användandet av formella verktyg från matematik<br />
<strong>och</strong> <strong>logik</strong> för att visa att ett system (kan vara både mjuk- <strong>och</strong> hårdvara)<br />
gör vad det ska göra (uppfyller vissa givna specifikationer).<br />
Består vanligtvis av tre delar:<br />
Ett språk för att modellera systemet<br />
Ett språk för att beskriva de egenskaper som ska verifieras<br />
En metod för att pröva om systemet uppfyller specifikationen<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 9 / 26
Två olika typer av formell verifikation<br />
Bevisbaserad verifikation Systemet beskrivs med en<br />
uppsättning formler Γ <strong>och</strong> specifikationen med en annan formel φ.<br />
Metoden går ut på att visa att Γ ⊢ φ.<br />
Modellbaserad verifikation Systemet representeras av en<br />
modell M <strong>och</strong> specifikationen representeras av en formel φ.<br />
Metoden går i huvudsak ut på att visa att M satisfierar φ, dvs att<br />
M |= φ (mer om detta senare).<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 10 / 26
Bevisbaserad verifikation<br />
Mycket svårt att helt automatisera (t.o.m. omöjligt enligt Gödels<br />
ofullständighetssats).<br />
Används vanligtvis för FO.<br />
Om vi arbetar i en <strong>logik</strong> där Γ ⊢ φ omm Γ |= φ så gäller beviset för<br />
alla modeller.<br />
Kan användas för system med ∞ många <strong>till</strong>stånd.<br />
Det finns en stor uppsättning theorem provers.<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 11 / 26
Modellbaserad verifikation (modellprövning)<br />
I allmänhet enklare än bevisbaserad verifikation eftersom vi bara<br />
tittar på en möjlig modell.<br />
Lämplig för t.ex. kommunikationsprocesser med ändligt många<br />
<strong>till</strong>stånd.<br />
Vanligtvis baserad på någon form av temporal<strong>logik</strong> (i den här<br />
kursen kommer CTL <strong>och</strong> LTL att gås igenom).<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 12 / 26
Modellprövning<br />
abstraktion<br />
System<br />
Matematisk modell M<br />
Modellprövning: M |= φ?<br />
Specifikation<br />
representation<br />
Formell specifikation φ<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 13 / 26
Exempel där formell verifikation används<br />
Utveckling av hårdvarukretsar <strong>och</strong> processorer - Används av<br />
företag som Intel, AT&T, HP, Motorola, Sun, Fujitu-Siemens <strong>och</strong><br />
NEC.<br />
The Compcert verified compiler - En C-kompilator för<br />
PowerPC-arkitekturen där det är bevisat att den genererade<br />
assemblerkoden är semantiskt ekvivalent med källkoden för det<br />
ursprungliga programmet.<br />
Extremt säkra operativsystem - För att uppnå den absolut<br />
högsta säkerhetsklassificeringen från NSA krävs att ett<br />
operativsystem är formellt verifierat, designad <strong>och</strong> testat.<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 14 / 26
Vad är <strong>modellteori</strong>?<br />
Modellteori är en gren av matematisk <strong>logik</strong> som studerar<br />
strukturer (modeller) m.h.a. <strong>logik</strong>.<br />
Brukar vanligtvis använda första ordningens predikat<strong>logik</strong>.<br />
Ligger i gränslandet mellan datavetenskap, matematik, filosofi <strong>och</strong><br />
<strong>logik</strong>.<br />
Delas ofta in i två olika områden:<br />
Ändlig <strong>modellteori</strong><br />
Oändlig <strong>modellteori</strong><br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 15 / 26
Vad är en modell? (repetition)<br />
I sats<strong>logik</strong>en kan en modell för en mängd formler intuitivt ses som<br />
en tolkning som där formlerna är sanna. Formellt: Om Γ ⊂ WF(L)<br />
så är en modell för Γ en funktion ν : P → {T , F} där P är<br />
mängden atomer så att ν(φ) = T för alla φ ∈ Γ. Mängden av alla<br />
modeller för Γ betecknas Mod(Γ).<br />
I predikat<strong>logik</strong>en är det mer komplicerat...<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 16 / 26
Modeller i predikat<strong>logik</strong> (repetition)<br />
Definition<br />
F - mängd funktionssymboler<br />
P - mängd predikatsymboler<br />
C - mängd konstanter<br />
En tolkning J <strong>till</strong> V = (F, P, C) är följande:<br />
A = ∅ är en mängd av konkreta värden (kallas vanligtvis för<br />
universa eller domän <strong>och</strong> betecknas ibland dom(J ))<br />
för varje konstant c ∈ C har vi ett konkret element c J ∈ A<br />
för alla n-ställiga funktionssymboler f ∈ F där n > 0 har vi en<br />
funktion f J : A n → A<br />
för alla n-ställiga predikatsymboler P ∈ P har vi en mängd<br />
P J ⊂ A n<br />
Notation: V brukar ofta kallas för ett vokabulär.<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 17 / 26
Modeller forts...<br />
Definition<br />
Om Φ är en mängd meningar <strong>och</strong> M en tolkning <strong>till</strong> ett vokabulär så<br />
säger vi att M är en modell <strong>till</strong> Φ om φ M = 1 för alla φ ∈ Φ. Detta<br />
skrivs vanligtvis M |= Φ. Mängden av alla modeller <strong>till</strong> Φ skrivs<br />
Mod(Φ).<br />
Definition<br />
Ett vokabulär V <strong>till</strong>sammans med en tolkning M kallas för en<br />
V-struktur.<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 18 / 26
Exempel på en struktur<br />
Example<br />
Låt V = ({sum (2) , mult (2) }, ∅, {1s, 2s, 3s, 4s, . . . }) <strong>och</strong> tolkningen M<br />
vara följande:<br />
Universa A = N<br />
sum(x, y) = x + y <strong>och</strong> mult(x, y) = xy<br />
1s = 1, 2s = 2, . . .<br />
Observera att man ofta identifierar symbolerna med symbolernas<br />
tolkning när man definierar strukturer. Dvs. t.ex. låter symbolen 1 vara<br />
talet 1 ∈ N <strong>och</strong> sum(x, y) brukar skrivas x + y (infix notation).<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 19 / 26
Exempel på en modell i predikat<strong>logik</strong><br />
Example<br />
Låt V = (F, P, C) vara som i föregående exempel <strong>och</strong> betrakta<br />
φ = ∀x∃y(1 + x 2 = y) . Är då M en modell <strong>till</strong> φ? Dvs gäller M |= φ?<br />
Hur är det med ψ = ∀y∃x(1 + x 2 = y)?<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 20 / 26
Ännu ett exempel<br />
Example<br />
Låt ({sum (2) }, {prime(x), even(x)}, {1, 2, 3, 4, . . . }) vara ett vokabulär<br />
<strong>och</strong> betrakta formeln<br />
φ = ∀x(even(x) → ∃y∃z(prime(z) ∧ prime(y) ∧ sum(y, z) = x))<br />
Lämplig modell?<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 21 / 26
Exempel forts...<br />
Example<br />
Betrakta följande struktur M:<br />
A = N<br />
sum M (x, y) = x + y<br />
prime M = mängden av alla primtal<br />
even M = mängden av alla jämna tal större än 2<br />
Formeln<br />
φ = ∀x(even(x) → ∃y∃z(prime(z) ∧ prime(y) ∧ sum(y, z) = x)) kan<br />
nu utläsas som: Varje jämnt heltal större än tre är summan av två<br />
primtal. Är detta sant i M? Dvs gäller det att M |= φ?<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 22 / 26
En annan tänkbar modell<br />
Example<br />
En enklare struktur M ′ är följande:<br />
A = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}<br />
sumM′ (x, y) = x + y mod 13<br />
primeM′ = mängden av alla primtal i A = {2, 3, 5, 7, 11}<br />
evenM′ = mängden av alla jämna tal i A större än<br />
2 = {4, 6, 8, 10, 12}<br />
Det är lätt att inse att detta är en modell ty:<br />
4 = 2 + 2, 6 = 3 + 3, 8 = 5 + 3, 12 = 5 + 7<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 23 / 26
Exempel på tavlan<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 24 / 26
Sammanfattning av dagens föreläsning<br />
Vad är verifikation <strong>och</strong> varför behövs det.<br />
Olika typer av verifikation<br />
Väldigt kort om <strong>modellteori</strong><br />
Modeller i predikat<strong>logik</strong><br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 25 / 26
Nästa föreläsning<br />
Introduktion <strong>till</strong> temporal<strong>logik</strong><br />
Linjärtids-temporal<strong>logik</strong> (LTL)<br />
Syntax<br />
Semantik<br />
Jonas Hägglund (Umeå university) <strong>Grundläggande</strong> <strong>logik</strong> <strong>och</strong> <strong>modellteori</strong> VT 2010 26 / 26