Grundläggande logik och modellteori - Kapitel 1

Grundläggande logik och modellteori
Kapitel 1: Introduktion, motivation
Henrik Björklund
Umeå universitet
30. augusti, 2014
Lärare
I
Henrik Björklund
MIT E445
[email protected]
I
Klas Markström
MIT E328
[email protected]
I
Niklas Zechner
MIT E451
[email protected]
Kurslitteratur
Mordechai Ben-Ari, Mathematical Logic for Computer Science, third
edition. Springer Verlag 2012, (ISBN 978-1-4471-4128-0).
Andra upplagan funkar också bra.
Den är inte lätt, men den är bra! Genomgående komputationell, men var
beredd att hoppa över vissa mer långdragna delar.
Förkunskapskrav
För tillträde till kursen krävs, förutom grundläggande behörighet,
I
Introduktion till diskret matematik (5MA008)
I
Grundläggande kurs i programmeringsmetodik, t.ex. 5DV104, 5DV105,
5DV106, 5DV114, eller motsvarande.
Det är starkt rekommenderat att ha ytterligare minst en kurs i matematik eller
kursen Datavetenskapens grunder (5DV037).
Examination
I
Teori, 4.5 hp, examineras med tentamen i skrivsal
I
Laborationer, 3 hp, examineras med 4 obligatoriska uppgifter som
publiceras på hemsidan under kursens gång. Den första lämnas in nästa
fredag. Varje uppgift består av en praktisk del och en “quiz”-del med
övningsuppgifter som skall besvaras.
I
Alla inlämningstider är strikta. Var ute i god tid!
I
Alla inlämningsuppgifter ger antingen G eller U, det finns inga
ominlämningar under pågående kurs.
I
Kursen ges på halvfart, vilket motsvarar 20 arbetstimmar i veckan. Utöver
föreläsningar och uppgifter bör det därmed finnas utrymme för ca 12
timmar egna studier.
Kursens innehåll
I
Satslogik
I
I
I
I
I
I
Första ordningens predikatlogik
I
I
I
I
Grundläggande definitioner
Ett bevissystem av den klassiska Hilbert-typen
DNF och CNF
Resolution
Horn-klausuler
Grundläggande definitioner
Resolution
Effektivitet
Temporal logik och modellteori
Kursutvärdering
I
Behandlingen av temporallogik förra året var inte helt lyckad. Den ska
arbetas om.
I
Det tillkommer en föreläsning om SAT-lösare.
I
Otydligheter på OH-bilder uppdateras kontinuerligt.
I
Inlämningsuppgift 3 var för omfattande, både teori- och praktikdelen. Den
har omarbetats till i år.
I
De teoretiska inlämningsuppgifterna var delvis för komplicerade. De har
omarbetats till i år.
Förväntade studieresultat (1/2)
Efter avslutad kurs ska studenten kunna:
I
förklara skillnaden och samspelet mellan syntax och semantik
I
förklara och använda sig av grundläggande begrepp, definitioner och
notationer inom satslogik, predikatlogik och modellteori
I
visa en grundläggande förståelse för satslogiska bevissystem och kunna
använda sig av bevisregler och axiom i praktiken
I
definiera och använda Horn-klausuler
Förväntade studieresultat (2/2)
I
uppvisa goda kunskaper och praktiska förmågor kring resolution, vilket
inbegriper att kunna omvandla formler till CNF, redogöra för
resolutionsregeln, utföra substitution och unifiering, beräkna mest
generella unifieraren, samt utföra resolutionsbevis
I
diskutera satisfierbarhet, sundhet och fullständighet för resolution, både
inom satslogik och predikatlogik
I
definiera vad som menas med en modell för de olika logiska system som
behandlats i kursen
I
redogöra för de grundläggande skillnaderna i vad som går att uttrycka i
de olika logikerna
I
visa en grundläggande förståelse för hur modeller kan användas inom
olika typer av verifikation
Kom ihåg
I
Registrera er på kursen i Portalen, om ni inte gör det under denna vecka
kan ni förlora er studieplats!
I
Kom ihåg att börja med laborationerna i tid, Prolog kommer att få mycket
lite faktiskt undervisningstid, så självstudier krävs. Inga sena inlämningar
godtas.
I
Kom ihåg att kolla er email, både @cs.umu.se-mailen och
@student.umu.se-mailen, då saker kan förändras under kursens gång.
Om ord
(Redan) dags för quiz!
Varifrån kommer order “trivial”?
Om ord
(Redan) dags för quiz!
Varifrån kommer order “trivial”?
I
Från “trivium”, från Latin för “tre vägar”
I
Trivium kallades de tre ämnena studenter först lärde sig på medeltida
universitet: Logik, Grammatik, och Retorik.
I
Logik var det första ämnet för studenter i tusentals år
I
I vanlig ordning leder historien tillbaka till de gamla grekerna
De gamla grekerna
I
I
Logiken handlar om sanning: Sanningar som kan påvisas med
systematiska resonemang
De gamla grekerna satte stort värde i retorik, men drabbades av problem
då stora retoriker framgångsrikt argumenterade övertygande trots att
deras position inte var sann.
I
I
Sofisterna var en stor skola i denna anda
Både Platon och Aristoteles skrev mycket i motstånd mot sofisterna, i
synnerhet den framstående Gorgias
I
Behovet av att kategorisera vad som var ett korrekt argument och inte var
stort. Arbetades på av Zenon, Aristoteles, Platon och många fler
I
Pytagoreiska skolan var influerande med sina geometriska sanningar
uppbyggda genom resonemang som kombinerade ett litet antal axiom.
Aristoteles
Aristoteles (384-322 fKr) är en av den västerländska filosofins viktigaste
gestalter. Han var elev till Platon, lärare till Alexander den store och skrev om
allt från poesi och drama till fysik och matematik. Hans stora inflytande på
europeiskt tänkande beror till en del på att han under lång tid var den
Katolska kyrkans “husfilosof”.
Aristoteles
I
Aristoteles var den som gav logiken sin start
I
Arbetade med variabler, nytt och formellt
I
Hans ansats var att med variabler beskriva alla möjliga meningar som var
korrekta argument, han gav dem namnet “syllogismer”
I
Syllogismer är regelscheman, givet en “stor premiss” och en “liten
premiss” etablerar de att en slutsats är sann.
Om alla Y är Z, och alla X är Y, så är alla X också Z.
Om alla människor är dödliga, och alla greker är människor, så är alla Greker
också dödliga.
Syllogismer
Det finns totalt 24 syllogismer (inte alla från Aristoteles).
I
Alla X är Y, vissa Z är inte Y, så vissa Z är inte X.
I
Alla måndagar är jobbiga, vissa dagar är inte jobbiga, så vissa dagar är
inte måndagar.
Vissa kräver att något element existerar:
I
Inga X är Y, alla X är Z, så vissa Z är inte Y.
I
Inga blommor är djur, alla blommor är växter, så vissa växter är inte djur.
I
Fel: Inga blommor på månen har celler, alla blommor på månen är växter,
så vissa växter har inga celler.
Långt senare...
Aristoteles idéer hade (inom många områden) ett
stort inflytande på tänkandet i Europa. Detta drevs
delvis av den Katolska kyrkan.
Aristoteles syllogismer är dock otillräckliga:
I
Syllogistiken saknade ett klart (strikt)
symboliskt system.
=⇒ Svårt att särskilja syntax och semantik
I
Den syllogistiska logiken användes bara för
Fresk i Vatikanstaten
att stödja deduktiva resonemang, där små
sanningar kombineras för att stegvis bevisa stora teser
I
Missar induktiva resonemang, där en komplex tes bryts isär och
analyseras i enkla delar (komputationellt och måldrivet!)
I
Många logiska resonemang passar inte in i syllogismer!
Symboler, Mekanik
I
Idén om symbolisk representation och algoritmiska resonemang dröjer:
To avoide the tediouse repetition of these woordes; is equalle to; I will settle as I doe often in woorke use, a
paire of paralleles, or gemowe lines of one lengthe:
, bicause noe .2. thynges, can be moare equalle.
Robert Recorde, 1557
I
I
Raymond Lull (1235–1315) experimenterade i Ars Magna et Ultima med
mekaniska resonemang (ringa framgång)
Inspirerade dock Leibniz (1646–1716), tog avsprång från analysen och
försökte uttrycka allt resonerande mekaniskt med en symbolisk calculus
I
I
I
I
Låt 3 vara alla män och låt 7 vara rationella ting
Då är 21 alla rationella män
Har du egenskap x och y så har du egenskapen x ∗ y
Grundligt symbolisk matematik som grund. Går dock då inte att uttrycka
idéer som “saker som är antingen x eller y ”. Alltför konstruktivt,
misslyckades trots många års arbete
De Morgan
I
I
Augustus De Morgan kastar slutligen sten i glashus
1806–1871
och kritiserar syllogistiken
Noterar t.ex. svårigheten i att uttrycka “om en häst är ett djur är en hästs
svans ett djurs svans”, och bredare relationer som “x älskar y ”.
I
Inför bättre symbolism och relationer i syllogistiken, men detta görs snart
omodernt av efterföljare
I
Känd för De Morgans lag: ¬(x ∨ y ) ≡ (¬x ∧ ¬y ), ¬(x ∧ y ) ≡ (¬x ∨ ¬y ).
Satslogiken anländer
Slutligen publiceras 1854 George Booles “The Laws of
Thought” som slutligen symboliserar och formaliserar
satslogiken grundligt.
I
Variabler skiljs från objekt, formler kan existera
utan att vara sanningar
I
En formel kan vara sann när variablerna binds till vissa
sanningsvärden, och falsk när de binds till andra sanningsvärden,
“tolkningar” och “modeller” gör entré
Öppnar dörren för mycket mer mekaniska möjligheter
I
Boole hade stora visioner
[These studies] instruct us concering the mode in which language and number serve as instrumental aids to the
processes of reasoning they reveal to us in some degree the connexion between different powers of our
common intellect; they set before us what, in the two domains of demonstrative and of probable knowledge, are
the essential standards of truth and correctness,— standards not derived from without, but deeply founded in
the constitution of the human faculties.
Predikatlogiken anländer
1879 följer Gottlob Frege upp med den fundamentala
“Begriffsschrift”, som etablerar predikatlogiken
I
Den introducerar kvantifierarna ∀, ∃
I
Det kan finnas fler objekt än sant och falskt,
tolkningarna blir mer uttrycksfulla
Frege försöker använda predikatlogiken för att axiomatisera all matematik...
I
1889 publicerar Peano en axiomatisering av de naturliga talen
I
1903, när Freges axiomatisering just skall gå till tryck, noterar Bertrand
Russel att hans grundantaganden tillåter följande mängd:
R = {x | x ∈
/ x}, så, R ∈ R ⇔ R ∈
/R
I
Russel och Whitehead publicerar senare en egen axiomatisering av
matematiken i Principia Mathematica
Gödel komplicerar saker
I
Arbetet med axiomatiseringen av matematiken
fortsätter, David Hilbert går i spetsen
I
Tanken är att bygga ett system inom vilken all
matematik går att mekaniskt bevisa
I
1931 slår Kurt Gödel hål på den idén med sin
ofullständighetssats:
I varje motsägelsefritt formellt system som är tillräckligt komplext för att kunna beskriva aritmetik för naturliga
tal, går det att formulera satser som varken kan bevisas eller motbevisas inom ramen för det formella systemet.
I
I
I slutändan kan inget helt unifierat system byggas; vissa utsagor i ett
system kan varken visas sanna eller falska
Gödels arbete leder indirekt till grunderna i Datavetenskapen
I
I
Alan Turing visar 1936 att det är omöjligt att avgöra om ett datorprogram
någonsin kör färdigt (“lyckas”)
Många blandade resultat följer...
Varför är logik viktig för datavetare?
1. Logik är viktigt för alla.
2. Logiken är i många delar beräkningsbar
I
I
I
Datorprogram kan följa resonemang
Datorprogram kan resonera på samma sätt som människor
Datorprogram kan verifiera människors resonerande
3. Logiken kan i sin tur beskriva datorer och datorprogram
I
I
I
Design av hårdvara är djupt rotat i logik
Kompilatorer som resonerar om programs semantik kräver djup logik
Att verifiera olika egenskaper program har använder speciella typer av logik
(temporal logik)
Syntax och semantik
Skillnaden mellan syntax och semantik är mycket viktig
I
Syntax är den symboliska representationen, t.ex. en logisk formel
I
Semantik är vad den logiska formeln försöker säga, hur den är kopplad till
verkligheten
Antag att vi har ett datorprogram P som säger om en formel f är sann för alla
variabeltilldelningar. Vi skriver isåfall
`P f
Programmet är syntaktiskt, det arbetar med symbolerna.
Formeln har semantik, om f är sann i alla möjliga världar skriver vi
|= f
För ett perfekt program P skulle `P f och |= f vara samma sak, men det
måste isåfall bevisas att P är perfekt. `P f är ett syntaktiskt påstående, där
|= f är f s verkliga semantik.
Kursen från nu
I kursen kommer tre logiktyper att presenteras:
I Satslogik
I
I
I
I
Första ordningens predikatlogik
I
I
I
I
I
Formler består av konnektiv och oparametriserade atomära formler.
Rätt enkelt att förstå, inga problem med oavgörbarhet.
Begränsad uttryckskraft, ibland onödigt krångliga formler.
Variabler och kvantifierare (för alla ∀, det finns ∃).
Ganska kraftfull och adekvat i många situationer.
Svårare att lära sig.
Oavgörbara problem (t ex inferens).
Temporal logik
I
Tillåter oss att modellera tidsaspekter, “om någon skriver ut dokumentet d
vid någon tidpunkt t existerar det något x > 0 sådant att dokumentet d ligger
i skrivaren vid tiden t + x”