Introduction to Artificial Intelligence
Due: Tuesday, 10/3
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.
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.