一阶逻辑公式

Posted

技术标签:

【中文标题】一阶逻辑公式【英文标题】:First-order logic formula 【发布时间】:2011-03-21 10:17:31 【问题描述】:

如果我想用一阶逻辑表示'集合中具有最小半径的元素的值为0',下面的说法对吗?

∀ e1 ∈ S. ∀ e2 ∈ S. 半径 e1 ≤ 半径 e2 ⇒   值 e1 = 0?

变量的量化是否正确?

谢谢

【问题讨论】:

【参考方案1】:

为了用括号澄清一下,你写的通常是指:

\forall e1 \in S. (\forall e2 \in S. (Radius e1 <= Radius e2 --> Value e1 = 0))

此语句断言每个元素的值都是 0。方法如下:选择任意 e1,现在选择 e2 = e1,我们有:Radius e1 &lt;= Radius e1 --&gt; Value e1 = 0。由于前件(--&gt; 之前的事物)为真,所以我们有 Value e1 = 0。由于我们没有对e1 做出任何假设,所以我们有forall e \in S. Value e = 0

问题是你的括号是关闭的。

\forall e1 \in S. (\forall e2 \in S. Radius e1 <= Radius e2) --> Value e1 = 0

为了使先行词现在为真,e1 的半径必须小于或等于 每个(而不是任何)其他半径,这似乎符合您的预期.

【讨论】:

【参考方案2】:

我想你想要一个存在

\存在 e_1 。 (\forall e_2 radius(e_1)

我不确定公式中的优先级,但现在我想我理解了这个问题,也许你想要(其中 M 是最小条件radius(e_1) &lt; radius(e_2)

\forall e_1 。 ((\forall e_2 . M) -> 值 e_1 = 0)

我认为您之前的公式可能是错误的,原因如下。假设您有半径为 0, 1, 2 且值等于半径的元素。然后,您将遇到 1

\forall e_1 。 \forall e_2 。 P(e_1, e_2)

那么这个反例提供了一个 P 为假的情况,因此整个公式都失败了(但这个例子应该是真的)。​​

【讨论】:

这是错误的,因为问题陈述说可能有多个具有最小半径的元素,它们的值都应该为 0。 啊,抱歉,我没有区分值和半径。谢谢。【参考方案3】:

如果没有半径最小的元素,你写的也是正确的。如果这是需要的,那么您是正确的;如果没有,您需要添加一个子句:

(\forall e1 \in S. \forall e2 \in S. Radius e1 <= Radius e2 --> Value e1 = 0) \and (\exists e1 \in S. \forall e2 \in S. Radius e1 <= Radius e2)

【讨论】:

这和原来的问题一样。该语句断言每个元素的值都是 0。 不要投票给他,因为你认为他犯了错误!对于答案是与问题 i.m.h.o. 无关的意见 b/s 的情况,应保留投票。投票支持:) 好吧,你好。不同于m.h.o。我想提请未来读者注意正确答案。 我同意 luqui,其实 :)

以上是关于一阶逻辑公式的主要内容,如果未能解决你的问题,请参考以下文章

电子科技大学人工智能期末复习笔记:一阶逻辑

泰勒公式中,一阶导数怎么求?

20145327寒假第一周学习总结

一阶导数怎么求

高数基础 中值定理 泰勒公式

在不知道其公式的情况下在python中提取并绘制曲线的一阶导数?