Steve would like BK301.
Step 1: Predicate logic (taking statement (a) in the usual textbook form, "Steve likes the courses that are easy"):
- \(\forall x\ \text{easy}(x) \rightarrow \text{likes}(\text{steve}, x)\)
- \(\forall x\ \text{science}(x) \rightarrow \neg\text{easy}(x)\)
- \(\forall x\ \text{basketweaving}(x) \rightarrow \text{easy}(x)\)
- \(\text{basketweaving}(\text{bk301})\)
Step 2: Clause form
- \(\neg\text{easy}(x) \lor \text{likes}(\text{steve}, x)\)
- \(\neg\text{science}(y) \lor \neg\text{easy}(y)\)
- \(\neg\text{basketweaving}(z) \lor \text{easy}(z)\)
- \(\text{basketweaving}(\text{bk301})\)
Step 3: Negate the question. "What course would Steve like?" is \(\exists w\ \text{likes}(\text{steve}, w)\). Its negation is the clause
5. \(\neg\text{likes}(\text{steve}, w)\)
Step 4: Resolution
¬likes(steve,w) ¬easy(x) ∨ likes(steve,x)
\ / {x/w}
¬easy(w) ¬basketweaving(z) ∨ easy(z)
\ / {z/w}
¬basketweaving(w) basketweaving(bk301)
\ / {w/bk301}
NIL
The empty clause (contradiction) is reached with the substitution \(w = \text{bk301}\). So the answer to the query is BK301. Clause 2 (science courses are hard) is not needed; it only tells us Steve would not like a science course.