将句子翻译成FOL表达式,对常量和量词感到困惑

时间:2018-02-20 23:06:53

标签: first-order-logic

将以下陈述翻译成FOL的差旅

1) Alex喜欢John

喜欢(亚历克斯,约翰) - 我知道这是正确的

2)每个人都是男人或女人

AxAy(man(x)v woman(y))

编辑:这更好吗?: Az(人(z) - >男(x)v女(y)) OR编辑:这样更好吗?: Ax(Person(x) - > man(x)v woman(x))

3)没有人是男人和女人

Ex((man(x)^¬woman(x))v(¬man(x)^ woman(x)))

4)亚历克斯喜欢喜欢女人的男人

AxEy(喜欢(男(x),女(y)) - >喜欢(alex,man(x)))

由于

Here is a screenshot of the background info

编辑:对于3号,我在网上找到了这个 “p和q的排他性断言断言p是真或q是真的但不是两者。然而,表达排他性分离的自然而又啰嗦的方式是(p | q)&〜(p& ; q)。“

如果这可以适用,那么我假设正确的答案是Ax((man(x)v woman(x))^¬(man(x)& woman(x)))

但现在我对2和3如何不同感到困惑......

1 个答案:

答案 0 :(得分:0)

  

嘿,我只是想知道这些是否正确

1。检验翻译的正确性

测试第一顺序句子是否与非正式规范一致的方法之一是使用模型。

要执行您需要的测试:

  1. 确定您的第一个有序句子中有多少关系并列出它们。此列表将扮演模型的逻辑签名角色。

  2. 现在选择一组足够大的人,将所有有趣的属性组合分配给至少一个人。

  3. 根据您对第一顺序句中关系含义的理解,将属性分配给个人。

  4. 最后,对于每个普遍量化的变量,尝试将不同的个体分配给变量并检查属性是否成立。

  5. 考虑帖子中的一个例子。

    非正式规范 Alex喜欢喜欢女人的男人

    我们有

    • 一个常数符号: Alex
    • 两个一元关系:男人(x)女人(x)
    • 二元关系:喜欢(x,y)

    1.1结构1号

    现在考虑一个我们为Alex设计个人的结构,一个不是Alex的男人的个人,以及一个不是Alex的女人的个人。

    让我们从三开始:p1,p2,p3。

    • Alex是p1
    • 曼(P2)
    • 女人(P3)
    • 女人(P1)
    • 喜欢(p2,p3)
    • 喜欢(p1,p2)

    非正式的规范说,亚历克斯喜欢一个男人,喜欢别人的女人。我们的模型满足此规范。

    现在考虑以下来自OP的声明:

    AxEy(Likes( man(x), woman(y) ) -> Likes(alex, man(x) ))
    

    此声明来自不同的语言。这里 man(x) woman(y)是一元函数而不是一元关系,所以我们不能检查这句话。

    我不会进一步推测 woman(y) man(x)作为一个函数(Pun意图)的主题。相反,我会考虑一个不同的句子。

    AxEy(Man(x) & Woman(y) & Likes( x, y ) -> Likes(alex, x ))
    

    让我们看看如果x = p2和y = p1会发生什么。在我们的模型中的前提

    Man(p2) & Woman(p3) & Likes( p2, p3 )
    

    持有,结论

    Likes(p1,p2)
    

    也成立,因此在此变量赋值下公式为真。

    1.2结构2号

    现在考虑一个不同的模型。这次有四个人:p1,p2,p3,p4。

    • Alex是p1
    • 曼(P2)
    • 曼(P4)
    • 女人(P3)
    • 女人(P1)
    • 喜欢(p2,p3)
    • 喜欢(p1,p2)
    • 喜欢(第4页,第3页)

    这个模型也满足了我们的非正式规范,因为Alex喜欢p2谁是男人,喜欢p3是女人。

    考虑赋值x = p4和y = p3。

    我们的模型中再次提出了这个前提

     Man(p4) & Woman(p3) & Likes( p4, p3 )
    
    然而,结论

     Likes(p1,p4)
    

    在我们的模型中不成立。由于x是普遍量化的,这可能是一个问题,因为公式不在此赋值下,但y在一个存在量词下。让我们看看我们是否可以找到y的作业,该作业会将我们的公式转换为x=p4的真实陈述。

    这确实是可能的。让y=p2

     Man(p4) & Woman(p2) & Likes( p4, p2 )
    

    不成立,因此公式

     Man(p4) & Woman(p2) & Likes( p4, p2 ) -> Likes(p1,p4)
    

    是真的。这听起来更好,但仍然满足我们完成的任务,该任务远非非正式规范的预期含义。最初的规范显然不是说一个喜欢另一个男人的男人。所以我们还没有完成。

    1.3结构3

    考虑只有两个人的模型:p1和p2。

    • Alex是p1
    • 曼(P2)
    • 女人(P1)

    非正式规范不适用于此模型,因此我们的句子也应该是假的。变量有四种可能的分配

    • X = P1,Y = P2
    • X = P1,Y = P1
    • X = P2,Y = P1
    • X = P2,Y = P2

    由于Like(x,y)在我们的模型中总是假的,因此根据暗示规则,前提失败,公式为真。因此,我们的句子在一个不应该持有的模型中也是如此。再一次,我们的一阶形式化不符合非正式规范。

    这似乎是我们用来测试翻译的一个非常复杂的过程。它假定某种技能可以找到反例,并始终牢记非正式规范的预期含义。

    2。如何提出正确的翻译

    让我们回顾一下我们的非正式规范

    非正式规范 Alex喜欢喜欢女人的男人

    并以更容易翻译的方式重新制定

    有一个亚历克斯喜欢的人,这个男人喜欢一些女人

    这句话中有两个部分与

    相关联
    1. Ex(Man(x)& Likes(Alex,x))
    2. Ey(女(y)&Likes(x,y))
    3. 所以我们有

      Ex(Man(x)& Likes(Alex,x)& Ey(Woman(y)&Likes(x,y)))。

      您喜欢prenex普通表单,其中所有量词都收集在一个量词前缀中。我们可以应用逻辑等价来获得

      ExEy(Man(x)& Likes(Alex,x)& Woman(y)&Likes(x,y))。

      现在让我们检查一下这个陈述是否与上一节中每个结构中的规范一致。

      2.1结构1

      由于变量是存在量化的并且规范成立,我们只需找到一个令人满意的公式赋值。

      考虑

      • Alex是p1
      • x = p2
      • y = p3

      根据此分配,结合。

      2.2结构2

      可以使用与前一小节相同的分配。事实上 结构1是结构2的子结构。对于存在量化的陈述,我们知道如果它在子结构中是正确的,那么在整个结构中也是如此。

      2.3结构3

      由于我们的结构中没有(x,y)元素Likes(x,y),所以

       Man(x) & Likes(Alex,x) & Woman(y) & Likes(x,y)
      

      不可能是真的,所以声明是假的。我们也知道结构3不符合我们的非正式规范,因此我们的公式已通过我们的测试。

      我们的测试程序绝不完整。然而,它给了我们一些确保翻译确实正确的保证。