✖

Eksempler på utsagnslogikk

I denne artikkelen skal vi se på noen formler og de mulige sannhetsverdifordelingene deres ved hjelp av sannhetstabellmetoden.

Første eksempel

Vi skal finne ut når denne formelen er sann: ϕ = (p ∧ q) ∨ ¬q. Vi skriver utsagnsvariablene p og q inn i tabellen:

pq11100100

Deretter skriver vi inn den første delen av formelen, (p ∧ q), negasjonen ¬q og så hele formelen:

pqp∧q¬qϕ11100100

Nå regner vi ut verdiene for den tredje kolonnen, som er en enkel konjunksjon, og for negasjonen. Der setter vi bare inn de motsatte verdiene av dem som står i den andre kolonnen:

pqp∧q¬qϕ1110100101000001

Til slutt regner vi ut verdiene i den siste kolonnen. Den er hele formelen. I tabellen vår regner vi altså ut disjunksjonen «mellom den tredje og den fjerde kolonnen». Resultat:

pqp∧q¬qϕ11101100110100000011

Andre eksempel

Samme oppgave, en annen formel: ϕ = (p ∧ ¬q) ⇔ (¬p ⇒ q). Vi ser at formelen inneholder utsagnsvariablene p og q og negasjonene deres. Først lager vi derfor en tabell med de to variablene og negasjonene deres:

pq¬p¬q1100100101100011

Deretter legger vi til formlene p ∧ ¬q og ¬p ⇒ q. Dem kan vi lett regne ut, for i tabellen har vi både sannhetsverdiene til de enkelte utsagnene og til negasjonene deres. Tabellen ser slik ut:

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

Til slutt gjenstår det å regne ut hele formelen, som er ekvivalensen mellom de to siste kolonnene:

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

Tredje eksempel

Det tredje eksemplet blir litt mer komplisert. Vi prøver tre utsagnsvariabler, og det gjør utregningen av tabellen mer omfattende. Formelen ser slik ut: ϕ = (¬(p ⇒ q)) ∧ (r ⇔ (¬p ∨ q)).

Siden vi har tre utsagnsvariabler, blir det totale antallet fordelinger av sannhetsverdier åtte:

pqr111110101100011010001000

Videre går vi frem på samme måte som i det forrige eksemplet, og vi regner ut hver kolonne i alle åtte radene. Hele tabellen ser slik ut:

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

Fjerde eksempel

Dette eksemplet gir vi ikke som en vanlig formel, men som en tekstoppgave. Tre venner vil gå på en vill fest der toppløse modeller deler ut forfriskninger, men de liker ikke hverandre så godt og stiller vilkår for når de vil komme. De heter Magnus, Jakob og Per. Reglene er slik:

  1. Hvis Magnus kommer, så kommer også Jakob.
  2. Per kommer på festen, eller, hvis Magnus kommer, kommer ikke Jakob.
  3. Per kommer hvis og bare hvis Magnus ikke kommer eller Jakob ikke kommer.

Spørsmålet er om alle kan komme på festen. Hvis ikke, hvem kan komme på festen uten at noen av reglene brytes?

Først må vi skrive om de forrige utsagnene til utsagnsvariabler og formler. La oss kalle utsagnsvariablene M, J og P (Magnus, Jakob, Per). Hver av dem står for et utsagn av typen «Magnus kommer på festen». Den første regelen kan vi skrive om slik: M ⇒ J, «hvis M, så J», altså «hvis Magnus kommer på festen, så kommer Jakob på festen».

Den andre regelen skriver vi om slik. Regelen begynner med setningen «Per kommer på festen, eller …», så vi trenger åpenbart en disjunksjon. Foreløpig skriver vi: P ∨ … Neste del av setningen sier: «hvis Magnus kommer, kommer ikke Jakob». Det er en implikasjon, og på høyre side må vi i tillegg bruke en negasjon. «Jakob kommer ikke» = ¬J. Hele implikasjonen blir slik: M ⇒ ¬J. Den knytter vi til den forrige disjunksjonen: P ∨ (M ⇒ ¬J).

Den tredje regelen skriver vi om slik: vi begynner med «Per kommer hvis og bare hvis». Det betyr en ekvivalens: P ⇔ … Så har vi «Magnus kommer ikke eller Jakob kommer ikke», som vi skriver om slik: ¬M ∨ ¬J. Vi setter sammen: (P ⇔ (¬M ∨ ¬J)).

Nå setter vi alle formlene inn i tabellen og regner ut verdiene:

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

Spørsmålet var om alle tre guttene kan gå på den ville festen. Svaret finner vi i den første raden. Den svarer til tilfellet der alle guttene kommer, og det vises med tre enere i de tre første kolonnene. Er alle vilkårene oppfylt? Det første er det (fjerde kolonne), det andre også (femte kolonne), men det siste er ikke det (siste kolonne), der står det en null. Det betyr at hvis alle tre kommer, blir ikke det tredje vilkåret oppfylt.

Vi leter altså etter de radene der det står bare enere i kolonnene som svarer til vilkårene (de tre siste kolonnene). En ener betyr at vilkåret er oppfylt. Vi ser at dette skjer i to tilfeller: når Jakob og Per kommer, men ikke Magnus, og når bare Per kommer.

Du kan også regne det ut ved å legge til formelen ϕ i tabellen, som er konjunksjonen av alle tre vilkårene. Den ser slik ut: ϕ = ((M ⇒ J) ∧ (P ∨ (M ⇒ ¬J)) ∧ (P ⇔ (¬M ∨ ¬J))). Den uttrykker det vi vil ha, nemlig at alle formlene (alle vilkårene) er oppfylt. Tabellen ser da slik ut:

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

Noen flere eksempler på sannhetstabellmetoden

Siden jeg har skrevet et program som automatisk kan bygge hele tabellen ut fra en gitt formel, må jeg bruke det ordentlig, og derfor følger det noen flere løste formler:

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

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

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

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

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

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

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

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

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

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

Kapitler: Utsagnslogikk, Sannhetsverdien til formler, Eksempler på utsagnslogikk