在一阶逻辑中,我们通常如何表示一个语句?
-
29-09-2020 - |
题
我想要一个例子,例如:
每个人都有一个母亲。
我看到它在 FOL 中表示为: $\forall x \存在 y:$ 母亲(x,y)
我认为:对于每个 x,都存在一个 y,因此 y 是 x 的母亲。
我想知道为什么以下不合适:
$\forall x:$ 有妈妈(x)
我的感觉可以这样说:对于每个 x,x 有一个母亲。
解决方案
这是一个很好的问题,归根结底取决于您想要通过 Mother
实体。
在你的第一个例子中, Mother(x, y)
是一个 (二进制) 关系. 。这意味着您可以拥有尽可能多的 y
如您所愿 x
. 。和 Mother
作为一种关系,您还可以制定公式来检查您是否有 二 y
满足母性的 x
.
在你的另一个例子中, hasMother(x)
是一个 谓词 那只能是 真的 或者 错误的. 。有多少妈妈这样做 x
有?不可能说。谁是 x
的妈妈?我们不能说。
你还可以设想一个 mother(x) → y
功能 映射一个 x
给它的母亲 y
, ,但是你只能有一个母亲,而每一个 x
需要有一个母亲(在模型中)。
这一切都归结为(a)什么是“世界”的自然表示(无论您想要建模什么),以及(b)您想要实现什么(无论您想从模型中得到什么)。
不隶属于 cs.stackexchange