I would like to write the following sentence in first order logic:
"A dove can fly"
Here is my naive guess:
$\exists x, dove(x) \wedge can(x, fly) $
I don't like this representation, because
"A dove flies"
translates to first order logic as
$\exists x, dove(x) \wedge fly(x)$
Can anybody comment?
First-order logic can't represent the possibility that a property holds about an object. In first-order logic you can state that something holds or that something does not hold (through it's negation). Otherwise you can't say anything else about it. You certainly can't represent the notion that a property might hold.
For systems that incorporate certainty and possibility, you can take a look at modal logic.
If you really want to make a distinction between "is flying" and "can fly" in first-order logic, you can set
Then,
Edit:
1) You could post a new question about this. Maybe someone can answer with more certainty than mine.
2) What does the sentence $\exists x(dove(x)\land can(x,fly))$ violate in first-order logic?
The sentence itself is syntactically invalid. It does not make sense, because the distinction between terms (objects) and properties is not clear. In $P(x)$, $x$ is a term (a variable, an object) and $P$ is a property that should hold about object $x$. For the sentence to make sense we must assume that $fly$ is an object. So then, $can(x,fly)$ is a property over two objects. However, it is clear that you intended $fly$ to be a property ($fly(x)$).