14.07.2013 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!