如果我想在一阶逻辑中表示'具有最小半径的集合中的元素具有值0',那么以下是否正确?
1 ∈S∀e 2 ∈S。半径e 1 ≤Radiuse 2 ⇒值e 1 = 0?
变量是否正确量化?
由于
答案 0 :(得分:1)
我想你想要一个存在的
\ exists e_1。 (\ forall e_2 radius(e_1)< = radius(e_2))and(radius(e_1)= 0)
我不确定公式中的优先级,但现在我认为我理解了这个问题,也许你想要(其中 M 是最小条件radius(e_1) < radius(e_2)
)
\ forall e_1。 ((\ forall e_2。 M ) - &gt;值e_1 = 0)
我认为您之前的公式可能是错误的,原因如下。假设您有半径为{0,1,2}的元素,并且值等于半径。然后,您将得到1 <= 2的情况,但该值不为零。如果我正确地解释你原来的公式,
\ forall e_1。 \ forall e_2。 P(e_1,e_2)
然后这个反例提供了一个P为假的情况,因此整个公式都失败了(但这个例子应该是真的)。
答案 1 :(得分: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 :(得分:0)
如果没有半径最小的元素,您所写的内容也是如此。如果需要,你是对的;如果没有,你需要为这个效果添加一个子句:
(\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)