How to represent “can” in first order logic?

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?

• "dove can fly" is ambiguous (and not grammatical). It should be "doves can fly" (all doves) or "a dove can fly" or "this particular dove can fly" – Jair Taylor Mar 28 at 20:59
• @JairTaylor, thank you, corrected. – user1700890 Mar 28 at 21:03
• The correct translation depends on the context. In textbook examples, the meaning is more often "a dove can fly," than "a dove is flying." – Fabio Somenzi Mar 28 at 21:14
• The ambiguity is in the natural language expression; "a dove can fly" seems to mean that doves have the capability to fly, in which case every dove has it : $\forall x (\text {Dove}(x) \to \text {CanFly}(x))$. – Mauro ALLEGRANZA Mar 29 at 7:21
• @MauroALLEGRANZA. Could you clarify why "A dove can fly" is ambigous? Could you give an example of unambiguous statement? – user1700890 Mar 29 at 14:11

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

• $$dove(x)$$ to mean "$$x$$ is a dove",
• $$canfly(x)$$ to mean "$$x$$ can fly" and
• $$fly(x)$$ to mean "$$x$$ is flying".

Then,

• $$\exists x(dove(x)\land canfly(x))$$ means "there is a dove $$x$$ that can fly" and
• $$\exists x(dove(x)\land fly(x))$$ means "there is a dove $$x$$ that is flying".

Edit:

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)$$).
• Thank you! I have two questions, 1) Would it be possible to express it using higher order logic. 2) Could you point out what assumptions of FOL are violated in my interpretation: $\exists x, dove(x) \wedge can(x, fly)$ – user1700890 Mar 29 at 14:14