Introduction to Artificial Inteligence

Bonus Assignment


Resolution Theorem Prover

Goals

Constructing a partial resolution theorem proving program, and exercising it by using it to prove correctness of plans from the blocks world toy domain.

Requirements

The partial resolution theorem prover is a reduced version of a full-blown FOL resolution theorem prover. The input is a formula in disjunctive normal form. The program should produce a proof that the formula is a contradiction. However, some simplifications are introduced in this assignment:

Note that you are expected to write your own unification algorithm and resolution code, not to use the internals of a logic programming language such as Prolog to do that. However, you can still get partial credit for the assignment, by implementing plan correctness checking, as required below.

In addition, you need to exercise your program on the blocks world variant from the mid-term exam. Do the following:

The example you should use is: a world with one table T, and 3 blocks, A, B, C (all constants). In situation S0, A is on B and B is on the table. C is also on the table. Show that A is on B which is on C, and C is on the table, as a result of the sequence of actions: PutOn(A,T), PutOn(B,C), PutOn(A,B).

Deliverables

You need to turn in:

Deadline: June 13, 2001. Note - this is an individual assignment. Credit for a (perfectly completed) assignment is 10% of final grade added to the computed final grade from mid-term exams and other assignments.