Logica voor Informatica Mehdi Dastani BBG-521 [email protected] Organisatie Logica voor Informatica Docent Mehdi Dastani, BBG-521 Inhoud (dictaat van J. van Eijck & E. Thijsse) Verzamelingen (3 hoorcol.) Propositielogica (3 hoorcol.) Predicatenlogica (5 hoorcol.) Logisch programmeren & Programma correctheid (2 hoorcol.) Logica voor Informatica 2 hoor- en 2 werkcolleges per week Aanwezigheid tijdens hoor- en werkcolleges is niet verplicht, maar sterk aangeraden. 7 mini-tentamens (multiplechoice) tijdens de werkcolleges op vrijdagen (12:00 uur). Logica voor Informatica Twee deeltentamens (week 51 en 5) Eindcijfer is het gemiddelde van de cijfers van de twee deeltentamens (90%) + het gemiddelde van de cijfers van de minitentamens (10%). Een herkansing (week 16). Deelname mogelijk als eindcijfer 4 of 5 is. Logica voor Informatica Er zijn 4 werkcollege groepen. Groep begeleiders zijn: 1: Gerard Vreeswijk 2: Ioannis Nemparis & Niek Mulleners 3: Mandt Filet & Steven Luiten 4: Sylke Gosen Verdeling in groepen kan niet gewijzigd worden. Logica voor Informatica Alle informatie over het vak op: http://www.cs.uu.nl/docs/vakken/b1li/2016-17/ ! Bekijk de webpagina regelmatig ! Nieuws Slides Rooster Opgaven voor werkcolleges Literatuur Cijfers Wat is Logica? Wat is logica? Logica is fundamenteel voor de wetenschap en is even oud als de geschiedenis. 384-322 BC 1646-1716 Aristoteles Leibniz 1828-1925 Frege 1872-1970 Russel 1889-1951 Wittgenstein 1912-1954 Turing Wat is logica? Logica is de wetenschap die zich bezighoudt met de regels voor de geldige manieren van redeneren. Redeneren is het proces waarmee uit een aantal beweringen, argumenten of feiten een conclusie getrokken wordt. Wat is logica? Redeneer voorbeelden Beweringen Als Jan zijn medicijnen neemt dan voelt hij zich beter En Jan neemt zijn medicijnen Conclusie Jan voelt zich beter Wat is logica? Redeneer voorbeelden Beweringen Als Jan zijn medicijnen neemt dan voelt hij zich beter En Jan neemt zijn medicijnen Conclusie Jan voelt zich beter Wat is logica? Redeneer voorbeelden Als Jan zijn medicijnen neemt dan voelt hij zich beter EN Jan neemt zijn medicijnen Jan voelt zich beter Als X dan Y En X Y Wat is logic a? Redeneer voorbeelden Beweringen Als Jan zijn medicijnen neemt dan voelt hij zich beter En Jan voelt zich beter Conclusie Jan neemt zijn medicijnen Wat is logic a? Redeneer voorbeelden Beweringen Als Jan zijn medicijnen neemt dan voelt hij zich beter En Jan voelt zich beter Conclusie Jan neemt zijn medicijnen Wat is logica? Redeneer Regels Als X dan Y En Y X Wat is logic a? Redeneer voorbeelden Beweringen Als Jan zijn medicijnen neemt dan voelt hij zich beter En Jan voelt zich NIET beter Conclusie Jan neemt zijn medicijnen NIET Wat is logic a? Redeneer voorbeelden Beweringen Als Jan zijn medicijnen neemt dan voelt hij zich beter En Jan voelt zich NIET beter Conclusie Jan neemt zijn medicijnen NIET Wat is logica? Redeneer Regels Als X dan Y En NIET Y NIET X Wat is logica? Redeneer voorbeelden Alle mensen zijn sterfelijk Beweringen En Socrates is een mens Conclusie Socrates is sterfelijk Wat is logica? Redeneer voorbeelden Alle mensen zijn sterfelijk Beweringen En Socrates is een mens Conclusie Socrates is sterfelijk Wat is logica? Redeneer voorbeelden Alle X zijn Y Beweringen En A is een X Conclusie A is een Y Wat is logica? Redeneer voorbeelden Sommige X zijn Y Beweringen En A is een X Conclusie A is een Y Wat is logica? Afleiden van conclusies uit aannames Sara A1) Tenminste een is schuldig. A2) Niet alle zijn schuldig. A3) Als Sara schuldig is, dan is Jan ook schuldig. A4) Als Petra niet schuldig is, dan is Jan ook niet. Wat is logica? Sara Jan Sara Petra Schuldig Schuldig Schuldig Schuldig Schuldig Niet Schuldig Schuldig Niet Schuldig Schuldig Schuldig Niet Schuldig Niet Schuldig Niet Schuldig Schuldig Schuldig Niet Schuldig Schuldig Niet Schuldig Niet Schuldig Niet Schuldig Schuldig Niet Schuldig Niet Schuldig Niet Schuldig Wat is logica? Sara A1) Tenminste een is schuldig. Jan Sara Petra Schuldig Schuldig Schuldig Schuldig Schuldig Niet Schuldig Schuldig Niet Schuldig Schuldig Schuldig Niet Schuldig Niet Schuldig Niet Schuldig Schuldig Schuldig Niet Schuldig Schuldig Niet Schuldig Niet Schuldig Niet Schuldig Schuldig Niet Schuldig Niet Schuldig Niet Schuldig Wat is logica? Sara Jan Sara Petra Schuldig Schuldig Schuldig Schuldig Schuldig Niet Schuldig Schuldig Niet Schuldig Schuldig Schuldig Niet Schuldig Niet Schuldig A1) Tenminste een is schuldig. Niet Schuldig Schuldig Schuldig A2) Niet alle zijn schuldig. Niet Schuldig Schuldig Niet Schuldig Niet Schuldig Niet Schuldig Schuldig Niet Schuldig Niet Schuldig Niet Schuldig Wat is logica? Sara Jan Sara Petra Schuldig Schuldig Schuldig Schuldig Schuldig Niet Schuldig Schuldig Niet Schuldig Schuldig Schuldig Niet Schuldig Niet Schuldig A1) Tenminste een is schuldig. Niet Schuldig Schuldig Schuldig A2) Niet alle zijn schuldig. Niet Schuldig Schuldig Niet Schuldig A3) Als Sara schuldig is, dan is Jan ook schuldig. Niet Schuldig Niet Schuldig Schuldig Niet Schuldig Niet Schuldig Niet Schuldig Wat is logica? Sara Jan Sara Petra Schuldig Schuldig Schuldig Schuldig Schuldig Niet Schuldig Schuldig Niet Schuldig Schuldig Schuldig Niet Schuldig Niet Schuldig A1) Tenminste een is schuldig. Niet Schuldig Schuldig Schuldig A2) Niet alle zijn schuldig. Niet Schuldig Schuldig Niet Schuldig A3) Als Sara schuldig is, dan is Jan ook schuldig. Niet Schuldig Niet Schuldig Schuldig Niet Schuldig Niet Schuldig Niet Schuldig A4) Als Petra niet schuldig is, dan is Jan ook niet. Wat is logica? Sara Jan Sara Petra Schuldig Schuldig Schuldig Schuldig Schuldig Niet Schuldig Schuldig Niet Schuldig Schuldig Schuldig Niet Schuldig Niet Schuldig A1) Tenminste een is schuldig. Niet Schuldig Schuldig Schuldig A2) Niet alle zijn schuldig. Niet Schuldig Schuldig Niet Schuldig A3) Als Sara schuldig is, dan is Jan ook schuldig. Niet Schuldig Niet Schuldig Schuldig Niet Schuldig Niet Schuldig Niet Schuldig A4) Als Petra niet schuldig is, dan is Jan ook niet. Wat is logica? Wat is logica? Waarom Logica voor Informatica & Game Technologie Logica voor Informatica Logica heeft veel raakvlakken met de informatica • Kunstmatige Intelligentie • Database & Semantische Web & Big Data • Programmeren en Software Engineering • Hardware Ontwerp • Theorie van Berekenbaarheid Logica voor Informatica Logica heeft veel Raakvlakken met game technologie Game technologie is meer dan animatie technologie Non-player Characters (NPC): Intelligent, autonome, en geloofwaardige agenten Interactie tussen NPC’s en gebruikers: Ontwerpen en Ontwikkelen Multi-Agent Systemen Bewijstechnieken Notatie Natuurlijke getallen Gehele getallen Rationale getallen Reële getallen ℕ ℕ0 1,2,3,4,5,… 0,1,2,3,4,5,… ℤ …,-3,-2,-1,0,1,2,3,… ℚ …, ℝ −2 3 , 1 −2 0 4 1 8 9 2 , , , ,… 1 8 3 2 , 𝜋𝜋 , -2 , 0 , , 0.91932 , 8 Bewijstechnieken Wat is een bewijs? Bewijs door gevalsonderscheid Bewijs door contrapositie Bewijs uit het ongerijmde Bewijs door volledige inductie Niet-constructieve bewijzen Uniciteitsbewijzen … Bewijstechnieken Bewijs door Gevalsonderscheid Let Toon aan: Bewijstechnieken Bewijs door contrapositie Toon aan: Als een groep uit 50 mensen betsaat, dan zijn er 4 of meer mensen uit die groep in dezelfde maand jarig. Bewijstechnieken Bewijs uit het ongerijmde (reductio ad absurdum) Aanname: Ieder stelling is waar of onwaar. Bewijsmethode: Stelt dat de stelling niet waar is en laat zien dat dit tot een tegenspraak leidt. Toon aan: Er zijn oneindig veel priemgetallen. Bewijstechnieken Bewijs door volledige inductie ALS een eigenschap geldt voor het eerste getal uit EN de eigenschap plant zich van getal tot getal voort, DAN geldt de eigenschap voor alle getallen in . Volledige (wiskundige) inductie Stel we willen bewijzen: Voor alle natuurijke getallen n geldt: P(n) Dan is het voldoende te bewijzen: P(1) P(n) → P(n+1) [basis stap] [inductie stap] Voorbeeld Toon aan: P(n) ⇔ Bewijs: Basis stap: Geldt P(1)? 1 = (1×2)/2 ok Inductiestap: Stel P(n) geldt voor n≥1. Dan te bewijzen: P(n+1) 1 + 2 + … + n + (n+1) = n(n+1)/2 + (n+1) = (n(n+1) + 2(n+1))/2 = ((n+1)(n+2))/2 ok Volledige (wiskundige) inductie Stel we willen bewijzen: Voor alle natuurijke getallen n geldt: P(n) Dan is het voldoende te bewijzen: P(1) P(n) → P(n+1) [basis stap] [inductie stap] Alternatief (equivalent!): P(1) [basis stap] [voor alle k: 1≤k<n geldt P(k)] → P(n) [inductiestap] Bewijstechnieken Niet-constructieve bewijzen Laat het bestaan van een ding zien zonder dat ding in het algemeen verder te specificeren. Toon aan: Er bestaan niet rationele getallen een rationeel getal is. en zodat Bewijstechnieken Uniciteitsbewijzen Laten zien dat er één ding met een bepaalde eigenschap bestaat. Toon aan: Er bestaat slechts één element 0 in gehele getallen zodat voor alle gehele getallen k geldt dat: k+0 = k .