Marcus was a man. Marcus was a Pompeian. All Pompeians are Romans. Caesar was a ruler. All Romans are either loyal to Caesar or hated him. Everyone is loyal to someone. People only try to kill rulers they are not loyal to. Marcus tried to kill Caesar.
contains the following statements.
No | Clause |
1 | man(Marcus) |
2 | pompeian(Marcus) |
3 | "x[pompeian(x)=> roman(x)] |
4 | ruler(Caesar) |
5 | "x[roman(x) => loyalto(x2,Caesar) ![]() |
6 | "x$yloyalto(x,y) |
7 | "x"man(x)![]() ![]() ![]() |
8 | trykill(Marcus,Caesar) |
The are converted to conjunctive normal form as
No | Clause | Comment |
1 | man(Marcus) | |
2 | pompeian(Marcus) | |
3 | ![]() ![]() |
|
4 | ruler(Caesar) | |
5 | ![]() ![]() ![]() |
|
6 | loyalto(x3,S1(x3)) | Skolem func. |
7 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
8 | trykill(Marcus,Caesar) |
So we start with the negation that Marcus does not hate Caesar and then refute that claim by looking for conflict in the database (see examples paper). The proof proceeds like:
Current Clause | Resolve with |
dbase clause | |
![]() |
5 |
¯ | |
![]() |
3 |
¯ | |
¯ | |
CONFLICT |