Exempel på satslogik
I den här artikeln visar vi några formler och deras möjliga värderingar med hjälp av sanningstabellen.
Första exemplet
Vi ska ta reda på när den här formeln är sann: ϕ = (p ∧ q) ∨ ¬q. Vi skriver in satsvariablerna p och q i tabellen:
Sedan lägger vi till den första delen av formeln: (p ∧ q), negationen ¬q och därefter hela formeln:
Nu beräknar vi värdena för den tredje kolumnen, som är en enkel konjunktion, och samtidigt för negationen — där sätter vi bara in de omvända värdena mot dem i den andra kolumnen:
Till sist beräknar vi värdena i den sista kolumnen. Det är hela formeln. Med vår tabell beräknar vi alltså disjunktionen ”mellan den tredje och den fjärde kolumnen”. Resultat:
Andra exemplet
Samma uppgift, en annan formel: ϕ = (p ∧ ¬q) ⇔ (¬p ⇒ q). Vi ser att formeln innehåller satsvariablerna p och q och deras negationer. Först gör vi därför en tabell med de två symbolerna och deras negationer:
Sedan lägger vi till formlerna p ∧ ¬q och ¬p ⇒ q, som vi nu enkelt kan värdera, eftersom vi i tabellen har både värderingen av de enskilda utsagorna och av deras negationer. Tabellen ser ut så här:
Till sist återstår att värdera hela formeln, som är en ekvivalens mellan de två sista kolumnerna:
Tredje exemplet
Det tredje exemplet blir lite svårare, vi prövar tre satsvariabler, vilket gör beräkningen av tabellen mer omfattande. Formeln ser ut så här: ϕ = (¬(p ⇒ q)) ∧ (r ⇔ (¬p ∨ q)).
Eftersom vi har tre satsvariabler blir det totala antalet möjliga värderingar åtta:
Därefter går vi tillväga på samma sätt som i det förra fallet, vi värderar varje kolumn i alla åtta rader. Hela tabellen ser ut så här:
Fjärde exemplet
Det här exemplet ger vi inte som en vanlig formel, utan som en textuppgift. Tre kompisar vill gå på en vild fest där toplösa modeller delar ut förfriskningar. De gillar inte varandra så värst mycket och ställer villkor för när de följer med. De heter Martin, Jakob och Per. Reglerna är följande:
- Om Martin går, så går också Jakob.
- Per kommer till festen eller, om Martin kommer dit, så kommer Jakob inte dit.
- Per kommer om och endast om Martin inte kommer eller Jakob inte kommer.
Frågan lyder: kan alla komma till festen? Om inte, vem kan gå på festen utan att bryta mot någon regel?
Först måste vi skriva om de ovanstående utsagorna till satsvariabler och formler. Vi kallar satsvariablerna M, J och P (Martin, Jakob, Per), och var och en betyder en utsaga av typen ”Martin går på festen”. Den första regeln kan vi skriva så här: M ⇒ J — ”om M, så J”, alltså ”om Martin går på festen, så går Jakob på festen”.
Den andra regeln skriver vi så här. Regeln börjar med meningen ”Per kommer till festen eller …”, så vi behöver uppenbarligen en disjunktion. Tills vidare skriver vi: P ∨ … Nästa del av meningen säger: ”om Martin kommer dit, så kommer Jakob inte dit”. Det är en implikation, där vi dessutom måste använda en negation i högerledet. ”Jakob kommer inte” = ¬J. Hela implikationen blir: M ⇒ ¬J. Den kopplar vi på den förra disjunktionen: P ∨ (M ⇒ ¬J).
Den tredje regeln skriver vi så här: vi börjar med ”Per kommer om och endast om”. Det betyder en ekvivalens: P ⇔ … Sedan har vi ”Martin kommer inte eller Jakob kommer inte”, vilket vi skriver som ¬M ∨ ¬J. Vi sätter ihop det: (P ⇔ (¬M ∨ ¬J)).
Nu sätter vi in alla formler i tabellen och beräknar värdena:
Frågan var om alla tre killarna kan gå på den vilda festen. Svaret hittar vi i den första raden. Den motsvarar fallet då alla killar går — det visas av de tre ettorna i de tre första kolumnerna. Är alla villkor uppfyllda? Det första är det (den fjärde kolumnen), det andra också (den femte kolumnen), men det sista inte (den sista kolumnen), där står en nolla. Det betyder att om alla tre går, blir inte det tredje villkoret uppfyllt.
Vi söker alltså de rader där det på de positioner som motsvarar villkoren (alltså de tre sista kolumnerna) bara står ettor. En etta betyder att villkoret är uppfyllt. Vi ser att det inträffar i två fall. När Jakob och Per går men inte Martin, och sedan när bara Per går.
Du kan också räkna ut det genom att lägga till formeln ϕ i tabellen, som är konjunktionen av alla tre villkor. Den blir alltså: ϕ = ((M ⇒ J) ∧ (P ∨ (M ⇒ ¬J)) ∧ (P ⇔ (¬M ∨ ¬J))). Den visar det vi vill ha — att alla formler (alla villkor) är uppfyllda. Tabellen skulle då se ut så här:
Några exempel med sanningstabeller
Eftersom jag har skrivit ett program som automatiskt kan bygga hela tabellen av en given formel, måste jag förstås utnyttja det ordentligt, och därför följer ytterligare några lösta formler:
Formel: ((a ∧ ¬b) ∨ (b ∧ (b ⇒ a))). Tabell:
Formel: (a ∨ ¬a) ⇔ (b ∧ ¬b). Tabell:
Formel: ¬(a ∨ b) ⇔ (¬b ∧ ¬a). Tabell:
Formel: ϕ = (¬p ⇔ (q ∧ r)) ⇒ (p ∨ ¬(p ∧ q)). Tabell:
Formel: ϕ = ¬(p ⇔ ¬q) ∧ (r ⇒ ¬p) ∧ (p ∨ r). Tabell:
Kapitel: Satslogik, Sanningsvärde för formler, Exempel på satslogik