In first order logic, how do we normally represent a statement?
-
29-09-2020 - |
Question
I wanted for an example such as:
Everyone has a mother.
I've seen that it is represented in FOL as: $\forall x \exists y:$ Mother(x, y)
I'm seeing that as:For every x, there exists a y, such that y is a mother of x.
I want to know why isn't the following suitable:
$\forall x:$ hasMother(x)
Which I feel can be said as: For every x, x has a mother.
Solution
This is a good question and comes down to what you want to achieve with the Mother
entity.
In your first example, Mother(x, y)
is a (binary) relation. That means that you can have as many y
s as you would like per x
. With Mother
as a relation, you can also make formula that checks whether you have two y
s that satisfies motherhood for x
.
In your other example, hasMother(x)
is a predicate that can only be true or false. How many mothers do x
have? Impossible to say. Who is x
's mother? We can't say.
You could also conceive of a mother(x) → y
function that maps an x
to its mother y
, but then you can have only one mother, and every x
needs to have a mother (in the model).
It all comes down to (a) what is a natural representation of "the world" (whatever you want to model), and (b) what you want to achieve (whatever you want to get out of your model).