This is the example done in class on November 15.

Write using predicate calculus the following:

``All blocks on top of blocks that have been moved or that are attached to blocks that have been moved have also been moved.''

We will use the following predicates:

= x is a block. We can assume all objects are blocks and skip it.

= x moved

= x is on y

= x is attached to y.

We can write this, as we did in class in our first attempt, as:

(1) |

An alternative way of writing it, which is equivalent to (1), is:

(2) |

Please notice that is not in the premise of the implication but quantifies the entire expression. The general rule is that we can either use a universal quantifier which quantifies over the entire expression, or use an existential quantifier which quantifies just over the premise. They are equivalent because when we convert to CNF the premise is negated and so the existential quantifier becomes a universal quantifier.

This other writing, which we did in class in our second attempt, is is NOT equivalent to (1) or (2):

(3) |

Try to convert it to CNF to see the difference. What you can notice that is not correct is that the expression contains a universal quantifier and conjunctions but no implication.

There is one more writing which uses an existential quantifier and which is equivalent to (3):

(4) |

This is also incorrect. It says that for all blocks there exists
at least a block .
The original sentence says that *if* there is a block on or attached
to which moved then also moved.

Maria Gini 2004-11-15