An Example of Converting a FOL Sentence to Clause Form
Convert the sentence (Ax)(P(x) => ((Ay)(P(y) => P(f(x,y))) ^ ~(Ay)(Q(x,y) => P(y))))
- Eliminate <=>
Nothing to do here.
- Eliminate =>
(Ax)(~P(x) v ((Ay)(~P(y) v P(f(x,y))) ^ ~(Ay)(~Q(x,y) v P(y))))
- Reduce scope of negation
(Ax)(~P(x) v ((Ay)(~P(y) v P(f(x,y))) ^ (Ey)(Q(x,y) ^ ~P(y))))
- Standardize variables
(Ax)(~P(x) v ((Ay)(~P(y) v P(f(x,y))) ^ (Ez)(Q(x,z) ^ ~P(z))))
- Eliminate existential quantification
(Ax)(~P(x) v ((Ay)(~P(y) v P(f(x,y))) ^ (Q(x,g(x)) ^ ~P(g(x)))))
- Drop universal quantification symbols
(~P(x) v ((~P(y) v P(f(x,y))) ^ (Q(x,g(x)) ^ ~P(g(x)))))
- Convert to conjunction of disjunctions
(~P(x) v ~P(y) v P(f(x,y))) ^ (~P(x) v Q(x,g(x))) ^ (~P(x) v ~P(g(x)))
- Create separate clauses
- ~P(x) v ~P(y) v P(f(x,y))
- ~P(x) v Q(x,g(x))
- ~P(x) v ~P(g(x))
- Standardize variables
- ~P(x) v ~P(y) v P(f(x,y))
- ~P(z) v Q(z,g(z))
- ~P(w) v ~P(g(w))