✖

Voorbeelden bij propositielogica

In dit artikel laten we een aantal formules en hun mogelijke toekenningen zien met behulp van de waarheidstabel.

Eerste voorbeeld

We proberen te achterhalen wanneer deze formule waar is: ϕ = (p ∧ q) ∨ ¬q. We schrijven de propositiesymbolen p en q in de tabel:

pq11100100

Daarna schrijven we in de tabel het eerste deel van de formule: (p ∧ q), de negatie ¬q en dan de hele formule:

pqp∧q¬qϕ11100100

Nu berekenen we de waarden voor de derde kolom, dat is een eenvoudige conjunctie, en ook voor de negatie. Daar vullen we gewoon de omgekeerde waarden in van die in de tweede kolom:

pqp∧q¬qϕ1110100101000001

Tot slot berekenen we de waarden in de laatste kolom. Dat is de hele formule. Volgens onze tabel berekenen we dus de disjunctie “tussen de derde en de vierde kolom”. Het resultaat:

pqp∧q¬qϕ11101100110100000011

Tweede voorbeeld

Dezelfde opdracht, een andere formule: ϕ = (p ∧ ¬q) ⇔ (¬p ⇒ q). We zien dat in de formule de propositiesymbolen p en q en hun negaties voorkomen. Daarom maken we eerst een tabel met twee symbolen en hun negaties:

pq¬p¬q1100100101100011

Vervolgens voegen we de formules p ∧ ¬q en ¬p ⇒ q toe, die we nu gemakkelijk kunnen evalueren, omdat we in de tabel zowel de toekenningen van de afzonderlijke uitspraken als van hun negaties hebben. De tabel ziet er zo uit:

pq¬p¬q(p∧¬q)(¬p⇒q)110001100111011001001100

Als laatste moeten we nog de hele formule evalueren, en dat is de equivalentie tussen de laatste twee kolommen:

pq¬p¬q(p∧¬q)(¬p⇒q)ϕ1100010100111101100100011001

Derde voorbeeld

Het derde voorbeeld is wat ingewikkelder: we nemen drie propositiesymbolen, waardoor de berekening van de tabel omvangrijker wordt. De formule ziet er zo uit: ϕ = (¬(p ⇒ q)) ∧ (r ⇔ (¬p ∨ q)).

Omdat we drie propositiesymbolen hebben, is het totale aantal mogelijke toekenningen gelijk aan acht:

pqr111110101100011010001000

Verder gaan we net zo te werk als in het vorige geval: we evalueren elke kolom in alle acht de rijen. De hele tabel ziet er zo uit:

pqr¬p(p⇒q)(¬p∨q)¬(p⇒q)(r⇔(¬p∨q))ϕ111011010110011000101000100100000111011111010010111000001111010000111000

Vierde voorbeeld

Dit voorbeeld geven we niet als gewone formule, maar als contextopgave. Drie vrienden die naar een groot feest willen waar een dj muziek draait, mogen elkaar niet zo en stellen voorwaarden waaronder ze naar het feest gaan. Ze heten Mees, Jesse en Pim. De regels zijn als volgt:

  1. Als Mees gaat, dan gaat ook Jesse.
  2. Pim komt naar het feest of, als Mees komt, dan komt Jesse niet.
  3. Pim komt dan en slechts dan als Mees niet komt of Jesse niet komt.

De vraag is: kunnen ze alle drie naar het feest komen? Zo niet, wie kan er dan naar het feest gaan zonder een van de regels te overtreden?

Eerst moeten we de bovenstaande zinnen omschrijven naar propositiesymbolen en formules. We noemen de propositiesymbolen M, J en P (Mees, Jesse, Pim) en elk symbool staat voor een uitspraak als “Mees gaat naar het feest”. De eerste regel kunnen we zo schrijven: M ⇒ J, dus “als M, dan J”, ofwel “als Mees naar het feest gaat, dan gaat Jesse naar het feest”.

