跳转至内容

计算机科学家逻辑/命题逻辑/语义

来自维基教科书,开放的书籍,开放的世界

定义 3 (命题逻辑的语义)

[编辑 | 编辑源代码]

对于我们命题形式语言的语义,我们不参考特定的意图解释。此外,我们只对真值感兴趣。我们假设对原子公式的真值的初始赋值,并在此基础上,我们定义更复杂公式的真值。真值的集合是集合. 对于原子公式集,赋值是一个函数

. 设是包含的公式集,即,并且恰好是那些可以根据语法定义从构造的公式。那么,上的扩展,,给出如下


  •  :

在下文中,我们将省略索引 来指示赋值 的扩展。请注意,这是将类型为 的公式命名为合取式,将类型为 的公式命名为析取式,将类型为 的公式命名为否定式的正确位置。

以下是通过定义进行的示例评估:假定给定,那么


是一个赋值,而 是一个公式。 被称为 的赋值,如果 的每个子公式都有定义。如果 的赋值,并且 ,我们称 的模型,并写成 如果 的赋值,并且 ,我们写成 .

一个公式 被称为可满足的,当且仅当存在一个模型 ,否则 被称为不可满足的。 被称为有效的(或为重言式)当且仅当对 的每一个赋值都是一个模型。我们写作 或者

定理 1

[edit | edit source]

一个公式 是有效的,当且仅当 是不可满足的。

证明: 是一个重言式

当且仅当对 的每一个赋值都是一个模型

当且仅当对 的每一个赋值(当然,这也是对 的赋值)不是模型

当且仅当 没有模型

当且仅当 是不可满足的。

定义 5 (结论)

[edit | edit source]

如果对于公式 的任何赋值 都成立:如果 的模型,那么 也是 的模型。我们将这种情况记作 .

以下定理是定义的一个简单推论。

定理 2

[edit | edit source]

被称为公式 的推论,

当且仅当 是重言式

当且仅当 是不可满足的。

很明显,一个公式的有效性只取决于其原子子公式的赋值:如果 的赋值,并且它们对每个出现的原子子公式都产生相同的值,那么 成立。因此,我们可以说,为了检验一个公式 的有效性,只需要检验其原子子公式的无限多个赋值。这种检验可以用下表的形式轻松地描述出来,其中 是一个任意的公式,包含 个不同的原子公式

false false false
false false true
true true true




在应用此过程时,引入子公式的中间结果可能会有所帮助,如下面的示例所示。

( ))
false false true true true
false true true true true
true false false false true
true true false true true


请注意,我们只是描述了检查公式有效性的算法。假设公式包含 个原子子公式,那么我们刚刚构建的表格将包含 行。为了估计这种指数级算法的成本,假设计算一行需要 1 微秒。如果 仅包含 100 个原子子公式,则计算表格将需要 微秒。

真值表

[edit | edit source]

命题公式是否可满足的问题称为 SAT,相应的重言式问题称为 TAUT。

SAT 是一个 NP 完全问题,因此目前尚不清楚 SAT 是否是易处理的。TAUT 是否属于 NP 仍然是一个开放问题。对于 TAUT,我们知道,它属于 NP 当且仅当 NP 在补运算下是封闭的。SAT 和 TAUT 都在复杂性理论研究中发挥着重要作用,特别是在关于 的问题方面。

问题

[edit | edit source]

问题 1(命题)

[edit | edit source]

计算以下公式的真值表。确定每个公式是否有效(重言式)、可满足或不可满足。

问题 2(命题逻辑)

[编辑 | 编辑源代码]

“你长寿的秘诀是什么?”有人问一位百岁老人。他回答道:“我严格遵守以下饮食规则:如果我晚餐不喝酒,我就总是吃鱼。每当我晚餐吃鱼和酒,都是不放蒜的。如果我吃蒜或喝酒,我就会避免吃鱼”。

  1. 用命题逻辑的形式化这些规则。
  2. 尝试简化这位百岁老人的建议。

问题 3(命题逻辑)

[编辑 | 编辑源代码]

通过对命题公式的构造进行归纳,递归地定义以下函数

  1. : 中的原子公式集
  2. : 中的二元连接词 的数量

注意:对于

=

并且 成立。

问题 4(命题逻辑)

[编辑 | 编辑源代码]

给定公式 = , 其中 是原子公式()其中 表示异或。证明对于所有的 : 一個合适的赋值 对于 的模型(即 )当且仅当 对奇数个 成立()。

问题 5(命题逻辑)

[编辑 | 编辑源代码]

在下面,我们研究只包含原子 的公式。

  1. 最多有多少个具有不同真值表的公式?
  2. 对于每一个真值表,是否存在一个对应的公式?如果存在,请给出构造方法!

问题 6(命题逻辑)

[编辑 | 编辑源代码]

如果上校在谋杀案发生时不在房间里,那么他就无法知道凶手的武器。管家在撒谎,或者他知道凶手是谁。如果巴恩特里夫人是凶手,那么上校在谋杀案发生时就在房间里,或者管家在撒谎。管家知道凶手是谁,或者上校在谋杀案发生时不在房间里。警察得出结论,巴恩特里夫人是凶手。为论证中的每个语句赋予命题变量。将论证写成一组命题公式,其中包含前提和结论作为命题公式 .

问题 7(命题)

[编辑 | 编辑源代码]

将以下表达式形式化,然后简化相应的公式和口头命题。

  1. 他的母亲不是英国人,而他的父亲也不是法国人,这是不正确的。
  2. 他正在学习物理,但没有学习数学,这是不正确的。
  3. 工资在下降,而价格在上涨,这是不正确的。
  4. 既不冷也不下雨,这是不正确的。

问题 8(命题)

[编辑 | 编辑源代码]

教授建议为大学餐厅的午餐制定一个新的方案。

  1. 如果沒有甜點,每顿午餐都必须有面包。
  2. 如果供应面包和甜點,则不供应汤。
  3. 如果供应汤,则没有面包。

帮助管理层满足教授的愿望。为此,

  1. 将三个命题形式化(作为蕴含式、析取式/合取式),并将它们组合成一个逻辑公式。
  2. 为该逻辑公式提供真值表。该公式是否有模型?
  3. 为该任务提供一个口语化的表达。
华夏公益教科书