✖

Eksempler på udsagnslogik

I denne artikel viser vi nogle formler og deres mulige værdisætninger ved hjælp af sandhedstabeller.

Første eksempel

Vi prøver at finde ud af, hvornår denne formel er sand: ϕ = (p ∧ q) ∨ ¬q. Vi skriver udsagnsvariablene p og q i en tabel:

pq11100100

Dernæst skriver vi den første del af formlen i tabellen: (p ∧ q), negationen ¬q og så hele formlen:

pqp∧q¬qϕ11100100

Nu udregner vi værdierne i den tredje kolonne, det er en simpel konjunktion, og samtidig også for negationen — der indsætter vi bare de omvendte værdier af dem, der står i den anden kolonne:

pqp∧q¬qϕ1110100101000001

Til sidst udregner vi værdierne i den sidste kolonne. Det er hele formlen. Ud fra vores tabel regner vi altså en disjunktion »mellem den tredje og den fjerde kolonne«. Resultat:

pqp∧q¬qϕ11101100110100000011

Andet eksempel

Samme opgave, en anden formel: ϕ = (p ∧ ¬q) ⇔ (¬p ⇒ q). Vi ser, at formlen indeholder udsagnsvariablene p og q og deres negationer. Først laver vi derfor en tabel med de to symboler og deres negationer:

pq¬p¬q1100100101100011

Dernæst tilføjer vi formlerne p ∧ ¬q og ¬p ⇒ q, som vi allerede let kan vurdere, fordi vi i tabellen har både værdisætningen af de enkelte udsagn og af deres negationer. Tabellen ser sådan ud:

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

Til sidst mangler vi at vurdere hele formlen, som er en biimplikation mellem de to sidste kolonner:

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

Tredje eksempel

Det tredje eksempel bliver lidt sværere, vi prøver med tre udsagnsvariable, hvilket gør udregningen af tabellen mere omfattende. Formlen ser sådan ud: ϕ = (¬(p ⇒ q)) ∧ (r ⇔ (¬p ∨ q)).

Fordi vi har tre udsagnsvariable, er det samlede antal værdisætninger otte:

pqr111110101100011010001000

Derefter går vi frem på samme måde som i det foregående tilfælde, og vi udfylder hver kolonne i alle otte rækker. Hele tabellen ser sådan ud:

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

Fjerde eksempel

Dette eksempel giver vi ikke som en almindelig formel, men som en tekstopgave. Tre venner, som vil med til en vild fest, hvor topløse modeller deler snacks ud, kan ikke helt lide hinanden og stiller betingelser for, hvornår de vil komme til festen. De hedder Magnus, Jakob og Peter. Reglerne er følgende:

  1. Hvis Magnus kommer, så kommer Jakob også.
  2. Til festen kommer Peter, eller, hvis Magnus kommer, så kommer Jakob ikke.
  3. Peter kommer, hvis og kun hvis Magnus ikke kommer eller Jakob ikke kommer.

Spørgsmålet er, om de alle sammen kan komme til festen? Hvis ikke, hvem kan så komme til festen uden at overtræde nogen af reglerne?

Først skal vi omskrive de foregående udsagn med ord til udsagnsvariable og formler. Lad os betegne udsagnsvariablene M, J og P (Magnus, Jakob, Peter), og de vil altid betyde et udsagn af typen »Magnus kommer til festen«. Den første regel kunne vi omskrive sådan her: M ⇒ J — »hvis M, så J«, altså »hvis Magnus kommer til festen, så kommer Jakob til festen«.

Den anden regel omskriver vi sådan her. Reglen begynder med sætningen »Til festen kommer Peter, eller…«, så vi har åbenbart brug for en disjunktion. Foreløbig skriver vi dette: P ∨ … Den næste del af sætningen siger: »hvis Magnus kommer, så kommer Jakob ikke«. Det er en implikation, hvor vi desuden skal bruge en negation på højre side. »Jakob kommer ikke« = ¬J. Hele implikationen ville se sådan ud: M ⇒ ¬J. Den knytter vi til den foregående disjunktion: P ∨ (M ⇒ ¬J).

Den tredje regel omskriver vi sådan her: Vi starter med »Peter kommer hvis og kun hvis«. Det betyder en biimplikation: P ⇔ … Dernæst har vi »Magnus kommer ikke, eller Jakob kommer ikke«, hvilket vi omskriver sådan her: ¬M ∨ ¬J. Vi sætter det sammen: (P ⇔ (¬M ∨ ¬J)).

Nu sætter vi alle formlerne ind i tabellen og udregner værdierne:

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

Spørgsmålet lød, om alle tre drenge kan tage til den vilde fest. Svaret finder vi i den første række. Den svarer til det tilfælde, hvor alle drengene kommer — det signaleres af de tre ettaller i de første tre kolonner. Er alle betingelserne opfyldt? Den første ja (fjerde kolonne), den anden også (femte kolonne), men den sidste ikke (sidste kolonne), dér er der et nul. Det betyder, at hvis alle tre kommer, så er den tredje betingelse ikke opfyldt.

Vi leder derfor efter de rækker, hvor der kun står ettaller på de pladser, der symboliserer betingelserne (altså de sidste tre kolonner). Et ettal betyder, at betingelsen er opfyldt. Vi ser, at det sker i to tilfælde. Når Jakob og Peter kommer, men Magnus ikke, og så når kun Peter kommer.

Du kan også regne det ud ved at føje formlen ϕ til tabellen, som er konjunktionen af alle tre betingelser. Den ser altså sådan ud: ϕ = ((M ⇒ J) ∧ (P ∨ (M ⇒ ¬J)) ∧ (P ⇔ (¬M ∨ ¬J))). Den viser det, vi vil have — at alle formlerne (alle betingelserne) er opfyldt. Tabellen ville så se sådan ud:

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

Nogle eksempler på sandhedstabeller

Fordi jeg har skrevet et program, som ud fra en given formel automatisk kan opstille hele tabellen, må jeg også udnytte det ordentligt, og derfor følger der nu et par løste formler mere:

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

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

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

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

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

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

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

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

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

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

Kapitler: Udsagnslogik, Formlers sandhedsværdi, Eksempler på udsagnslogik