#A -> BFor å starte eit sanningstre trykkar vi på "Start". Programmet vil ta premissane og negasjonen av konklusjonen, skrive dei om til negasjons normalform og setje dei opp under kvarandre. Alle utsegnene i treet er nummererte og programmet vil fortelje oss kva for utsegner vi har å jobbe med for å byggje vidare på treet. Så om vi trykkar på "Start" vil vi i det store tekstfeltet sjå:
-------
A \/ B
1.1 (A \/ B)Bak startknappen er det eit lite tekstfelt og ein knapp merkt "Steg". Om vi no vil gå vidare med øvste utsegna skriv vi "1.1" i dette feltet og trykkar på "Steg". Programmet vil no tekne opp det nye treet:
---------------
2.1 (#A /\ #B)
Utsegner å jobbe med: 1.1 2.1
1.1 (A \/ B) *Vi går vidare med utsegn 2.1, og får:
---------------
2.1 (#A /\ #B)
-----------------------
3.1 A 3.2 B
Utsegner å jobbe med: 2.1
1.1 (A \/ B) *
-----------------
2.1 (#A /\ #B) *
------------------------
3.1 A 3.2 B
------- -------
4.1 #A 4.2 #A
------- -------
5.1 #B 5.2 #B
------- -------
X X
Alle greiner er lukka, slutninga er gyldig!
A \/ (B \/ C)og trykkar "Start". Programmet viser oss no:
B -> C
-------------
C
1.1 (A \/ (B \/ C))Av di vi er late orkar vi ikkje utføre alle stega sjølv. Vi trykkar på "Automatisk" og programmet byggjer systematisk treet for oss til det ikkje er meir å gjere. (Programmet vil for kvart steg velje det lægste nummeret, men utsegner med "og" går alltid føre utsegner med "eller" for å gjere treet meir kompakt.) Resultatet vert:
--------------------
2.1 (#B \/ C)
--------------
3.1 #C
Utsegner å jobbe med: 1.1 2.1
1.1 (A \/ (B \/ C)) *Som vi kan sjå er det ikkje meir å gjere, og programmet har funni eit moteksempel.
----------------------
2.1 (#B \/ C) *
----------------
3.1 #C
-----------------------------------------------------
4.1 A 4.2 (B \/ C) *
------------------------ -----------------------------
5.1 #B 5.2 C 5.3 #B 5.4 C
------ ----------------------- ------
X 6.1 B 6.2 C X
------ ------
X X
Moteksempel funne: A=SANN B=USANN C=USANN
Det er ikkje meir å jobbe med.
A -> B \/ C /\ Dvil programmet tolke dette som
A -> (B \/ (C /\ D))Som du kanskje har lagt merke til har vi allereie nytta at "ikkje" bind sterkast, men utan at vi har sagt noko om det. Vidare bind symbol av same type sterkare frå venstre mot høgre, så om vi skriv inn
A -> B -> Cvil det verte tolka som
(A -> B) -> CSom du òg kanskje har sett vil programmet sjølv ikkje nytte desse konvensjonane når det skriv utsegner, men nytte alle parentesane.
(A ∧ (A → B)) → B | 2. |
¬(A ∧ (A → B)) ∨ B | 3. |
(¬A ∨ ¬(A → B)) ∨ B | 2. |
(¬A ∨ ¬(¬A ∨ B)) ∨ B | 4. |
(¬A ∨ (¬¬A ∧ ¬B)) ∨ B | 1. |
(¬A ∨ (A ∧ ¬B)) ∨ B | . |
P ∧ Q *Om utsegna er på forma P ∨ Q får vi ei forgreining; éi grein kor vi freistar gjere P sann og éi grein kor vi freistar gjere Q sann. (Det finst to måtar å gjere P ∨ Q sann på, men berre ein måte å gjere P ∧ Q sann.) Denne regelen kan sjå slik ut
P
Q
P ∨ Q *Vi må hugse å forgreine alle greiene som leier frå utsegna. No kan vi finne ei ny utsegn og gjere det same med ho, men berre om ho ikkje er merkt som ferdig.
/ \ .
P Q
A ¬AEi grein som ikkje er lukka kallar vi open. Om vi har nytta (og merkt) alle utsegnene i ei grein og ho framleis er open har vi funni ein måte å gjere alle utsegnene i greina sanne på ein gong. Denne finn vi ved å gjere alle literalane i greina sanne. Og sidan dei utsegnene vi starta med er starten på alle greinene i treet har vi funni ein måte å gjere dei sanne på òg. Så om utsegnene vi starta med var ei mengd premissar og negasjonen av ein konklusjon, har vi faktisk funni eit moteksempel til slutninga.
¬A A
X X
¬A → B A ∨ B |
A ∨ BLat oss byrje med øvste utsegna, og nytte "eller"-regelen på ho. Då får vi
¬A ∧ ¬B
A ∨ B *Når vi no nyttar "og"-regelen på utsegn nummer to må vi hugse at vi skal fortsette på alle greinene:
¬A ∧ ¬B
/ \ .
A B
A ∨ B *Vi ser no at greina til venstre inneheld både A og ¬A, og greina til høgre inneheld både B og ¬B, så båe greinene lukkar seg og utsegna er gyldig.
¬A ∧ ¬B *
/ \ .
A B
¬A ¬A
¬B ¬B
X X
A ∨ (B ∨ C) B → C C |
A ∨ (B ∨ C) | ⇒ | A ∨ (B ∨ C) * | ⇒ | A ∨ (B ∨ C) * | ⇒ | A ∨ (B ∨ C) * |
Ein quine til
To quines
Brev frå Schickard til Kepler
Rapport: Hjelper valkamp?
Prosjektskildring: Hjelper valkamp?
Operativsystemrevolusjonen
Perspektiv på fri/open programvare
Om ... misforståingar knytt til datateknologi II
Om misoppfatninga at fri/open programvare er kommu...
Til glede for nye brukarar
november 2005 desember 2005 februar 2006 april 2006 november 2006 desember 2006 januar 2007 februar 2007 mars 2007 august 2007 desember 2007 januar 2008 juli 2008