Föreläsning 1 Syntax 729G06 Logikdelen Föreläsningsanteckningar i Programmering och logik 21 januari 2014 Tommy Färnqvist, IDA, Linköpings universitet 1.1 Innehåll Innehåll 1 Kursadministration 1 2 Introduktion 2 2.1 Varför logik?......................................... 2 2.2 Satslogik........................................... 2 3 Predikatlogik 4 3.1 Syntax............................................. 4 3.2 Formalisering......................................... 5 1.2 1 Kursadministration Lärare och personal Examinator: Annika Silvervarg annika.silvervarg@liu.se Föreläsningar: Tommy Färnqvist tommy.farnqvist@liu.se Assistent, lektioner: Anders Märak Leffler anders.marak.leffler@liu.se Assistent, lektioner: Evelina Rennes evere305@student.liu.se Assistent, lektioner: Robin Keskisärkää robin.kesisarkka@liu.se Kursadministratör: Annelie Almquist annelie.almquist@liu.se 1.3 Litteratur Christian BennetFörsta ordningens logik, Studentlitteratur(.pdf på kurshemsidan) Jörgen Sjögren Introduktion till predikatlogik(.pdf på kurshemsidan) Uppgiftssamling(.pdf på kurshemsidan) 1.4 Examination Skriftlig tentamen 3hp, 14 mars, 14-18 (U/G/VG) 1.5 Upplägg Föreläsningar Lektioner (lärarlösa och med lärare) 1.6 1
2 Introduktion 2.1 Varför logik? Vad är logik? Ni kommer att lära er att Formalisera resonemang i första ordningens predikatlogik Använda sanningstabeller och naturlig deduktion för att bevisa era slutsatser Skapa strukturer för att motbevisa felaktiga resonemang 1.7 Korrekta resonemang Ett resonemang är korrekt om slutsatsen med nödvändighet följer från premisserna Korrekt resonemang Alla människor är dödliga Sokrates är en människa Sokrates är dödlig Felaktigt resonemang Några veganer är militanta Kevin är vegan Kevin är militant 1.8 Hur definierar vi en logik? en bestämmer vilka symboler vi kan använda och hur de kan sättas ihop till komplexa uttryck (A B) C är välformat A :)B är inte välformat en avgör vilken betydelse ett uttryck har och när en formel är sann (A B) är sann när A och B båda är sanna Forskare har föreslagit hundratals olika logiker, men vi lär oss den överlägset vanligaste 1.9 2.2 Satslogik Grundläggande syntax Vi pratar om atomära satser som kan vara sanna eller falska Gräs är blått Deep Blue besegrade Kasparov Vi använder oftast satssymboler för att slippa skrivkramp Låt B stå för Gräs är blått Ofta pratar vi bara om godtyckliga satser A,B,C,... Det finns fem konnektiv som används för att kombinera satssymboler negation ( ) konjunktion ( ) disjunktion ( ) implikation ( ) ekvivalens ( ) 1.10 2
Negation B = Gräs är (B)lått B = Det är inte fallet att gräs är (B)lått A är sann när A är falsk Vi använder en sanningstabell för att definiera när en negerad sats är sann eller falsk A A S F F S 1.11 Konjunktion L = Solen (L)yser G = Snön (G)nistrar L G = Solen lyser och snön gnistrar L och G kallas konjunkter A B är sann när både A och B är sanna A B A B S F F F S F F F F 1.12 Disjunktion Ä = Jag åt ett (Ä)pple P = Jag åt ett (P)äron Ä P = Jag åt ett äpple eller ett päron (eller både och!) Ä och P kallas disjunkter A B är sann när minst en av A,B är sanna A B A B S F S F S S F F F 1.13 Implikation H = Hon sprang en (H)alvmara M = Hon sprang två (M)il H M = Om hon sprang en halvmara så sprang hon två mil H kallas antecendenten och M konsekventen A B är sann om det är fallet att när A är sann så är B sann. Observera att om A inte är sann så säger implikationen inte något om sanningsvärdet för B A B A B S F F F S S F F S 1.14 3
Ekvivalens F = Hon är min (F)aster B = Jag är hennes (B)rorsbarn F B = Hon är min faster om och endast om jag är hennes brorsbarn A B är sann när A,B har samma sanningsvärde A B A B S F F F S F F F S 1.15 Formalisering För att kunna analysera resonemang med hjälp av logik så måste vi formalisera dem, d.v.s. översätta dem till logikens syntax Följande steg kan användas för att formalisera en mening 1. Identifiera de atomära satserna och ersätt dem med lämpliga satssymboler 2. Identifiera satsernas relationer och ersätt dessa med konnektiv 1.16 Övning: Formalisering Formalisera följande 1. Om solen skiner och prognosen är lovande så gör vi en utflykt 2. Om vi inte gör en utflykt så skiner inte solen eller så är prognosen inte lovande 3. Vi gör ingen utflykt om det inte är skinande sol och lovande prognos 1.17 Satslogikens begränsningar Den syntax och semantik vi lärt oss kallas för satslogik, men den är ganska begränsad vilket detta resonemang visar: Gates är rik Någon är rik I en satslogisk formalisering ser det ut som att slutsatsen inte har något med premissen att göra: G = Gates är rik N = Någon är rik 3 Predikatlogik 3.1 Syntax G N 1.18 Predikatlogik Med predikatlogik kan vi formalisera slutledningen så här: R(x) = x är rik g = Gates R(g) xr(x) Vi utökar satslogikens syntax med följande symboler: predikat (R,P,Q,...) konnektiv (,,,, ) konstanter (g,a,b,c,...) funktioner ( f ar,mor,+, f,...) kvantifierare (, ) variabler (x,y,z,...) identitet (=) 1.19 4
Termer och formler Vi definierar termer 1. Variabler är termer 2. Konstanter är termer 3. f (t 1,...,t n ) är en term om f är en funktion som tar n argument och t 1,...,t n är termer Istället för satssymboler har vi atomära formler 1. P(t 1,...,t n ) är en atomär formel om P är ett predikat som tar n argument och t 1,...,t n är termer 2. t = u är en atomär formel om t och u är termer Atomära formler kan sedan kombineras till formler 1. Atomära formler är också formler 2. Formler som kombineras med hjälp av konnektiven (,,,, ) är också formler 3. xa och xa är formler om x är en variabel och A en formel 1.20 Övning: Syntax Vilka uttryck är vad och varför? 1. x 2. b 3. x yp(x, y) 4. f (a,g(b)) 5. 2+2 6. 2 + 2 = 4 7. P a b 8. xp(q(x)) 1.21 3.2 Formalisering Formalisering Vi vill formalisera satser, d.v.s. översätta dem till predikatlogikens syntax Följande steg kan användas för att formalisera en mening 1. identifiera de atomära formlerna och ersätt dem med lämpliga predikat och termer 2. Identifiera satsernas relationer och ersätt dessa med konnektiv och kvantifierare 1.22 Två vanliga regler för formalisering Alla P är Q x(p(x) Q(x)) Exempel Alla bananer är böjda Alla x om Banan(x) så Böjd(x) x(banan(x) Böjd(x)) Undvik x(banan(x) Böjd(x)) Alla är bananer och böjda! Några P är Q x(p(x) Q(x)) Exempel Några svampar är giftiga Några x Svamp(x) och Giftig(x) x(svamp(x) Giftig(x)) Undvik x(svamp(x) Giftig(x)) x( Svamp(x) Giftig(x)) Det finns något som inte är en svamp eller som är giftigt 1.23 5
Övning: Formalisering Formalisera följande i predikatlogik 1. Några länder är demokratier 2. Inte alla länder är demokratier 3. Alla länder har en valuta 4. Alla svenskar har en valuta 1.24 Att uttrycka antal I predikatlogiken kan vi uttrycka att det finns minst ett äpple xäpple(x) Men det är också möjigt att uttrycka att det finns exakt ett äpple x(äpple(x) y(äpple(y) y = x)) Det finns ett objekt x som är ett äpple och för alla objekt y gäller att om y också är ett äpple så måste det vara identiskt med det förra äpplet Eller att det finns exakt två äpplen x,y(äpple(x) Äpple(y) x y z(äpple(z) (z = x z = y))) 1.25 Övning: Formalisera antal Formalisera följande i predikatlogiken 1. Alla länder har en valuta 2. Alla länder har exakt en valuta 1.26 6