Predicatencalculator

 
 

Op deze pagina vind je een predicaatlogisch model wat je kan ondervragen met predicaatlogische formules. Het formaat van de machine is gelijksoortig aan die van de eerdere propositielogische machines van vorige week. De taal van predicatenlogica is natuurlijk wel wat complexer. Lees daarom zeker eerst even de instructies onder de machine.


   
KEYBOARD  
 
       
       

Instructies

Aan de rechterkant van de machine is het model met vier individuen gegeven. Er zijn twee relaties gegeven, en twee eigenschappen. De twee eigenschappen zijn "Man" en "Vrouw". De twee relaties zijn "Houdt-van" en "Haat". De interpretatie van de eerste relatie wordt aangegeven door de rode pijlen, terwijl de zwarte pijlen de interpretatie van de tweede relatie aanduiden.

De knoppen

De knoppen maken gebruik van een verkorte notatie. x, y en z zijn de variabelen die je mag gebruiken. De symbolen a, f, h en l zijn de constanten van de predicaatlogische taal. Zij denoteren respectievelijk Anna, Fons, Hans en Lies. Daaronder vind je de predicatennamen. De eerste twee staan voor de twee eigenschappen: M voor Man en F voor Vrouw. De andere twee zijn symbolen voor de twee relaties: H voor Haat, en L voor Houdt-van (om dit te onthouden, houdt de Engels vertaling aan: Male, Female, Hates, Loves). De =-knop is natuurlijk om gelijkheid te symboliseren.
Daarna volgen de propositionele connectieven: - voor niet, & voor en, v voor of, -> voor implicatie en <-> voor equivalentie. De laatste twee knoppen zijn de kwantoren: ALL voor de universele kwantor voor alle en EXT voor existentiële kwantor er is een. Invoer van een zin als:
Elke man houdt van een vrouw.
beschrijf je in predicaatlogica als:
Deze formule verkrijg je door achtereen:
ALL x ( M x -> EXT y ( F y & L x y ) )
in te tikken. Nu kan je de formule invoeren door de knop <=] aan te klikken. Nu gaat het rode lampje branden de zin is tenslotte onwaar, want er is een man in dit model die van geen enkele vrouw houdt: Fons. Als je F en M zou omdraaien in de formule hierboven, krijg je de predicaatlogische omschrijving van "Elke vrouw houdt van een man". Na invoering gaat het groene lampje branden: de zin is waar op dit model.

Verkeerde invoer

Als je formule niet welgevormd is, dan gaat het blauwe lampje branden. Druk op CL en probeer opnieuw. Als je een tikfout maakt voor dat je de formule met <=] hebt ingevoerd, dan kan met de < terugwaarts symbolen elimineren.

Formules met vrije variabelen: queries

Interessantere resultaten geeft deze machine als je formules met vrije variabelen invoert, zgn. open formules of in de informatica ook wel "queries" genoemd. De waarheid van deze formules hangen af van de "waardetoekenning" (ook als "toestand" gekenmerkt in het programmeercollege) van de vrije variabelen. Zo is de formule Hxx waar als x de waarde Hans krijgt toegewezen, maar hij is onwaar als x de waarde Anna, Fons of Lies krijgt. De machine verwerkt deze query als volgt: het oranje lampje gaat branden (kan waar zijn, kan onwaar zijn) en een positieve instantie, een keuze voor x die de zin waar maakt, wordt aangegeven in de linkertabel onder de knop POS. Tevens wordt een negatieve instantie, een keuze voor x die de zijn onwaar maakt, gegeven. In het geval hierboven zou dat voor het positieve geval x --> Hans en in het negatieve geval x --> Anna zijn. Je kan nu meer positieve en negatieve instanties oproepen door op respectievelijk POS en NEG te drukken. In het bovengenoemde geval zal dat verder geen positieve instanties opleveren, maar aanklikken van NEG genereert nog de twee overige negatieve instanties.
Als er meer vrije variabelen zijn dan zal de machine daar ook waarden voor vinden. Bijvoorbeeld, Hxy & Lyx, "x haat y en y houdt van x", levert als positieve instanties: x -> Fons, y -> Anna en x -> Fons, y -> Hans, terwijl alle overige instanties voor x en y negatief zijn: de zin wordt onwaar. Op een zelfde manier kan je met drie vrije variabelen werken, bijvoorbeeld, Lxz & Lyz & -(x=y v x=z v y=z) : de trios van personen waarvan een (z) door de twee anderen bemind wordt.
Je kan natuurlijk ook gebonden en vrije variabelen combineren. Bijvoorbeeld, ALL y Lxy . Deze geeft alle instanties van personen die van iedereen houden. De query EXT x EXT y (Hxz & Hyz & -(x=y)) geeft de personen (z) die door twee verschillende individuen gehaat worden.
Het kan overigens zo zijn dat alle instanties positief of negatief zijn. In dat geval gaat respectievelijk groene en rode lampje branden.


© JAN JASPARS. This page contains a JavaScript 1.1-code, and has been developed for the Programming & Reasoning teaching group.