AIL C3 命题逻辑

由于LaTeX\LaTeX 的符号限制,本章笔记中使用 ≡\equiv 代替 ∣ ⁣= ⁣∣|\!=\!| ,以避免输入符号过程过于冗杂。

请注意不要将本章笔记中的 ≡\equiv 与一阶逻辑中的 ≡\equiv 混淆。

命题和联结词

  • 命题:有真假值的句子/ 陈述句。

    反问句被接受为命题,因为它可以被转化为陈述句。

  • (真值)联结词:作用于命题之间,描述命题间关系从而得到新命题。可分为一元联结词和二元联结词。

  • 简单命题:不包含联结词的命题。

  • 复合命题:包含连结词的命题。

    自然联结词包括: 如果……那么……,……而……,没有……等。由于一元联结词的存在,复合命题可以仅包含一个简单命题。

  • 命题的真值: 命题的真假。1表示命题为真,0表示命题为假。

联结词

否定

AA 并非AA
1 1
0 0

合取

AA BB AA 并且 BB
1 1 1
0 1 0
1 0 0
0 0 0

合取支:由合取词联结的两个命题。

析取

AA BB AA 或者 BB
1 1 1
0 1 1
1 0 1
0 0 0

析取支:由析取支联结的两个命题。

  • 相容选言:两个析取支可以同时为真。
  • 不相容选言:两个析取支不可同时为真,含义上等价为 AA 或者 BB 并且 并非 AA 并且并非BB,再自然语言中往往表达为"要么……要么……"。

蕴涵

AA BB 如果 AA 那么 BB / 只有 BB 那么 AA
1 1 1
1 0 0
0 1 1
0 0 1

蕴涵词表示一个充分条件假言命题中的“如果……那么……”。

  • 前件:蕴涵词联结的条件。
  • 后件:蕴涵词联结的结论。

由真值表可知,只有当前件为真并且后件为假时该假言命题为真。这种性质的蕴涵也称为实质蕴涵。实质蕴涵 撇开了前后件间在具体内容上的一切联系,而仅仅注意前后件的真假与整个命题的真假间的关系,即纯粹的逻辑上的真假关系。

  • 在这种情况下,将p→qp \rightarrow q 读作 “pp实质蕴涵qq” 可能比读作 “如果p那么q” 更加合适。

  • 蕴含怪论 / 蕴涵悖论:一个假命题可以蕴涵任何命题,一个真命题可以被任意命题蕴涵,与人们的直观不相符合。当人们把蕴涵符号解读为“如果……,那么……”时,难以从直观上认同它们的逻辑真理性。

    严格蕴涵: 和实质蕴涵是两种不同的蕴涵关系。A≺BA\prec B 被定义为¬⋄(A∧¬B)\lnot\diamond(A\wedge\lnot B),即“A真且B假”是不可能的”;也可以被等价地定义为□(A→B)\Box(A\rightarrow B),即“A实质蕴涵B”是必然的。

等值

A B AA 当且仅当 BB
1 1 1
1 0 0
0 1 0
0 0 1

只有当前件和后件的真值相同时该命题为真。

联结词、命题和公式

联结词 命题 公式
否定 负命题 否定式
合取 联言命题 合取式
析取 选言命题 析取式
蕴涵 充分条件假言命题 蕴涵式
等值 充分必要条件假言命题/等值命题 等值式

命题语言

命题语言 Lp\mathcal{L}^{p} 包括:

  • 表示原子命题的命题符号:p,q,rp,q,r。特别地,⊥\bot 表示永假命题,⊤\top表示永真命题。
  • 表示联结词的联结符号:¬,∧,∨,→,↔\lnot ,\wedge ,\vee, \rightarrow, \leftrightarrow
  • 标点符号:左右括号(,)(,)。

表达式与公式

表达式: 有限的符号串。则命题公式/ 公式可被形式化定义如下:

  1. 命题符号是公式,称为原子公式。
  2. 若ϕ,ψ\phi,\psi 是公式,则(\neg\phi), (\phi \and \psi),(\phi \or \psi),(\phi \rightarrow \psi),(\phi \leftrightarrow \psi)是公式。
  3. 有限次使用(1)(2)得到的是公式。

使用BNF表达式,

\phi ::= p|(\neg\phi)|(\phi \and \phi)|(\phi \or \phi)|(\phi \rightarrow \phi)|(\phi \leftrightarrow \phi)

其中pp表示任意原子公式,ϕ\phi表示任意已经构建的公式。

Bacus Normal Form,BNF

类似一种数学游戏:从一个符号起始标志开始,给出替换前面符号的规则。BNF语法定义的书写规范 / 生产式规则形式如下:

symbol:=alternative1∣alternative2⋯symbol := alternative_1 | alternative_2 \cdots

