Trädmetoden för satslogik Trädmetoden utgör ett systematiskt tillvägagångssätt för att testa huruvida en given uppsättning satser är konsistent. Idén är att man successivt går igenom de olika möjligheterna att hitta en värdering som gör samtliga av de aktuella satserna sanna. Eftersom logisk följd kan formuleras i termer av konsistens (A1, A2, ..., An B omm { A1, A2, ..., An , B} är inkonsistent) så kan trädmetoden även användas för att testa logisk följd. Detta är också den vanligaste tillämpningen av metoden. Att avgöra konsistens är inte en uppenbart lättillgänglig uppgift i de fall där satserna det rör sig om är komplexa. Emellertid kan man tack vare beroendet av sanningsvärdet hos sammansatta satser på sanningsvärdet hos komponenterna reducera problemet till enklare fall. Detta är trädmetodens ledtanke. Låt oss börja med att betrakta ett enkelt fall. Antag att alla satserna i mängden som skall testas för konsistens är antingen atomära satser eller negationer av atomära satser. (Ett exempel på en sådan mängd är {p, q, q }) Det är enkelt att avgöra huruvida en mängd av detta slag är konsistent: man går igenom alla atomära satser som förekommer i mängden och kontrollerar om deras negationer förekommer eller inte. Om svaret i samtliga fall är nej så är mängden konsistent. Annars inkonsistent. Den värdering man erhåller i konsistensfallet består i att man låter alla atomära satser i mängden vilka förekommer onegerade tillskrivas värdet sant, medan de atomära satser vars negation ingår i mängden tillskrivs värdet falskt. I exemplet ovan är svaret att mängden är inkonsistent eftersom både q och q förekommer. Med exemplet {p, q, r} i stället hade resultatet blivit att mängden är konsistent, med värdering p falsk, q sann, r sann som bevis för detta. Vid tillämpning av trädmetoden reducerar man, genom successiva förenklingar, problemet att avgöra konsistens för mängder av sammansatta satser till problemet att avgöra konsistens för mängder av atomära eller negerade atomära satser, d.v.s. till det problem vars lösning beskrivits ovan. Förenklingsreglerna återspeglar sanningsfunktionaliteten hos huvudkonnektiven i de satser som skall förenklas. Först några typografiska anmärkningar. Vid tillämpningar av trädmetoden börjar man med att skriva upp satserna ur den aktuella mängden under varandra i stället för efter varandra. Man använder inte heller klamrar. Resultaten av de successiva förenklingarna skrivs sedan nedanför tidigare resultat. Trädet växer med andra ord nedåt. Då olika alternativ måste testas markeras detta genom en förgrening (som i ett beslutsträd). Olika regler tillämpas för olika konnektiv. Antag exempelvis att trädet innehåller en sats av formen (AB). Tack vare sanningsvillkoren för implikation vet vi att denna sats är sann omm A är sann och B är falsk. Det betyder att en mängd som innehåller (AB) är konsistent omm samma mängd fast med A och B i stället för (AB) är konsistent. Om (AB) finns i trädet bockar vi för satsen (skriver "√" efter den) för att markera att vi stryker den, och skriver i stället ned, längst ned på trädet, A och B. Schematiskt ser det ut på följande sätt: (AB) √ ... ... A B Antag i stället att AB förekommer i trädet. Här blir regeln mer komplicerad. AB är sann då antingen A är falsk eller B är sann. Det finns alltså två möjligheter att göra implikationen sann: antingen genom att låta A vara sann eller genom att låta B vara sann. Detta betyder att en mängd av satser som innehåller AB är konsistent (satserna kan göras simultant sanna) omm antingen samma mängd med A i stället för AB är konsistent, eller samma mängd med B i stället för AB är konsistent. Här blir det alltså två alternativ som måste undersökas, och därmed förgrenar sig trädet. Utseendet är det följande. AB √ .... .... A B På samma sätt kan man motivera regler för de återstående konnektiven. Samtliga regler sammanfattas nedan. A .... AB .... A A B AB .... A AB A (AB) .... A A B B B (AB) .... B A B (AB) (AB) A B A B A B Genom successiva tillämpningar av dessa regler kommer man till sist att ha strukit (bockat för) alla sammansatta satser (satser som varken är atomära eller negationer av atomära satser). Då kan man, såsom, ovan visats, läsa av lösningen på problemet. Priset man får betala för förenklingarna är att antalet alternativ som behöver undersökas växer (trädet förgrenas). Låt oss betrakta ett konkret exempel. Gäller den logiska följden pq qp ? Mängden vars konsistens skall testas är pq, (qp). Man börjar därför på följande vis pq (qp) Vi tillämpar nu regeln för negerad implikation. pq (qp) q p Nästa steg är att tillämpa regeln för dubbel negation. pq (qp) q p p Vi har den första implikationen kvar att bearbeta. Regeln för implikation ger oss nu en förgrening. p pq (qp) q p p q Nu har vi kommit ned till nivån av atomära eller negerat atomära satser (alla sammansatta satser har bockats för). Vi har fått två alternativ till värderingar som skall göra ursprungsmängdens satser sanna. Dessa alternativ ser vi genom att läsa av de atomära och negerat atomära satserna längs med de respektive grenarna. Först den vänstra grenen. Detta ger oss mängden p, p, q (Avläst nedifrån och upp). Denna mängd är inkonsistent och ger alltså inte någon värdering som gör ursprungsmängden sann. Det andra alternativet, från den högra grenen, är q, p, q, vilket också är en inkonsistent mängd. Därmed är även ursprungsmängden inkonsistent, vilket betyder att den logiska följden gäller. Om man under utvecklandet av trädet upptäcker att en gren innehåller inkonsistenser (en sats och dess negation) så vet man att denna gren inte kan ge någon värdering som gör satserna sanna. Därmed behöver man inte undersöka detta alternativ (utveckla grenen) ytterligare, även om inte alla sammansatta satser har bockats för. Detta markerar man genom att sätta ett kryss under grenen, och sedan gå vidare till andra grenar. Ett alternativt uttryckssätt är att man "stänger grenen". Om man har bockat för alla sammansatta formler men det ändå finns en gren som inte kan stängas (som inte innehåller motsägelser) säger man att denna gren är öppen. Genom att läsa av vilka atomära och negerat atomära satser som förekommer får man, som i exemplet som inledde texten, en värdering som gör ursprungsmängdens satser sanna och som därmed demonstrerar dennas konsistens. Som ett exempel på detta: Gäller det att pq, qr rp ? 1. 2. 3. 4. 5. 6. q p pq qr (rp) r p r q x p q Rad 4 och 5 kommer från rad 3 via regeln för negerad implikation tillämpad på rad 3. Rad 6 kommer från rad 2 via regeln för implikation. Sista raden kommer från rad 1 genom regeln för implikation. Här ser vi att vi kan stänga den andra grenen från vänster, eftersom där finns både q och q. Men de övriga grenarna innehåller inga motsägelser, och är alltså öppna. Om vi t.ex. betraktar den första grenen från vänster ser vi att denna innehåller de atomära och negerat atomära satserna p, q, p och r. Detta ger oss värderingen p falsk, q falsk, r sann, som alltså utgör ett motexempel mot den logiska följden (en värdering för vilken premisserna är sanna, men slutsatsen falsk). Låt oss betrakta ytterligare ett exempel. Gäller det att pqr, r pq ? Trädet blir som följer. 1. 2. 3. 4. 5. 6. 7. pqr r (pq) p q qr q r x x Alla grenar stängs, så logisk följd gäller. Observera att vi började med att bearbeta den negerade implikationen på rad 3, vilket ger rad 4 och 5. Vi hade också kunnat börja med att bearbeta implikationen i rad 1. Detta leder till följande träd. 1. 2. 3. 4. 5. 6. 7. p x pqr r (pq) p p q x qr p q q r x x Samma resultat, men ett något mer omfattande träd eftersom vi här tvingas skriva ned resultatet av bearbetningen av (pq) på två grenar. En onödig fördubbling som man undviker genom att så långt som möjligt skjuta upp förgreningar. Det går alltså att bespara sig arbete genom att välja i vilken ordning man skall behandla de i trädet ingående satserna. Här är principen den att satser som inte skapar förgreningar skall gå före dem som skapar förgreningar. Observera att bakgrunden till denna princip är den regeln att man skall skriva ned resultatet av förbockningen av en sats på samtliga grenar nedanför satsen ifråga. Det är på grund av detta som en olämpligt utförd förgrening fördubblar antalet satser i trädet.