为 的句子分配真值的规则应该说,实际上,
当且仅当 对域中的每个对象都为真。 这里有两个问题。 首先, 通常可能具有自由变量。 特别是, 通常将是自由的(否则说“对所有 …” 是无关紧要的)。 但是具有自由变量的公式不是句子,也没有真值。 其次,我们还没有一种精确的方法来说明 对域中的每个对象都为真。 这些问题的解决方案分为两部分
然后我们可以根据满足度来定义模型中的真值。
给定模型 ,一个变量赋值,记为 ,是一个函数,将域 的一个成员分配给 中的每个变量。例如,如果 包含自然数,则 应用于变量 的结果可以是 。
除了变量赋值,我们还有模型的解释函数 将域成员分配给常数符号。我们将这些信息结合起来,为任意项(包括常数符号、变量和由操作符字母作用于其他项形成的复杂项)生成域成员的赋值。这是通过一个扩展变量赋值来完成的,记为 ,其定义如下。回顾一下,解释函数 将语义值分配给 的操作符字母和谓词字母。
扩展变量赋值 是一个函数,它从 中分配值,如下所示。
- 如果 是一个变量,那么
- 如果 是一个常数符号(即 0 阶操作符字母),那么
- 如果 是一个 *n*-元运算符 ( *n* 大于 0) 并且 是 **项**,那么
一些例子可能会有所帮助。假设我们有模型 其中
-
在前一页中,我们注意到我们想要以下结果
我们现在已经实现了这一点,因为我们对定义在上的任何都
-
假设我们也拥有一个变量分配 ,其中
然后我们得到
-
一个模型,连同变量分配,可以满足(或不满足)一个公式。然后我们将使用变量分配的满足概念来定义模型中句子的真值。我们可以使用以下方便的符号来说明解释 满足(或不满足) 使用 .
我们现在定义 *模型在变量赋值下对公式的满足*。在下文中,'iff' 代表'当且仅当'。
-
-
-
-
-
-
-
- .
-
- .
以下继续使用在描述扩展变量分配时使用的示例。它们基于上一页的示例。
假设我们有模型 其中
-
假设我们有一个变量赋值 其中
我们已经看到,以下两种情况都解析为 1
给定模型,上一页 提到了以下进一步的目标
我们还没有准备好评估真假,但我们可以通过观察这些句子是否满足于 来朝着这个方向迈出一步,其中 是一个变量赋值。事实上, 的具体细节不会影响到我们确定哪些句子是满足的。因此, 对于任何变量赋值,都会满足(或不满足)它们。正如我们将在下一页看到的,这是在 中判断真(或假)的标准。
对应于(1),
特别地
分别对应 (2) 到 (6)
如上所述, 的细节与这些评估无关。但是,对于使用自由变量而不是常量符号的类似公式, 的细节就变得重要了。以下是一些基于上述内容的例子:
给定模型 ,前一页还提到了以下其他目标
再次,我们还没有准备好评估真假,但我们可以朝着这个方向迈出一 步,通过观察句子 (7) 在 中被满足,而句子 (8) 未被 和 满足。
对应于 (7)
当且仅当以下至少一个成立时为真
公式 (7) 和 (9) 由 满足当且仅当它由 以及每个修改后的变量赋值满足。反过来,我们得到公式不能由 满足当且仅当它不能由模型和至少一个修改后的变量赋值 (10) 到 (12) 满足。类似地,(10) 为真当且仅当以下至少一个为真
事实上,其中间的一个是正确的。这是因为
因此 (9) 是正确的。
对应于 (8),
当且仅当以下至少一个成立时为真
其中间的一个成立当且仅当以下至少一个成立
实际上,最后一个是正确的。 这是因为
因此 (13) 是正确的。