每条规则申明:=/::=:= / ::=左侧的符号必须被右侧的某一个可选项代替。替换项用 ∣| 分割。替换项通常有两个符号和终结符构成。终结符没有书写规范,是书写过程的终止。

符号通常被叫做非终止符,也有人叫非终端。

依照定义对命题按照联结词进行分类,则任意命题公式有且只有以下形式:

  • 原子公式:形如pp
  • 否定式:形如(¬p)( \lnot p)
  • 合取式:形如(p∧q)( p \wedge q)
  • 析取式:形如(p∨q)( p \vee q)
  • 蕴涵式:形如(p→q)( p \rightarrow q)
  • 等值式:形如(p↔q)( p \leftrightarrow q)

括号的省略

  1. 公式最外层的括号可以省略。
  2. 不违反联结词结合力强弱(联结词优先级)的括号可以省略。

语义

公式本身没有真假。

真假赋值

真假赋值: 以所有命题符号为定义域,真假值{0,1}\{0,1\}为值域的函数。用v(p)v(p)或者pvp^{v}表示真假赋值vv给公式pp指派的值。

给定原子公式的真假赋值,其他公式的真值由联结符号的含义确定:

  1. pv∈{0,1}p^v \in \{0,1\}
  2. (¬p)v={1, pv=00, pv=1( \lnot p)^v = \begin{cases}1,\ p^v = 0\\0,\ p^v = 1\end{cases}
  3. (p∧q)v={1, pv=qv=10, otherwise( p\wedge q)^v = \begin{cases}1,\ p^v = q^v = 1\\0,\ otherwise\end{cases}
  4. (p∨q)v={0, pv=qv=01, otherwise( p\vee q)^v = \begin{cases}0,\ p^v = q^v = 0\\1,\ otherwise\end{cases}
  5. (p→q)v={1, pv=0 or qv=10, otherwise( p\rightarrow q)^v = \begin{cases}1,\ p^v = 0\ or\ q^v = 1\\0,\ otherwise\end{cases}
  6. (p↔q)v={1, pv=qv0, otherwise( p\leftrightarrow q)^v = \begin{cases}1,\ p^v = q^v\\0,\ otherwise\end{cases}
  7. ⊤v=1\top^v = 1
  8. ⊥v=0\bot^v = 0

给定一组集合Φ\Phi,则Φv=1\Phi^v = 1表示∀ϕ∈Φ,ϕv=1\forall \phi \in \Phi,\phi^v = 1。

公式的分类

对于一个含有nn个原子公式的复合公式有 2n2^n种真假赋值,根据这些真假赋值的公式真值结果可将命题分为三类:

  • 重言式:公式在任何真假赋值下均为真。
  • 矛盾式:公式在任何真假赋值下均为假。
  • 可满足式:存在一个在真假赋值,公式在该真假赋值下为真且存在一个在真假赋值,公式在该真假赋值下为假。

使用真值表明晰地说明各真假赋值情况下的真值并做出判断。

可满足性

由此定义公式的可满足性。给定命题公式ϕ\phi,ϕ\phi 是可满足的如果

∃v,ϕv=1\exist v,\phi^v = 1

逻辑推论

给定一组命题公式集合Φ\Phi 和一个命题公式ϕ\phi,ϕ\phi 是Φ\Phi 的逻辑推论 当且仅当

∀v,Φv=1→ϕv=1\forall v, \Phi^v = 1 \rightarrow \phi^v = 1

记作Φ⊨ϕ\Phi \models \phi。

  • 当 Φv=0\Phi^v = 0 时,ϕv\phi^v的真假值不做要求,即可以为真,也可以为假。即我们不关注Φv=0\Phi^v = 0时的真假。
  • 逻辑推论Φ⊨ϕ\Phi \models \phi是否成立只与Φ\Phi 中公式和ϕ\phi 的形式有关,而和其中表示命题的具体内容 / 真假赋值无关。

特别地,⊨ϕ\models \phi 当且仅当

∀v,ϕv=1\forall v, \phi^v = 1

由此定义命题ϕ\phi的有效性。

有效性

给定命题公式ϕ\phi,ϕ\phi 是有效的如果

⊨ϕ\models \phi

Lemma 1

假定Φ\Phi 是有穷集合,{ϕ1,ϕ2,⋯ ,ϕn}⊨ϕ\{\phi_1,\phi_2,\cdots,\phi_n\}\models\phi 当且仅当

⊨ϕ1∧ϕ2∧⋯∧ϕn→ϕ\models \phi_1\wedge\phi_2\wedge\cdots\wedge\phi_n\rightarrow\phi

PROOF

{ϕ1,ϕ2,⋯ ,ϕn}⊨ϕ⇔∀v,(ϕ1v=1)∧(ϕ2v=1)⋯∧(ϕnv=1)→ϕv=1⇔∀v,(ϕ1∧ϕ2∧⋯∧ϕn)v=1→ϕv=1⇔∀v,(ϕ1∧ϕ2∧⋯∧ϕn→ϕ)v=1⇔⊨ϕ1∧ϕ2∧⋯∧ϕn→ϕ\begin{align} &\{\phi_1,\phi_2,\cdots,\phi_n\}\models \phi\\ &\Leftrightarrow\forall v,(\phi_1^v = 1) \wedge (\phi_2^v = 1)\cdots\wedge (\phi_n^v = 1) \rightarrow \phi^v = 1\\ &\Leftrightarrow\forall v,(\phi_1\wedge\phi_2\wedge\cdots\wedge\phi_n)^v = 1 \rightarrow \phi^v=1\\ &\Leftrightarrow\forall v,(\phi_1\wedge\phi_2\wedge\cdots\wedge\phi_n \rightarrow \phi)^v=1\\ &\Leftrightarrow \models \phi_1\wedge\phi_2\wedge\cdots\wedge\phi_n\rightarrow\phi \end{align}

Lemma 2

给定命题公式ϕ\phi,

  • ϕ\phi是可满足的 当且仅当 ¬ϕ\lnot \phi不是有效的;
  • ϕ\phi 是有效 的 当且仅当 ¬ϕ\lnot \phi 不是可满足的。

即可以通过检验一个公式的可满足性来判断这个公式的有效性。

PROOF

∃v,ϕv=1⇔¬(∀v,(¬ϕ)v=1)⇔¬(⊨¬ϕ)\begin{align} &\exist v, \phi^v = 1\\ &\Leftrightarrow\lnot(\forall v, (\lnot\phi)^v = 1)\\ &\Leftrightarrow\lnot(\models \lnot\phi) \end{align}

⊨ϕ⇔∀v,ϕv=1⇔¬¬(∀v,ϕv=1)⇔¬(∃v,(¬ϕ)v=1)\begin{align} &\models \phi\\ &\Leftrightarrow\forall v, \phi^v = 1\\ &\Leftrightarrow\lnot\lnot(\forall v, \phi^v = 1)\\ &\Leftrightarrow\lnot(\exist v, (\lnot\phi)^v = 1) \end{align}

Lemma 3

给定一组命题公式集合Φ\Phi 和一个命题公式ϕ\phi,Φ⊨ϕ\Phi \models \phi ,当且仅当

Φ∪{¬ϕ}⊨⊥\Phi \cup \{\lnot \phi\} \models \bot

即Φ∪{¬ϕ}\Phi \cup \{\lnot \phi\}是不可满足的。

PROOF 1

Φ={ϕ1,ϕ2,⋯ ,ϕn}⊨ϕ⇔⊨ϕ1∧ϕ2∧⋯∧ϕn→ϕ⇔⊨¬(ϕ1∧ϕ2∧⋯∧ϕn)∨ϕ⇔∀v,(¬(ϕ1∧ϕ2∧⋯∧ϕn)∨ϕ)v=1⇔¬(∃v,((ϕ1∧ϕ2∧⋯∧ϕn)∧¬ϕ)v=1)⇔∀v,(ϕ1∧ϕ2∧⋯∧ϕn)∧¬ϕ)v=0⇔⊨ϕ1∧ϕ2∧⋯∧ϕn)∧¬ϕ=0⇔⊨ϕ1∧ϕ2∧⋯∧ϕn)∧¬ϕ→⊥⇔Φ∪{¬ϕ}⊨⊥\begin{align} &\Phi = \{\phi_1,\phi_2,\cdots,\phi_n\} \models \phi\\ &\Leftrightarrow \models \phi_1\wedge\phi_2\wedge\cdots\wedge\phi_n\rightarrow\phi\\ &\Leftrightarrow \models \lnot(\phi_1\wedge\phi_2\wedge\cdots\wedge\phi_n)\vee\phi\\ &\Leftrightarrow \forall v,(\lnot(\phi_1\wedge\phi_2\wedge\cdots\wedge\phi_n)\vee\phi)^v = 1\\ &\Leftrightarrow \lnot(\exist v, ((\phi_1\wedge\phi_2\wedge\cdots\wedge\phi_n)\wedge\lnot\phi)^v = 1)\\ &\Leftrightarrow \forall v, (\phi_1\wedge\phi_2\wedge\cdots\wedge\phi_n)\wedge\lnot\phi)^v = 0\\ &\Leftrightarrow \models \phi_1\wedge\phi_2\wedge\cdots\wedge\phi_n)\wedge\lnot\phi = 0\\ &\Leftrightarrow \models \phi_1\wedge\phi_2\wedge\cdots\wedge\phi_n)\wedge\lnot\phi \rightarrow \bot\\ &\Leftrightarrow \Phi \cup\{\lnot\phi\}\models \bot \end{align}

