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 in our first attempt as:
An alternative way of writing it, which is equivalent to (1), is:
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 is NOT equivalent to (1) or (2):
Try to convert it to CNF to see the difference. You can notice
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):
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.