De tweede regel schrijven we zo. De regel begint met de zin “Pim komt naar het feest of…”, dus we hebben duidelijk een disjunctie nodig. Voorlopig schrijven we dit: P ∨ … Het volgende deel van de zin zegt: “als Mees komt, dan komt Jesse niet”. Dat is een implicatie, waarbij we aan de rechterkant ook nog een negatie moeten gebruiken. “Jesse komt niet” = ¬J. De hele implicatie ziet er zo uit: M ⇒ ¬J. Die voegen we toe aan de vorige disjunctie: P ∨ (M ⇒ ¬J).

De derde regel schrijven we zo om: we beginnen met “Pim komt dan en slechts dan”. Dat betekent een equivalentie: P ⇔ … Verder hebben we “Mees komt niet of Jesse komt niet”, wat we zo schrijven: ¬M ∨ ¬J. Samen: (P ⇔ (¬M ∨ ¬J)).

Nu zetten we alle formules in de tabel en berekenen we de waarden:

MJP(M⇒J)(P∨(M⇒¬J))(P⇔(¬M∨¬J))111110110101101011100010011111010110001111000110

De vraag was of alle drie de jongens naar het feest kunnen gaan. Het antwoord vinden we in de eerste rij. Die komt overeen met het geval waarin alle jongens gaan, wat te zien is aan de drie enen in de eerste drie kolommen. Zijn alle voorwaarden vervuld? De eerste wel (vierde kolom), de tweede ook (vijfde kolom), maar de laatste niet (laatste kolom), daar staat een nul. Dat betekent dat als ze alle drie gaan, de derde voorwaarde niet is vervuld.

We zoeken dus de rijen waarin op de plaatsen die de voorwaarden voorstellen (dat zijn de laatste drie kolommen) alleen enen staan. Een één betekent dat de voorwaarde is vervuld. We zien dat dit in twee gevallen gebeurt: als Jesse en Pim gaan maar Mees niet, en als alleen Pim gaat.

Je kunt het ook berekenen door aan de tabel een formule ϕ toe te voegen die de conjunctie van alle drie de voorwaarden is. Die ziet er zo uit: ϕ = ((M ⇒ J) ∧ (P ∨ (M ⇒ ¬J)) ∧ (P ⇔ (¬M ∨ ¬J))). Dit stelt voor wat we willen: dat alle formules (alle voorwaarden) zijn vervuld. De tabel ziet er dan zo uit:

MJP(M⇒J)(P∨(M⇒¬J))(P⇔(¬M∨¬J))ϕ11111001101010101011010001000111111010110000111110001100

Nog een paar voorbeelden van de waarheidstabel

Omdat ik een programma heb geschreven dat uit een gegeven formule automatisch de hele tabel kan opbouwen, moet ik het ook goed gebruiken, en daarom volgen hier nog een paar uitgewerkte formules:

Formule: ((a ∧ ¬b) ∨ (b ∧ (b ⇒ a))). Tabel:

ab(a∧¬b)(b∧(b⇒a))((a∧¬b)∨(b∧(b⇒a)))11011101010100000000

Formule: (a ∨ ¬a) ⇔ (b ∧ ¬b). Tabel:

ab(a∨¬a)(b∧¬b)((a∨¬a)⇔(b∧¬b))11100101000110000100

Formule: ¬(a ∨ b) ⇔ (¬b ∧ ¬a). Tabel:

ab¬(a∨b)(¬b∧¬a)(¬(a∨b)⇔(¬b∧¬a))11001100010100100111

Formule: ϕ = (¬p ⇔ (q ∧ r)) ⇒ (p ∨ ¬(p ∧ q)). Tabel:

pqr(q∧r)¬(p∧q)(¬p⇔(q∧r))(p∨¬(p∧q))ϕ1111001111000111101011111000111101111111010010110010101100001011

Formule: ϕ = ¬(p ⇔ ¬q) ∧ (r ⇒ ¬p) ∧ (p ∨ r). Tabel:

pqr¬(p⇔¬q)(r⇒¬p)(p∨r)ϕ11110101101111101001010001100110110010010000111110001100

Hoofdstukken: Propositielogica, Waarheid van formules, Voorbeelden bij propositielogica