PROOF 2

  • 先证Φ⊨ϕ⇒Φ∪{¬ϕ}⊨⊥\Phi \models \phi \Rightarrow \Phi \cup \{\lnot \phi\} \models \bot:

    由Φ⊨ϕ\Phi\models \phi,即有∀v:Φv=1,ϕv=1\forall v: \Phi^v = 1,\phi^v = 1。假设此时¬ϕv=1\lnot \phi^v = 1,则ϕv=0\phi^v = 0,和前述矛盾。故不存在一种赋值使得{Φ∪{¬ϕ}}v=1\left\{\Phi\cup \left\{\lnot \phi \right\}\right\}^v = 1。

  • 再证Φ∪{¬ϕ}⊨⊥⇒Φ⊨ϕ\Phi \cup \{\lnot \phi\} \models \bot\Rightarrow \Phi \models \phi:

    由Φ∪{¬ϕ}⊨⊥\Phi \cup \{\lnot \phi\} \models \bot,即有∀v,{Φ∪{¬ϕ}}v=0\forall v, \left\{\Phi\cup \left\{\lnot \phi \right\}\right\}^v = 0,即有∀v,∃ψ:(ψ∈Φ)∨(ψ=¬ϕ),ψv=0\forall v,\exist \psi:(\psi \in \Phi)\vee(\psi = \lnot\phi),\psi^v = 0。

    • 若ψ∈Φ\psi \in \Phi,则∀v,Φv=0\forall v,\Phi^v = 0,则有Φ⊨ϕ\Phi\models \phi;
    • 若ψ=¬ϕ\psi = \lnot \phi,则∀v,ϕv=1\forall v,\phi^v = 1,则有Φ⊨ϕ\Phi \models \phi。

