===== This example concerns the step in reduction-to-clausal-form involving reducing the scope of negation. This example shows that if you perform some of these steps before others, you will perform unnecessary steps. However, you will eventually get the right answer, regardless of the order in which you apply them. Here are several conversions of sentence S: S. not (ls(john) -> (not (exists Z (have(john,Z) & mouse(Z))))). not (not ls(john) or (not (exists Z (have(john,Z) & mouse(Z))))). CHOICE HERE not (not ls(john) or (all Z not (have(john,Z) & mouse(Z)))). CHOICE HERE not (not ls(john) or (all Z (not have(john,Z) or not mouse(Z)))). ls(john) & not (all Z (not have(john,Z) or not mouse(Z))). ls(john) & (exists Z not (not have(john,Z) or not mouse(Z))). ls(john) & exists Z (have(john,Z) & mouse(Z))). ls(john) & have(john,c22) & mouse(c22)). 3 CLAUSES ----------- S. not (ls(john) -> (not (exists Z (have(john,Z) & mouse(Z))))). not (not ls(john) or (not (exists Z (have(john,Z) & mouse(Z))))). SAME CHOICE not (not ls(john) or (all Z not (have(john,Z) & mouse(Z)))). OTHER CHOICE not (not ls(john) or (all Z not (have(john,Z) & mouse(Z)))). ls(john) & not (all Z not (have(john,Z) & mouse(Z)))). CHOICE HERE ls(john) & not (all Z (not have(john,Z) or not mouse(Z))). CHOICE HERE ls(john) & exists Z not (not have(john,Z) or not mouse(Z))). CHOICE HERE ls(john) & exists Z (have(john,Z) & mouse(Z)). ls(john) & have(john,c22) & mouse(c22). 3 CLAUSES ----------- SHORTEST PROCESS: work on outer scopes first S. not (ls(john) -> (not (exists Z (have(john,Z) & mouse(Z))))). not (not ls(john) or (not (exists Z (have(john,Z) & mouse(Z))))). CHOICE HERE ls(john) & (exists Z (have(john,Z) & mouse(Z))). ls(john) & have(john,c22) & mouse(c22). 3 CLAUSES ============ ============ all X (studyHard(X) and prepareInAdvance(X)) -> (succeed(X) and not worry(X)). a) Replace A --> B by ~A or B all X ~(studyHard(X) and prepareInAdvance(X)) or (succeed(X) and ~worry(X)). b) Move ~ inwards all X (~studyHard(X) or ~prepareInAdvance(X)) or (succeed(X) and ~worry(X)). c) Standardize variables d) Skolemize e) Drop universal quantifiers (~studyHard(X) or ~prepareInAdvance(X)) or (succeed(X) and ~worry(X)). f) Distributive law (~studyHard(X) or ~prepareInAdvance(X) or succeed(X)) and (~studyHard(X) or ~prepareInAdvance(X) and ~worry(X)). g) Create separate clause for each conjunct ~studyHard(X) or ~prepareInAdvance(X) or succeed(X). ~studyHard(X) or ~prepareInAdvance(X) or ~worry(X). h) Standardize apart so same variable doesn’t appear in 2 clauses ~studyHard(X) or ~prepareInAdvance(X) or succeed(X). ~studyHard(Y) or ~prepareInAdvance(Y) or ~worry(Y).