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.

Was it helpful?

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 ys as you would like per x. With Mother as a relation, you can also make formula that checks whether you have two ys 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).

Licensed under: CC-BY-SA with attribution
Not affiliated with cs.stackexchange
scroll top