语义等价

给定命题公式ϕ,ψ\phi,\psi,ϕ,ψ\phi,\psi语义等价 当且仅当

ϕ⊨ψ∧ψ⊨ϕ\phi \models \psi \wedge \psi \models \phi

记作ϕ∣ ⁣ ⁣ ⁣= ⁣ ⁣ ⁣∣ψ\phi |\!\!\!=\!\!\!| \psi 。

由于LaTeX\LaTeX 的符号限制,本章笔记中使用 ≡\equiv 代替 ∣ ⁣= ⁣∣|\!=\!| ,以避免输入符号过程过于冗杂。

一些常见的语义等价关系包括:

  • ¬¬ϕ≡ϕ\lnot\lnot\phi \equiv \phi
  • ϕ↔ψ≡(ψ→ϕ)∧(ϕ→ψ)\phi \leftrightarrow \psi \equiv (\psi \rightarrow \phi) \wedge (\phi \rightarrow \psi)
  • ϕ→ψ≡¬ϕ∨ψ\phi \rightarrow \psi \equiv \lnot \phi \vee \psi
  • ¬(ψ∧ϕ)≡¬ϕ∧¬ψ\lnot(\psi \wedge \phi) \equiv \lnot\phi \wedge \lnot \psi
  • ¬(ψ∨ϕ)≡¬ϕ∨¬ψ\lnot(\psi \vee \phi) \equiv \lnot\phi \vee \lnot \psi
  • (ψ∧ϕ)∨ρ≡(ψ∨ρ)∧(ϕ∨ρ)(\psi \wedge \phi)\vee\rho \equiv (\psi \vee \rho)\wedge(\phi\vee\rho)
  • (ψ∨ϕ)∧ρ≡(ψ∧ρ)∨(ϕ∧ρ)(\psi \vee \phi)\wedge\rho \equiv (\psi \wedge \rho)\vee(\phi\wedge\rho)

Lemma 4 等值替换

给定 ϕ≡ψ\phi \equiv \psi,且 ϕ\phi 是 ρ\rho 的一部分。则

ρ≡ρ′\rho \equiv \rho'

若将ρ\rho中的ϕ\phi 替换为 ψ\psi 得到 ρ′\rho'。

等价关系

集合XX上的二元关系R⊆X×XR\subseteq X\times X 是等价关系,当且仅当 RR满足

  • 自反性:(a,a)∈R(a,a) \in R;
  • 对称性:(a,b)∈R⇔(b,a)∈R(a,b) \in R \Leftrightarrow (b,a) \in R;
  • 传递性:(a,b)∈R, if ∃c∈X,(a,c)∈R∧(c,b)∈R(a,b) \in R,\ if\ \exist c \in X,(a,c) \in R \wedge (c,b) \in R,

