For this assignment you will be implementing a subset of Prolog using Lisp. You will end up with a lisp function, named ask , that you can call to prove the validity of a list of clauses given a list of Horn clauses assumed to be true. This assignment is divided into two parts. For Part 1 you will complete the provided Lisp code to implement unification. Part 2 requires you to use the unification functions to implement additional functions to prove the validity of clauses.
Unification Complete the definitions for unifier , and unifier-var .
Then test your code on these examples. You do not have to hand in the results of these tests. Do hand in the results with explanations of why you get the results you did. The primary function for this part is ask . It accepts as arguments a list of goal clauses and a list of assertions, the logic program.