- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道为什么量词的顺序在逻辑公式中很重要?我在看逻辑程序设计的书时,提到了这样的几点,但没有说为什么。有没有人可以用一些例子来解释?另外,我们如何根据给定的逻辑公式确定量词的顺序?
提前致谢!
最佳答案
建议您阅读一本关于 first-order logic 的书在有关的书之前逻辑编程。
考虑真实的陈述:
1。 每个人都有妈妈
让我们在 FOL 中将其形式化。为了简单起见,我们会说论域是人的集合,即我们的个体变量 x
、y
、z
... 范围超过人。然后1 变为:
1F。 (x)(Ey)母亲(y,x)
我们可以读作:对于每个人 x
存在某人 y
使得 y
是 x
的母亲。
现在让我们交换全称量词 (x)
和存在量词的顺序量词 (Ey)
:
2F。 (Ey)(x)Mother(y,x)
上面写着:有一些人 y
这样对于每个人 x
,y
是 x
的母亲。或者用简单的英语:
2。 有人是每个人的母亲
你看到交换量词改变了语句的含义,把我们从正确的陈述1带到错误的陈述2。事实上,对于荒谬的错误陈述2,这意味着某人是他们自己的母亲。
这就是为什么量词的顺序很重要。
how can we determine order of quantifiers from a given logic formula?
好吧,例如在1F和2F中,所有的变量都已经被量词绑定(bind)了,所以没有什么可以确定的。量词的顺序就是你所看到的,从左到右。
假设其中一个变量是自由的(未绑定(bind)),例如
3F。 (Ey)母亲(y,x)
您可能会这样理解:有一个人是 x
的母亲,对于变量 person x
。
但是这个公式真的没有表达任何声明。它表示人的一元谓词,谓词Someone is the mother of x
。如果释放剩余的变量:
4F。 妈妈(x,y)
那么您就有了二元谓词或关系:x
是y
的母亲。 p>
具有 1,2,...,n 个自由变量的公式表示一元、二元、...,n 元谓词。
给定一个谓词,您可以通过将自由变量与量词绑定(bind)和/或用单个常量替换自由变量来进行陈述。从 4F 您可以:
(x)(y)Mother(x,y) (Everybody is everybody's mother)
(Ex)(y)Mother(x,y) (Somebody is everybody's mother)
(Ex)(Ey)Mother(x,y) (Somebody is somebody's mother)
(x)Mother(x,Arnold) (Everybody is the mother of Arnold)
(x)Mother(Bernice,x) (Bernice is the mother of everybody)
Mother(Arnold,Bernice) (Arnold is the mother of Bernice)
...
...
等等恶心。
这里应该明确的是,如果一个公式有自由变量,因此表示一个谓词,这样的公式并不意味着任何特定的量化方式自由变量,或者它们应该被量化。
关于logic - 为什么量词的顺序很重要?订单是如何确定的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30995108/
Closed. This question is opinion-based。它当前不接受答案。 想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。 上个月关闭。
我正在 VHDL 中实现正交解码器,并提出了两种解决方案。 在方法 1 中,所有逻辑都放在一个对时钟和复位敏感的进程中。 在 Spartan-3A 上,这使用四个切片、七个 FF 和四个输入 LUT。
我现在在我的项目中使用 Logic-Apps。我认为这很好而且很容易!但是,在逻辑编码过程中很难调试。因为我无法在代码的中间点确认变量或状态。通常,开发人员可以在 Visual Studio 上执行程
我试图让一个方法仅在 unicode 字符的 char 值是数字、大写字母或小写字母时才采取操作。 if ((48=57)||(65=90)||(97=122) // only if numeral
所以我得到了我编写的代码示例。我的目标是打印存储在 ptr char 变量中的句子中的数字。所以代码的第一部分完成了这项工作。 #include #include void preg(char *
我有很多 JavaScript 遗留代码,我想重写所有松散的等式以使用严格的等式,即。 == 与 ===。但我常常不知道比较变量存储的是什么值。 在不知道这些值是什么的情况下,有没有办法重写这样的东西
我在尝试附加包 tidyselect 和尝试调用 tidyselect::any_function 时遇到此错误。 错误发生在 Rstudio 或类似的命令行中,在 RStudio 中它会在我输入时立
有什么方法可以在调用子逻辑应用时动态更新工作流: 正常工作流程配置如下: 我想要实现的目标如下,使用属性、变量任何更新运行时的工作流程,我尝试使用如下: 当我尝试按上述方式保存时,结果为错误:保存失败
有什么方法可以在调用子逻辑应用时动态更新工作流: 正常工作流程配置如下: 我想要实现的目标如下,使用属性、变量任何更新运行时的工作流程,我尝试使用如下: 当我尝试按上述方式保存时,结果为错误:保存失败
例如,考虑逻辑“用户只能编辑或删除该用户发表的评论”。 My Controller Actions会重复检查当前登录用户是否可以影响评论的逻辑。示例 [Authorize] public Action
在基于规则的专家系统中,知识库包含大量“if (template) then (action)”形式的规则。推理引擎选择与输入事实相匹配的规则。即那些条件部分与输入数据相匹配的规则被列入候选名单,并选
谁能解释一下这个分离逻辑的例子? 第一行和第二行有什么区别? 最佳答案 第一行说堆只包含一个小堆,因此存储中的引用 x 指向它,并且它包含值 4,4。 在 A 中为假,因为它忘记了 y 指向的小堆(它
我尝试了几天编写 NLTK 语法来将简单的法语句子转换为逻辑公式。我的问题可能与英语句子相似。我的目标是这个语法接受多个订单(家庭自动化)并将它们转换为逻辑公式。一些订单示例: 开灯: exists
我正在大学/学院学习自然演绎,作为我正式规范和验证计算机科学类(class)的一部分。 我觉得这很有趣,但是当我找到实际用途时,我会学得更好。 谁能向我解释除了用于正式验证代码位之外是否以及如何使用自
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
物理量子位和逻辑量子位有什么区别? 我希望有人能帮助我解决这个问题,我无法弄清楚到底有什么区别。 最好的,迪尔玛 最佳答案 逻辑量子位是可以用于编程的,它保存了 |0> 和 |1> 状态的叠加。它可以
我正在尝试学习如何使用 C++ 修改内存位置,并且在使用 MineSweeper 时,我注意到当内存中的时钟值为 1101004800 时,游戏进入了 20 秒。数字 1101529088 对应于游戏
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
首先介绍一些术语(取自here,第14页): 正程序是有错误的程序。 否定程序是没有错误的程序。 因此,程序有四种类型: 积极计划,分析为积极->真正积极(TP)。 积极计划,分析为否定->假否定(F
任何人都可以推荐可用于评估逻辑表达式的软件(最好是mac)或基于网络的工具吗? 例如,我希望能够快速测试两个表达式是否如下: $a = 'foo'; $b = 'bar'; $c = 'foo'; (
我是一名优秀的程序员,十分优秀!