∀a,b∈X\forall a,b \in X。

关于RR下 aa 的等价类,记作 [a]={x∈X∣(x,a)∈R}[a] = \{x \in X | (x, a) \in R\}。

易知语义等价关系满足自反性、对称性和传递性,是一种等价关系。

范式 Normal Form

每个命题公式都有唯一的*形式*,但通过语义等价关系可以被变换为其他形式,变换形式后的公式与原公式属于同一等价类。-

合取范式

称ϕ\phi 为 ψ\psi 的合取范式,如果 ϕ≡ψ\phi \equiv \psi,且

ϕ=D1∧D2∧⋯∧Dn\phi = D_1 \wedge D_2 \wedge \cdots \wedge D_n

其中

  • DiD_i 是 ϕ\phi 的子句,形如 L1∨L2∨⋯∨LnL_1 \vee L_2 \vee \cdots \vee L_n。
  • LiL_i 是 子句的文字 literal,为原子公式或原子公式的否定。

析取范式

称ϕ\phi 为 ψ\psi 的析取范式,如果 ϕ≡ψ\phi \equiv \psi,且

ϕ=D1∨D2∨⋯∨Dn\phi = D_1 \vee D_2 \vee \cdots \vee D_n

其中

  • DiD_i 是 ϕ\phi 的子句,形如 L1∧L2∧⋯∧LnL_1 \wedge L_2 \wedge \cdots \wedge L_n。
  • LiL_i 是 子句的文字 literal,为原子公式或原子公式的否定。

子句不可以有否定。故¬¬q\lnot\lnot q 既不是合取范式,也不是析取范式;q∨pq\vee p既是合取范式,又是析取范式。

  • 任何命题公式与它的合取/析取范式等价。

形式推演

为了建立一个过程来判读一个有效推理是否成立,我们需要建立一个基于规则的推理系统,称该规则为推理规则。

推理规则:在推理系统内,从一组前提出发,被不断应用可以得到结论的规则。

实现形式推演系统需要考虑规则的选择和应用问题,这与所涉及公式的形式有关。规则越多,公式形式越多样,形式推演各步骤进行规则选择的难度就越大。因此为了提高系统的可实现性,可以

  • 减少公式的形式。
  • 减少规则的数量。

MP规则:蕴含消去

ϕ,ϕ→ψ⊨ψ\phi,\phi \rightarrow \psi \models \psi

形式可推演

给定一组前提集合Φ={ϕ1,ϕ2,⋯ ,ϕn}\Phi = \{\phi_1,\phi_2,\cdots,\phi_n\} 和一个结论ψ\psi,其中 ϕi\phi_i和ψ\psi都是公式。从前提Φ\Phi到这个结论ψ\psi是形式可推演的,如果存在一个证明

1 ψ12 ψ2 ⋯m ψm\begin{align} &1\ \quad &\psi_1\\ &2\ \quad &\psi_2\\ &\ &\cdots\\ &m\ \quad &\psi_m \end{align}

使得 ψm=ψ\psi_m = ψ。其中,ψi(i=1,2,3,⋯ ,m)\psi_i (i = 1, 2, 3,\cdots,m) 要么属于 Φ\Phi,要么依据{ψ1,⋯ ,ψi−1}\{\psi_1, \cdots , \psi_{i−1}\} 中的公式通过应用一条推理规则得到。

记为Φ⊢ψ\Phi \vdash \psi。

推理系统的性质

设 ⊢R\vdash_R 是由一组形式推演规则集合RR构成的推理系统,称为自然演绎系统。对于任意公式集合 Φ\Phi和公式 ψ\psi,

  • 推理系统 ⊢R\vdash_R是可靠的,当且仅当 如果Φ⊢Rψ\Phi \vdash_R \psi,则Φ⊨ψ\Phi \models \psi。
  • 推理系统 ⊢R\vdash_R是完备的,当且仅当 如果Φ⊨ψ\Phi \models \psi,则Φ⊢Rψ\Phi \vdash_R \psi。

因此,如果一个推理系统是可靠的,那么从一组真命题出发,通过形式推演得到的结论也是真的,确保了推理系统的正确性;如果一个推理系统是完备的,那么从一组真命题出发,可以推出这组真命题所蕴涵的所有结论,确保了推理系统的推理能力。

Exp: 消解原理

消解推演系统

在进行形式推演前,把相关公式转化为合取范式。

子句公式

  • 在一个子句中,命题符号的重复出现和文字的顺序不影响子句真值。
  • 在一个合取范式中,子句的重复出现和子句的顺序不影响范式真值。

