CS 371
Introduction to Artificial Intelligence
Homework #5

Due: Tuesday, 10/3
  1. In hw5.tar, you will find code for a propositional logic parser.  The grammar (syntax) and semantics are briefly described in WFFgrammar.txt.  For this assignment, you'll be filling in unimplemented methods in file SatSolver.java.  Standard input receives a file in the given grammar and converts it to a vectors of WFF objects.  Each WFF object has a type and a Vector subtree which lists nested WFFs (or a String in the case of propositional symbols).  Your first task is to convert this to a CNF representation and output the CNF representation to standard output.
  2. Next, you will implement the Davis-Putnam procedure to solve the SAT problem.  Output the satisfying truth assignment or, if there is none, output "UNSATISFIABLE".  More details and suggestions are given in the comments of the code.

(c) 2000 Todd Neller