如果我想在一阶逻辑中表示“集合中具有最小半径的元素的值为 0”,那么以下是否正确?
∀ e 1 ∈ S. ∀ e 2 ∈ S. 半径 e 1 ≤ 半径 e 2 ⇒ 值 e 1 = 0?
变量是否正确量化?
谢谢
如果我想在一阶逻辑中表示“集合中具有最小半径的元素的值为 0”,那么以下是否正确?
∀ e 1 ∈ S. ∀ e 2 ∈ S. 半径 e 1 ≤ 半径 e 2 ⇒ 值 e 1 = 0?
变量是否正确量化?
谢谢
我想你想要一个存在
\ 存在 e_1 。(\forall e_2 radius(e_1) <= radius(e_2)) 和 (radius(e_1) = 0)
我不确定公式中的优先级,但现在我想我理解了这个问题,也许你想要(其中M是最小条件radius(e_1) < radius(e_2)
)
\forall e_1 。((\forall e_2 . M ) -> 值 e_1 = 0)
我认为您之前的公式可能是错误的,原因如下。假设您有半径为 { 0, 1, 2 } 且值等于半径的元素。然后,您将遇到 1 <= 2,但值不为零的情况。如果我正确解释了您的原始公式,
\forall e_1 。\forall e_2 。P(e_1, e_2)
那么这个反例提供了一个 P 为假的情况,因此整个公式都失败了(但这个例子应该是真的)。
只是为了用括号澄清,你写的通常是指:
\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
的半径必须小于或等于每个(而不是任何)其他半径,这似乎是您想要的。
如果没有半径最小的元素,您所写的也是正确的。如果这是需要的,那么您是正确的;如果没有,您需要为此添加一个子句:
(\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)