因此,可以把一个子句看成是一个文字集合,理解为文字的析取;一个合取范式看成子句集合,理解为子句的合取,即为子句公式。 记

  • 文字集合/子句:[L1,L2,⋯ ,Ln][L_1, L_2,\cdots , L_n],等价于L1∨L2∨⋯∨LnL_1\vee L_2\vee\cdots \vee L_n,其中LiL_i是文字;
  • 子句集合/公式:{D1,D2,⋯ ,Dm}\{D_1,D_2,\cdots , D_m\},等价于D1∧D2∧⋯∧Dm}D_1 \wedge D_2 \wedge \cdots \wedge D_m\},其中DiD_i是子句。

特别指出,[ ][\ ]表示空子句,理解为⊥\bot ;{ }\{\ \}表示空公式,理解为 ⊤\top。且 1={ }≠{[ ]}=01 = \{\ \} \neq \{[\ ]\} = 0。

消解规则

以子句公式为前提,给定两个子句D1,D2D_1,D_2 ,则可从D1∪{L}D_1\cup \{L\} 和D1∪{L‾}D_1\cup \{\overline{L}\} 推出子句D1∪D2D_1 \cup D_2。其中,D1,D2D_1,D_2 可为空集[ ][\ ]。即

D1∪{L},D1∪{L‾}⊢RD1∪D2D_1\cup \{L\},D_1\cup \{\overline{L}\} \vdash_R D_1 \cup D_2

称D1∪D2D_1\cup D_2 为D1,D2D_1,D_2关于LL的消解式。

L‾\overline{L}​ 是 LL​的补 : 对于任意原子公式pp,

∀p,p‾=¬p,¬p‾=p\forall p, \overline{p} = \lnot p,\overline{\lnot p} = p

系统性质

\sqrt{}可靠性
Lemma 5

D1∪{L},D1∪{L‾}⊨D1∪D2D_1\cup \{L\},D_1\cup \{\overline{L}\} \models D_1 \cup D_2

PROOF

∀v:(D1∪{L})v=1,(D2∪{L‾})v=1\forall v: (D_1\cup \{L\})^v = 1,(D_2\cup \{\overline{L}\})^v = 1

假设 (D1∪D2)v=0(D_1 \cup D_2)^v = 0。则

D1v=0,D2v=0D_1^v = 0,D_2^v = 0

则

Lv=1,L‾v=1L^v = 1,\overline{L}^v = 1

即有(L∨L‾)v=1(L \vee \overline{L})^v = 1 ,与(L∨L‾)v=⊥v=0(L \vee \overline{L})^v = \bot^v = 0 矛盾。故原式成立。

下证明消解系统的可靠性:

若Φ⊢Res=D, 则Φ⊨D若 \Phi \vdash_{Res} = D,\ 则 \Phi \models D

PROOF

  1. 基始步骤:∀Di∈Φ\forall D_i \in \Phi,显然有Φ⊨Di\Phi \models D_i。
  2. 归纳步骤:如果 Φ⊨Di\Phi \models D_i 且 Φ⊨Dj\Phi \models D_j,DkD_k 是 DiD_i 和 DjD_j 的消解式,其中i,j,k∈{1,2,⋯ ,n}i, j, k \in \{1, 2, \cdots , n\} 由lemma 5,Φ⊨Dk\Phi \models D_k。
×\times完备性

PROOF Counter Example

设Φ={[¬p]},D=[¬p,p]\Phi = \{[\lnot p]\},D = [\lnot p,p]。显然Φ⊨D\Phi \models D,但无法构造一个从Φ\Phi出发的消解推演D1,D2,⋯ ,DnD_1,D_2,\cdots, D_n 使得Dn=DD_n = D。

Summary

  • 消解推理系统是可靠的,但不是完备的。
  • 当D=[ ]D = [\ ],消解推演既是可靠的,又是完备的。即消解系统是否证完备的。
Lemma 6 否证完备

从一组有穷的前提集Φ\Phi出发,如果不存在 ⊥\bot 的 证明,那么Φ\Phi是可满足的。

PROOF

上述定理等价为如果一个消解证明没有新子句可以获得,但⊥\bot还没被推出,此时整个公式集合(包括前提)都是可满足的。为表方便定义消解闭包:给定子句集合SS,则R(S)R(S)是SS的消解闭包,若R(S)R(S)满足:

  1. 如果c∈Sc\in S,则c∈R(S)c \in R(S);
  2. 如果c1,c2∈R(S)c_1, c_2 \in R(S), 且 cc 是 c1c_1 和c2c_2的消解,则c∈R(S)c\in R(S)。

则上述定义等价为:若 ⊥∉R(Φ)\bot \notin R(\Phi),则Φ\Phi是可满足的。

