Vertalen en syntax
Course subject(s)
2. Predicatenlogica
Het nadeel van de propositielogica is dat je niet met de interne structuur van proposities rekening kunt houden. De uitspraken “Socrates is een mens” en “Tomas is een mens” hebben natuurlijk wel degelijk iets met elkaar te maken, maar voor de propositielogica zijn dit gewoon 2 verschillende uitspraken, waarvan de waarheidswaarden niets met elkaar van doen hebben. In de propositielogica moeten we dan ook de redenering
premisse 1: Tomas is een mens
premisse 2: Alle mensen zijn sterfelijk
conclusie: Tomas is sterfelijk
vertalen als “p, q, dus r” en deze redenering is als propositielogische redenering niet geldig. Dat is jammer, want we weten natuurlijk, wanneer we nadenken over wat deze 3 uitspraken betekenen, dat deze redenering wel geldig zou moeten worden bevonden. Gelukkig bestaat de predicatenlogica, waarin deze redenering wel degelijk geldig is. Deze logica is een uitbreiding van de propositielogica, dus alle connectieven gebruiken we ook hier, maar de formules die met elkaar kunnen worden gecombineerd kunnen veel meer kennis uitdrukken. Hiertoe gebruikt de predicatelogica predicaten, variabelen en kwantoren.
Predicaten zijn eigenschappen, bijvoorbeeld “menselijk zijn” en “sterfelijk zijn”, die met hoofdletters worden weergegeven. Zo kan “Tomas is een mens” worden vertaald als “M(t)”, waarbij “M” staat voor het menselijk-zijn-predicaat, en “t” staat voor Tomas. De rij symbolen “M(t)” is een formule in een predicaatlogische taal, die waar of onwaar is. Hij is waar als object “t” eigenschap “M” heeft, en onwaar als dat niet zo is. Je kunt ook variabelen als x, y en z gebruiken, bijvoorbeeld M(x) of S(x), om te zeggen dat het argument x menselijk danwel sterfelijk is. (In Prolog is deze conventie andersom: predicaten zijn kleine letters, en variabelen hoofdletters.) Zo’n uitspraak is niet waar of onwaar, maar wordt dat pas als we voor de variabele x een concreet object invullen: “M(t)” is waar als t voor Tomas staat, maar “M(a)” is onwaar als a voor Amerigo staat. Tenslotte kunnen we 2kwantoren gebruiken: “voor alle” en “er bestaat een”. De uitspraak “alle mensen zijn sterfelijk” kunnen we bijvoorbeeld vertalen als “Ax(M(x) -> S(x))”, waarbij ik “A” gebruik als “voor alle” (dit heet de universele kwantor, en die wordt normaal gesproken geschreven als op-de-kop A), en “->” als “als …, dan …”. Er staat dus: voor alle x geldt dat als x menselijk is, dan is x sterfelijk, oftewel: alle mensen zijn sterfelijk. De andere kwantor is de existentiële kwantor die “er bestaat een” betekent, en wordt geschreven als een op-de-kop E (maar op deze pagina als gewone E). De uitspraak “er bestaat een negatief kwadraatgetal” schrijven we bijvoorbeeld als “Ex(K(x) ∧ N(x))”, waarbij ik “∧” gebruik als “en” en de predicaten K en N staan voor de eigenschappen kwadraatgetal-zijn en negatief-zijn. (Een kwadraatgetal is een getal waarvan de wortel een geheel getal is, bijvoorbeeld 0, 1, 4, 9, 16, 25, etc.) Je ziet dat deze uitspraak onwaar is (in alle redelijke omstandigheden). Predicaten kunnen ook eigenschappen van relaties aangeven. Zo kunnen we “G(x,y)” gebruiken om aan te geven dat x groter is dan y. Functies zijn speciale relaties, bijvoorbeeld “k(x)” kan het kwadraat van x betekenen, en “v(x,y)” het verschil van x en y. Een functie is een speciaal soort relatie omdat er voor elk object in het domein maar één waarde in het bereik is waarvoor de relatie waar is: alleen met 9 is 3 onderdeel van de relatie Kwadraat, 4 is alleen element van de relatie Kwadraat met 16, en met geen enkel ander getal. We kunnen in dergelijke situaties een functie gebruiken om naar dat unieke object in het bereik te verwijzen: k(3) = 9 (en niks anders), en k(4) = 16. Wanneer we ook nog het symbool “=” toevoegen als speciale relatie die zegt dat zijn argumenten gelijk aan elkaar zijn, zien we al snel dat we in deze taal allerlei rekenkundige uitspraken kunnen uitdrukken, en er dus ook over kunnen redeneren: we kunnen rekenkundige problemen oplossen, en bovendien rekenkundige stellingen bedenken en formeel bewijzen (of een computer dat laten doen).
Het is belangrijk je te realiseren dat we keuzevrijheid hebben in het introduceren van predicaten en het definiëren van hun betekenis, en dat onze keuze afhangt van het onderwerp waar we over willen redeneren. Willen we het bijvoorbeeld hebben over welke getallen groter dan welke getallen zijn, dan kunnen we het (“twee-plaatsige”) predicaat G(x,y) introduceren om aan te geven dat x groter is dan y. Maar als we alleen maar willen redeneren over welke getallen groter zijn dan 42, dan introduceren we het (“een-plaatsige”) predicaat G(x) met als betekenis “x is groter dan 42”. In deze module gaat het erom gevoel te krijgen voor deze mogelijkheden en oefenen we met vertaalopdrachten.
We zullen bovendien de regels bestuderen om welgevormde formules in dit soort talen te maken. Zoals de formules in de propositielogica in de verzameling PROP zaten, zo zitten de formules in predicaatlogische talen in de verzameling FORM. We zullen een recursieve definitie van deze verzameling zien, en ook nog van een aantal andere verzamelingen. Formules zijn ook hier uitspraken die waar of onwaar kunnen zijn. Ze gaan over objecten in een (relevant) domein, die objecten noemen we termen, en die zitten in de verzameling TERM, waar we ook een recursieve definitie van zullen leren.
Leerdoelen
De student kent de manier waarop eenvoudige (wiskundige) noties in eerste-ordetalen worden vertaald, en kan eenvoudige vertaalopgaven maken van natuurlijke naar een geschikte eersteordetaal. De student is in staat welgevormde predicaatlogische formules te herkennen en te produceren. Ook toont hij/zij zijn/haar bekendheid met vrije en gebonden variabelen in het correct kunnen uitvoeren van substituties in een formule. De student is bovendien bekend met de opbouw van eerste-ordetalen in logisch en niet-logisch alfabet, en met de verschillende syntactische categorieën die onderscheiden worden. De student weet welke objecten er in de verschillende genoemde verzamelingen zitten, en wat de relatie tussen de verschillende verzamelingen is.
Geschikte opgaven:
Beschrijven en Bewijzen, opgaven 4.1 t/m 4.6
Logica, 8.6.3 en 8.6.4, 11.4.2 (behalve boommethode)
Practicum 3, opgave 1
Herkansing practicum 3, opgave 1
Bestanden
Redeneren en Logica by TU Delft openCourseWare is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at https://ocw.tudelft.nl/courses/redeneren-en-logica/.