Tutorial5_Logic
Tutorial5_Logic
1. man(marcus)
2. roman(marcus)
3. ∀X .man(X ) → person(X )
(¬man(X ) ∨ person(X )
4. ruler (caesar )
5. ∀X .roman(X ) → loyal to(X , caesar ) ∨ hates(X , caesar )
(¬roman(X ) ∨ loyal to(X , caesar ) ∨ hates(X , caesar ))
6. ∀X .∃Y .person(Y ) ∧ loyal to(X , Y )
person(f (X ))
loyal to(X , f (X ))
7. ∀X , Y .tried to kill(X , Y ) → ¬loyal to(X , Y )
(¬tried to kill(X , Y ) ∨ ¬loyal to(X , Y ))
8. Marcus tried to assassinate Caesar.
tried to kill(marcus, caesar )
Query
1. man(marcus)
2. roman(marcus)
3. (¬man(X ) ∨ person(X )
4. ruler (caesar )
5. (¬roman(X ) ∨ loyal to(X , caesar ) ∨ hates(X , caesar ))
6. person(f (X ))
7. loyal to(X , f (X ))
8. (¬tried to kill(X , Y ) ∨ ¬loyal to(X , Y ))
9. tried to kill(marcus, caesar )
10. ¬hates(Z , caesar ) ∨ answer (Z )
11. R[9, 8a]{X =marcus, Y =caesar } ¬loyal to(marcus, caesar )
Resolution Proof
1. man(marcus)
2. roman(marcus)
3. (¬man(X ) ∨ person(X )
4. ruler (caesar )
5. (¬roman(X ) ∨ loyal to(X , caesar ) ∨ hates(X , caesar ))
6. person(f (X ))
7. loyal to(X , f (X ))
8. (¬tried to kill(X , Y ) ∨ ¬loyal to(X , Y ))
9. tried to kill(marcus, caesar )
10. ¬hates(Z , caesar ) ∨ answer (Z )
11. R[9, 8a]{X =marcus, Y =caesar } ¬loyal to(marcus, caesar )
12. R[11, 5c]{X =marcus} ¬roman(marcus) ∨ hates(marcus, caesar )
Resolution Proof
1. man(marcus)
2. roman(marcus)
3. (¬man(X ) ∨ person(X )
4. ruler (caesar )
5. (¬roman(X ) ∨ loyal to(X , caesar ) ∨ hates(X , caesar ))
6. person(f (X ))
7. loyal to(X , f (X ))
8. (¬tried to kill(X , Y ) ∨ ¬loyal to(X , Y ))
9. tried to kill(marcus, caesar )
10. ¬hates(Z , caesar ) ∨ answer (Z )
11. R[9, 8a]{X =marcus, Y =caesar } ¬loyal to(marcus, caesar )
12. R[11, 5c]{X =marcus} ¬roman(marcus) ∨ hates(marcus, caesar )
13. R[12a, 2]{} hates(marcus, caesar )
Resolution Proof
1. man(marcus)
2. roman(marcus)
3. (¬man(X ) ∨ person(X )
4. ruler (caesar )
5. (¬roman(X ) ∨ loyal to(X , caesar ) ∨ hates(X , caesar ))
6. person(f (X ))
7. loyal to(X , f (X ))
8. (¬tried to kill(X , Y ) ∨ ¬loyal to(X , Y ))
9. tried to kill(marcus, caesar )
10. ¬hates(Z , caesar ) ∨ answer (Z )
11. R[9, 8a]{X =marcus, Y =caesar } ¬loyal to(marcus, caesar )
12. R[11, 5c]{X =marcus} ¬roman(marcus) ∨ hates(marcus, caesar )
13. R[12a, 2]{} hates(marcus, caesar )
14. R[13, 10]{Z = marcus} answer (marcus)