现对R(Φ)R(\Phi)中出现的命题符号数量 nn做归纳证明。

  1. 基始步骤: n=0n = 0, 即没有任何公式符号。据定义{}\{\quad \} 是可满足的。

  2. 归纳步骤:假设对于n=1,2,⋯ ,kn = 1,2,\cdots,k,上述断言均成立。则n=k+1n = k + 1时,假设子句集合Φ\Phi 满足 ⊥∉R(Φ)\bot \notin R(\Phi),选择任一命题符号记为pp,将R(Φ)R(\Phi)划分为不相交的三个子集Sp,S¬p,S0S_p,S_{\lnot p},S_0:

    • SpS_p : Φ\Phi中包含 pp 的所有子句的集合。
    • S¬pS_{\lnot p} : Φ\Phi中包含 ¬p\lnot p 的所有子句的集合。
    • S0S_0 : Φ\Phi中既不包含 pp ,又不包含 ¬p\lnot p 的所有子句的集合。易知S0S_0 包含至多kk 个命题符号且 ⊥∉S0\bot \notin S_0,根据假设有 S0S_0 是可满足的: ∃v,S0v=1\exist v,S_0^v = 1。

    对pp在vv下的赋值做分类讨论:

    • ∀D=p∨D′∈Sp, v(D′)=1\forall D = p \vee D' \in S_p,\ v(D') = 1: 此时Spv=1S_p^v = 1,即SpS_p是可满足的。令pv=0p^v = 0,则∀D=¬p∨D′∈S¬p, v(D)=1\forall D = \lnot p \vee D' \in S_{\lnot p},\ v(D) = 1,即S¬pS_{\lnot p}是可满足的。即R(Φ)R(\Phi)是可满足的。
    • ∃D0=p∨D′∈Sp, v(D′)=0\exist D_0 = p \vee D' \in S_p,\ v(D') = 0:令pv=1p^v = 1,则∀D=p∨D′∈Sp, v(D)=1\forall D = p \vee D' \in S_{p},\ v(D) = 1,即SpS_p是可满足的。对于S¬pS_{\lnot p},若为空集,则R(Φ)R(\Phi)已为可满足的;若非空集,则∀D=¬p∨D′’∈S¬p\forall D = \lnot p \vee D'’ \in S_{\lnot p},使其与p∨D′p\vee D' 消解,得到 D′∨D′′D' \vee D'',且D′∨D′′D' \vee D''不含p,¬pp,\lnot p,故必定在S0S_0中。由S0S_0是可满足的,故(D′∨D′′)v=1(D'\vee D'')^v = 1。即R(Φ)R(\Phi)是可满足的。

    也即:n=k+1n = k + 1,上述断言成立。

综上,若 ⊥∉R(Φ)\bot \notin R(\Phi),则Φ\Phi是可满足的。

Lemma 7 消解算法的复杂性 ,

∃c>1:∀n,∃p:∀v,pv=0,最小消解否证包含cn步骤。\exist c > 1:\forall n,\exist p: \forall v,p^v = 0,最小消解否证包含 c^n步骤。

其中 nn为pp包含的命题符号数量。

霍恩Horn子句逻辑

前述消解系统是难解的。一个系统的计算复杂性与表达能力有关,故可通过降低系统的表达能力降低计算复杂性。对于消解系统来说,霍恩公式是一种降低计算复杂性的方法。

霍恩子句

定义

霍恩子句是形如L1∨⋯∨LnL_1 \vee \cdots \vee L_n的子句,其中子句至多包含一个正文字。

  • 肯定/确定霍恩子句:子句刚好包含一个肯定文字时。
  • 否定霍恩子句:子句不包含肯定文字时。

可将一般的子句转化为蕴含公式:

p1∨p2∨⋯∨pm∨¬q1∨¬q2∨⋯∨¬qn≡(q1∧q2∧⋯qn)→(p1∨p2∨⋯¬pm)p_1\vee p_2\vee\cdots\vee p_m\vee\lnot q_1 \vee \lnot q_2\vee\cdots\vee\lnot q_n \equiv (q_1\wedge q_2\wedge\cdots q_n) \rightarrow (p_1\vee p_2\vee\cdots\lnot p_m)

约定蕴涵前件的文字之间恒为合取,蕴涵后件的文字之间恒为析取,并按照逻辑编程的惯例,上式也常写作

p1,p2,⋯ ,pm←q1,q2,⋯ ,qnp_1,p_2,\cdots,p_m \leftarrow q_1,q_2,\cdots,q_n

其中m,n∈Nm,n \in \mathbb{N}。称上式为一个规则,p1,p2,⋯ ,pmp_1,p_2,\cdots,p_m 为头,q1,q2,⋯ ,qnq_1,q_2,\cdots,q_n 称为身体。

RECALL可废止规则的每条规则包括:

  • 规则头 - 论证结论
  • 规则身体 - 论证前提
  • 规则符号 - 推理关系

