Reading material

Pages 17-18.

Additional material

    falsify(`false').
    falsify(not P)   :- satisfy(P).
    falsify(P and Q) :- falsify(P); falsify(Q).
    falsify(P or Q)  :- falsify(P), falsify(Q).

    satisfy(`true').
    satisfy(not P)   :- falsify(P).
    satisfy(P and Q) :- satisfy(P), satisfy(Q).
    satisfy(P or Q)  :- satisfy(P); satisfy(Q).
Question

Exercise 2.5 and 2.11