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

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

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

变量的量化是否正确?

谢谢

【问题讨论】:

    标签: logic first-order-logic


    【解决方案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,其实 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 2019-07-04
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多