How to represent "can" in first order logic?

212 Views Asked by At

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?

1

There are 1 best solutions below

5
On BEST ANSWER

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:

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)$).