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

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

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

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

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

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

    严格蕴涵: 和实质蕴涵是两种不同的蕴涵关系。ABA\prec B 被定义为¬(A¬B)\lnot\diamond(A\wedge\lnot B),即“A真且B假”是不可能的”;也可以被等价地定义为(AB)\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:=alternative1alternative2symbol := alternative_1 | alternative_2 \cdots

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

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

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

  • 原子公式:形如pp
  • 否定式:形如(¬p)( \lnot p)
  • 合取式:形如(pq)( p \wedge q)
  • 析取式:形如(pq)( p \vee q)
  • 蕴涵式:形如(pq)( p \rightarrow q)
  • 等值式:形如(pq)( 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. (pq)v={1, pv=qv=10, otherwise( p\wedge q)^v = \begin{cases}1,\ p^v = q^v = 1\\0,\ otherwise\end{cases}
  4. (pq)v={0, pv=qv=01, otherwise( p\vee q)^v = \begin{cases}0,\ p^v = q^v = 0\\1,\ otherwise\end{cases}
  5. (pq)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. (pq)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=1v,(ϕ1ϕ2ϕn)v=1ϕv=1v,(ϕ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上的二元关系RX×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 cX,(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,bX\forall a,b \in X

关于RRaa等价类,记作 [a]={xX(x,a)R}[a] = \{x \in X | (x, a) \in R\}

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

范式 Normal Form

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

合取范式

ϕ\phiψ\psi合取范式,如果 ϕψ\phi \equiv \psi,且

ϕ=D1D2Dn\phi = D_1 \wedge D_2 \wedge \cdots \wedge D_n

其中

  • DiD_iϕ\phi 的子句,形如 L1L2LnL_1 \vee L_2 \vee \cdots \vee L_n
  • LiL_i 是 子句的文字 literal,为原子公式原子公式的否定

析取范式

ϕ\phiψ\psi析取范式,如果 ϕψ\phi \equiv \psi,且

ϕ=D1D2Dn\phi = D_1 \vee D_2 \vee \cdots \vee D_n

其中

  • DiD_iϕ\phi 的子句,形如 L1L2LnL_1 \wedge L_2 \wedge \cdots \wedge L_n
  • LiL_i 是 子句的文字 literal,为原子公式原子公式的否定

子句不可以有否定。故¬¬q\lnot\lnot q 既不是合取范式,也不是析取范式;qpq\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,,ψi1}\{\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],等价于L1L2LnL_1\vee L_2\vee\cdots \vee L_n,其中LiL_i文字
  • 子句集合/公式:{D1,D2,,Dm}\{D_1,D_2,\cdots , D_m\},等价于D1D2Dm}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}\} 推出子句D1D2D_1 \cup D_2。其中,D1,D2D_1,D_2 可为空集[ ][\ ]。即

D1{L},D1{L}RD1D2D_1\cup \{L\},D_1\cup \{\overline{L}\} \vdash_R D_1 \cup D_2

D1D2D_1\cup D_2D1,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}D1D2D_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

假设 (D1D2)v=0(D_1 \cup D_2)^v = 0。则

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

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

即有(LL)v=1(L \vee \overline{L})^v = 1 ,与(LL)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_jDkD_kDiD_iDjD_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. 如果cSc\in S,则cR(S)c \in R(S)
  2. 如果c1c2R(S)c_1, c_2 \in R(S), 且 ccc1c_1c2c_2的消解,则cR(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

    ppvv下的赋值做分类讨论:

    • D=pDSp, 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=¬pDS¬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=pDSp, v(D)=0\exist D_0 = p \vee D' \in S_p,\ v(D') = 0:令pv=1p^v = 1,则D=pDSp, v(D)=1\forall D = p \vee D' \in S_{p},\ v(D) = 1,即SpS_p是可满足的。对于S¬pS_{\lnot p},若为空集,则R(Φ)R(\Phi)已为可满足的;若非空集,则D=¬pDS¬p\forall D = \lnot p \vee D'’ \in S_{\lnot p},使其与pDp\vee D' 消解,得到 DDD' \vee D'',且DDD' \vee D''不含p,¬pp,\lnot p,故必定在S0S_0中。由S0S_0是可满足的,故(DD)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步骤。

其中 nnpp包含的命题符号数量。

霍恩Horn子句逻辑

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

霍恩子句

定义

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

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

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

p1p2pm¬q1¬q2¬qn(q1q2qn)(p1p2¬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,,pmq1,q2,,qnp_1,p_2,\cdots,p_m \leftarrow q_1,q_2,\cdots,q_n

其中m,nNm,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},以得到确定的结果。故霍恩子句共有四种形式:

  • pq1,,qmp \leftarrow q_1,\cdots,q_m
  • pp \leftarrow
  • q1,,qm\leftarrow q_1,\cdots,q_m
  • \Box (空子句)

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

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

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

霍恩子句逻辑

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

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

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

SAT solver

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

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

DPLL算法

给定一个子句集合 Φ\PhiΦ\Phi 所包含的所有命题符号集合记作 Σ\SigmaDPLL算法 递归调用一个函数 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,DPLLNP完全的:在最坏的情况下,其计算复杂性为指数时间。

霍恩子句下的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