形式

则霍恩子句限制m=0,1m = {0,1},以得到确定的结果。故霍恩子句共有四种形式:

  • p←q1,⋯ ,qmp \leftarrow q_1,\cdots,q_m
  • p←p \leftarrow
  • ←q1,⋯ ,qm\leftarrow q_1,\cdots,q_m
  • □\Box (空子句)

在本课程中 □,[ ],⊥\Box,[\ ],\bot是等价的,只是在不同的的语境中使用。

类似地,从程序设计的角度出发,

  • 称形如 p←q1,⋯ ,qmp\leftarrow q_1,\cdots, q_m 的霍恩子句为一个过程 :
    • 称 pp 称为过程名;
    • 称 {q1,⋯ ,qm}\{q_1,\cdots, q_m\} 称为过程体
    • 解释 qiq_i 为过程调用。
  • 称形如 p←p \leftarrow的霍恩子句为一个事实 ;
  • 称形如←q1,⋯ ,qm\leftarrow q_1,\cdots,q_m 的霍恩子句为一个目标。目标全部由过程调用组成,常用来表示一个询问。
  • 称 □\Box 为停机语句,表示程序执行(成功)终止。

霍恩子句逻辑

霍恩子句逻辑是由霍恩子句组成的系统。它是命题演算系统的子系统。

霍恩子句逻辑程序是指这样一些被称为过程、目标和事实的霍恩子句的集合。

  • 给定一个霍恩子句逻辑程序,它由目标中的一个过程调用与一事实或与一过程的过程名匹配启动。
  • 当过程调用与一事实匹配,该过程调用成功。
  • 再由目标中另一过程调用重新启动程序,直至目标中全部过程调用成功或者某一 过程调用失败。(不能与事实或过程名匹配)
  • 当过程调用与一过程名匹配,程序需调用该过程的过程体,该过程体中的过程调用与原目标中余下的过程调用合并形成新目标,并重新启动程序,寻求匹配。

SAT solver

SAT Solver 是实现可满足性的推理引擎:给定一个公式,建构一个真假赋值使得这个公式为真。

RECALL消解原理 处理逻辑演绎。给定一个知识库,检查一个命题是否可以被这个知识库所蕴涵。

DPLL算法

给定一个子句集合 Φ\Phi,Φ\Phi 所包含的所有命题符号集合记作 Σ\Sigma。DPLL算法 递归调用一个函数 DPLL(Φ)DPLL(\Phi) :

DPLL(Φ) Returns{1,∃v,Φv=10,otherwise\rm DPLL(\Phi)\ Returns\begin{cases}1, \exist v,\Phi^v = 1\\ 0, otherwise\end{cases}

递归规则

  1. 如果Φ=ϕ\Phi = \phi (空集),返回可满足。
  2. 如果 [ ]∈Φ[\ ] \in \Phi, 返回不可满足。
  3. 单位传播规则:如果 Φ\Phi 包含单位子句CC,则给CC中的命题符号赋值使得 Cv=1C^v = 1并在该赋值下把Φ\Phi简化为Φ′\Phi',调用 DPLL(Φ′)DPLL(\Phi')。
  4. 分裂规则:从Σ\Sigma中选择一个没有被赋值的命题符号 pp并赋值pv=1p^v = 1,并在该赋值下把Φ\Phi简化为 Φ′\Phi',调用 DPLL(Φ′)DPLL(\Phi')。
  • 如果该调用返可满足,则返回可满足。
  • 否则,赋值pv=0p^v = 0,并在该赋值下把Φ\Phi简化为 Φ′′\Phi'',并调用 DPLL(Φ′′)DPLL(\Phi'')。

从计算复杂性的角度看,SAT,DPLL是NP完全的:在最坏的情况下,其计算复杂性为指数时间。

霍恩子句下的DPLL

  1. DPLL 算法在霍恩子句上总能产生霍恩子句。

  2. 在 DPLL 中,若第一次系列应用单位传播规则没有导致结束,那么产生的霍恩子句集合不含单位子句。

  3. 一组既不含单位子句也不含空语句的霍恩子句是可满足的。

    所有子句都至少有一个负文字,给所有未赋值命题符号赋真值 0 即可满足公式。

  4. 依据***3.***可知,每次应用分裂规则时,当前的公式是可满足的 / 错误可以立即被发现。

因此,对于包含 nn 个命题符号的 (二叉) 搜索树,最多只有 nn 个节点应用了分裂规则。即搜索树的大小是 nn 的多项式,故霍恩子句下的DPLL运行时间是多项式的。


AIL C3 命题逻辑
http://example.com/2023/03/31/AIL-3/
Author
Tekhne Chen
Posted on
March 31, 2023
Licensed under