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”