一阶逻辑公式

时间:2010-07-27 04:54:07

标签: logic first-order-logic

如果我想在一阶逻辑中表示'具有最小半径的集合中的元素具有值0',那么以下是否正确?

  

1 ∈S∀e 2 ∈S。半径e 1 ≤Radiuse 2 ⇒值e 1 = 0?

变量是否正确量化?

由于

3 个答案:

答案 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)