I came across an expression in predicate logic that made me wonder whether it was actually syntactically valid, and if so, semantically correct.
For a sentence like "Every dog chases a cat", there are two readings. (a) One where every dog there is, chases at least one cat and (b) one where at least one cat is chased by all dogs there are.
(a) $\forall x\in \{x : dog(x)\}:\ \exists y\in \{x : cat(x)\}:\ chase(x, y)$
(b) $\exists y\ \in\ \{x : cat(x)\}:\ \forall x\ \in\ \{x : dog(x)\} :\ chase(x,y)$
These two representations mean the same thing:
(a) $\forall x.[ dog(x) \rightarrow \exists y.[ cat(y) \land chases(x, y) ] ]$
(b) $\exists y.[ cat(y) \rightarrow \forall x.[ dog(x) \land chases(x, y) ] ]$
Now the expression I came across is this:
$$\forall x.(dog(x) \rightarrow \exists y.(cat(y) \land chase(x))(y))$$
This looks weird to me. To make it more apparent let more transform it:
It is the same as:
$$\forall x.[ dog(x) \rightarrow \exists y.[ cat(y) \land chase(x) ] (y) ]$$
which is the same as:
$$\forall x.[ dog(x) \rightarrow \exists y.[ cat(y) \land chase(x, ] y) ]$$
First of all, is it syntactically valid to have "quantifier[ functor( ] )"? So, having overlapping projections of syntactic nodes in the syntactic tree of the expression?
And if the expression is syntactically valid... what does it mean? It doesn't make any sense to me.