一阶逻辑公式
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 <= Radius e1 --> Value e1 = 0
。由于前件(-->
之前的事物)为真,所以我们有 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) < 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,其实 :)以上是关于一阶逻辑公式的主要内容,如果未能解决你的问题,请参考以下文章