De transcriptie van natuurlijke taal naar een logische formule wordt pas lastig bij een conditionele uitspraak zoals de implicatie. In natuurlijke taal kunnen we op veel manieren een "als ... dan ..." constructie maken, met verschillende nuances. Hieronder staan een aantal taaluitdrukkingen waarbij \(p\) en \(q\) zinvolle uitspraken over een feit zijn (denk bijvoorbeeld aan "De zon schijnt" en "ik fiets"). Hierin schrijven we "wanneer/als" in het geval elk van deze twee woorden gebruikt kan worden.
"Als \(p\), dan \(q\)." |
"\(q\) telkens wanneer/als \(p\) |
"Wanneer/Als \(p\), \(q\)." |
"\(q\) alleen als \(p\)." |
"\(p\) is voldoende voor \(q\)." |
"Een voldoende voorwaarde voor \(q\) is \(p\)." |
"\(q\) wanneer/als \(p\)." |
"\(q\) is noodzakelijk voor \(p\)." |
"Een noodzakelijke voorwaarde voor \(p\) is \(q\)." |
"\(q\) volgt uit \(p\)." |
"\(q\) mits \(p\)." |
"\(q\) gegeven dat \(p\)." |
"\(q\) tenzij \(\neg\,p\)." |
"\(q\) is het gevolg van \(p\)." |
Laten we als voorbeeld de zinsconstructie "\(q\) alleen als \(p\)." nader bekijken met in gedachten de voorbeeldzin "Als je braaf bent, krijg je een snoepje." uitgesproken door een vader richting zijn zoontje. Als bij niet braaf bent, mag het zoontje geen snoepje verwachten, alhoewel de vader dat toch kan geven. Dit komt overeen met het gegeven dat de implicatie \(b\rightarrow s\) en de formule \(\neg\,b \lor s\) dezelfde waarheidstabel hebben en dus logisch equivalent zijn.
Alleen wanneer het zoontje braaf is, maar de vader zijn belofte niet nakomt komt het zoontje bedrogen uit. Dit scenario stemt in propostielogica overeen met de situatie dat \(b\) waar is en \(s\) onwaar is in de propositie \(b\rightarrow s\). De formule \(b\land \neg\,s\) levert in dit scenario de waarheidswaarde waar op en is het tegengestelde van \(\neg\,b \lor s\). Zegt de vader tegen zijn zoontje "Je krijgt een snoepje, alleen als je braaf" dan is in gangbaar taalgebruik duidelijk dat het zoontje geen snoepje krijg als hij niet braaf is. Dit komt overeen met \(\neg\,b \oplus s\), waarbij \(\oplus\) de exclusieve disjunctie symboliseert. De reden waarom we "\(q\) alleen als \(p\)." toch in bovenstaande lijst van uitspraken die een voorbeeld van implicatie zijn hebben opgenomen is dat we degelijke nuances in het normale taalgebruik bij transcriptie meestal negeren.
De implicatie \(\varphi \rightarrow \psi\) van twee proposities \(\varphi\) en \(\psi\) is een propositie die onwaar is als \(\varphi\) waar is en \(\psi\) onwaar is, en in alle andere gevallen waar is.
We beschouwen \(\varphi \rightarrow \psi\) en \(\neg \,\varphi \lor \psi\) dus als logisch equivalente formules.
Het symbool voor de implicatie operator is \(\rightarrow\)
Voorbeeld
De implicatie "Als Marthe ziek is, dan blijft ze thuis." is waar als de uitspraken "Marthe is ziek." en "Ze blijft thuis" waar zijn.
Maar deze implicatie is ook waar als de uitspraak "Marthe is ziek." onwaar is.
De implicatie is alleen onwaar als Marthe ziek is, maar niet thuis blijft. Het kan niet zo zijn dat de deeluitspraak "Marthe is ziek." waar is, maar de uitspraak "Ze blijft thuis" onwaar.
\(\phantom{x}\)
Een Implicatie is een uiting van causaliteit. De waarheid van de linkerkant van de propositie \(\varphi\rightarrow \psi\) betekent ook dat rechterkant waar is. In een causaal verband kan de rechterkant nog waar of onwaar zijn als de linkerkant onwaar is. Dit is de reden dat de waarheidswaarde van \(\varphi\rightarrow \psi\) gedefinieerd wordt als waar in het geval \(\varphi\) onwaar is.
We hebben al een paar keer opgemerkt dat in natuurlijke taal de propositie "Als \(p\), dan \(q\)" vaak wordt geïnterpreteerd als een causaal verband waardoor \(q\) waar is omdat \(p\) waar is. Maar in de klassieke logica hoeft dit niet het geval te zijn. We kunnen alleen de volgende twee gevolgtrekkingen maken:
- (Modus ponens) Uit \(p\) en \(p\rightarrow q\) volgt \(q\).
- (Modus tollens) Uit \(\neg\,q\) en \(p\rightarrow q\) volgt \(\neg p\).
De if-then constructie in de meeste programmeertalen verschilt van de als-dan constructie in propositielogica. In de meeste programmeertalen bestaat de code "if condition then statement" in de betekenis van "als aan de conditie voldaan is, voer dan de code uit en anders niet". Zodra aan de conditie niet voldaan is wordt de code in het then-gedeelte niet meer uitgevoerd.
Als je de propositionele notatie zo dicht mogelijk bij de natuurlijke taal wilt houden, dan is een omgekeerd pijlnotatie evident. De zin "Marthe blijft thuis als ze ziek is." wordt dan getranscribeerd naar \(q\leftarrow p\) met \(p=\text{"Ze is ziek."}\) en \(p=\text{"Marthe blijft thuis"}\)
Je komt in praktijk ook de implicatiepijl \(\implies\) i.p.v. \(\rightarrow\) tegen om een "als ... dan ..." uitspraak in de logica te doen. Ook al worden ze vaak door elkaar gebruikt, toch is er een subtiel verschil. Bij \(\varphi\rightarrow\psi\) hangt de waarheid enkel en alleen af van de waarheidswaarden van \(\varphi\) en \(\psi\); de definitie van de implicatiepijl \(\rightarrow\) wordt via een waarheidstabel gedefinieerd. Het symbool \(\implies\) is eigenlijk bedoeld als implicatiesymbool in de meta-taal waarin we over logische formules praten. Een voorbeeld moge dit subtiele onderscheid duidelijker maken.
Stel dat \(\varphi\) een formule is waarin alleen de connectieven \(\neg\), \(\land\) en \(\lor\) voor komen. Dan wordt de duale formule \(\varphi^{\mathrm{d}}\) gedefinieerd as de formule die ontstaat door elk voorkomen van \(\land\) in \(\varphi\) te vervangen door \(\lor\) en elk voorkomen van \(\lor\) in \(\varphi\) te vervangen door \(\land\). Stel nu dat \(\varphi\) en \(\psi\) equivalente formules zijn waarin alleen de connectieven \(\neg\), \(\land\) en \(\lor\) voor komen. Hieruit mogen we dan concluderen dat \(\varphi^{\mathrm{d}}\) en \(psi^{\mathrm{d}}\) ook logisch equivalent zijn. Dit is een bewering over logische formules die niet helemaal binnen het systeem van de propositielogica valt. We noteren dit daarom met een ander symbool: \[\varphi\leftrightarrow \psi \implies \varphi^{\mathrm{d}}\leftrightarrow \psi^{\mathrm{d}}\]
Als \(\varphi\) en \(\psi\) logische formules zijn, dan is onderstaande waarheidstabel toepasbaar: \[\begin{array}{cc|c} \varphi & \psi & \varphi\rightarrow \psi \\ \hline 0 & 0 & 1 \\ 0 & 1 & 1 \\ 1 & 0 & 0\\ 1 & 1 & 1 \end{array}\]
Met de implicatie is het eenvoudig om logische equivalentie van proposities te introduceren.
Twee proposities zijn logisch equivalent, of kortweg equivalent, wanneer de twee proposities in alle gevallen dezelfde waarheidswaarde, d.w.z. ofwel beide waar ofwel beide onwaar zijn; in alle andere gevallen zijn de proposities niet equivalent.
Equivalentie wordt gesymboliseerd door de infix operator \(\leftrightarrow\), welke staat voor het voegwoord "precies dan als" in natuurlijke taal. Andere populaire formuleringen in gewone taal zin "... als ... en anders niet.", "... enkel en alleen als ..." en "als ... dan ..., en omgekeerd."
In wiskunde en propositielogica wordt staat de implicatie \(\leftrightarrow\) voor "dan en slechts dan" en "is een noodzakelijke en voldoende voorwaarde voor".
Voorbeeld
"Je kan met vlucht KL1845 op 25 juli met vertrektijd 11:45 mee dan en slechts dan als je een vliegticket voor vlucht KL1845 op 25 juli met vertrektijd 11:45 gekocht hebt." Om met de geplande vlucht mee te kunnen gaan moet je wel een geldig vliegticket gekocht hebben en alleen als je een geldig vliegticket gekocht hebt kun je deze vlucht nemen.
In gewone taal vervaagt vaak het onderscheid tussen implicatie en equivalentie. Als een moeder tegen haar kind zegt "Als je je bord leeg eet, dan krijg je een toetje." dan bedoelt ze meestal impliciet dat haar kind enkel en alleen een toetje krijgt als het zijn of haar bord leeg eet. Als haar kind een toetje krijgt, dan heeft het zijn of haar bord leeg gegeten, ook al staat dat niet expliciet in de uitspraak van de moeder.
Je komt in praktijk ook de dubbele implicatiepijl \(\iff\) i.p.v. \(\leftrightarrow\) tegen om een "dan en slechts dan" uitspraak in de logica te doen. Ook al worden ze vaak door elkaar gebruikt, toch is er een subtiel verschil. Bij \(\varphi\leftrightarrow\psi\) hangt de waarheid enkel en alleen af van de waarheidswaarden van \(\varphi\) en \(\psi\); de definitie van de equivalentiepijl \(\leftrightarrow\) wordt via een waarheidstabel gedefinieerd. Het symbool \(\iff\) is eigenlijk bedoeld als equivalentiesymbool in de meta-taal waarin we over logische formules praten. Een voorbeeld moge dit subtiele onderscheid duidelijker maken.
Stel dat \(\varphi\) een formule is waarin alleen de connectieven \(\neg\), \(\land\) en \(\lor\) voor komen. Dan wordt de duale formule \(\varphi^{\mathrm{d}}\) gedefinieerd as de formule die ontstaat door elk voorkomen van \(\land\) in \(\varphi\) te vervangen door \(\lor\) en elk voorkomen van \(\lor\) in \(\varphi\) te vervangen door \(\land\). Stel nu dat \(\varphi\) en \(\psi\) equivalente formules zijn waarin alleen de connectieven \(\neg\), \(\land\) en \(\lor\) voor komen. Hieruit mogen we dan concluderen dat \(\varphi^{\mathrm{d}}\) en \(\psi^{\mathrm{d}}\) ook logisch equivalent zijn, en omgekeerd. Dit is een bewering over logische formules die niet helemaal binnen het systeem van de propositielogica valt. We noteren dit daarom met een ander symbool: \[\varphi\leftrightarrow \psi \iff \varphi^{\mathrm{d}}\leftrightarrow \psi^{\mathrm{d}}\]
Als \(\varphi\) en \(\psi\) logische formules zijn, dan is onderstaande waarheidstabel toepasbaar: \[\begin{array}{cc|c} \varphi & \psi & \varphi\leftrightarrow \psi \\ \hline 0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0\\ 1 & 1 & 1 \end{array}\]