4 一阶逻辑:证明论

4.2 导出规则

  1. Q: R2是全称量词引入,R3是(),R4是(),而存在量词消去(斯科伦化)没有简单的规则。
    A: 全称量词消去(注:R3其实是把公理K4, K5写成规则形式。公理一定能写成规则,反之不然。演绎定理反向一定成立,正向不一定)
    存在量词引入。
  2. Q: 解释记号\(\mathscr A(t,t),\mathscr A(x_i,t)\)的含义。
    A: \(t\)\(\mathscr A(x_i,t)\)中对\(x_i\)自由,\(\mathscr A(t,t)\)是用\(t\)替换\(\mathscr A(x_i,t)\)中自由\(x_i\)的处处出现。
    特别注意\(\mathscr A(x_i,t)\)中可能仍含有\(t\),因此使用R4时并不一定把所有的\(t\)都换成\(x_i\),而是可以只换一部分。
    特别地,可以“不做替换”,直接引入存在量词。
  3. Q: R3, R4两条规则分别在哪里用了Gen,从而什么时候可以用演绎定理正向?
    A: 都没有使用Gen
    所以都可以用演绎定理正向
  4. Q: 连接词相关的(导出)规则为什么都不影响演绎定理使用?
    A: 这些规则的证明过程中都只使用K1-K3和MP(即“子系统”\(L\)中的东西),不使用Gen.
    反正2.和3.都没Gen,那就不会出问题。

等价的谓词演算

  1. Q: \(((\forall y_1)\cdots(\forall y_n)\mathscr{A}\to\mathscr{B})\to((\forall y_1)\cdots(\forall y_n)\mathscr{A}\to(\forall y_1)\cdots(\forall y_n)\mathscr{B})\)
    \((\forall y_1)\cdots(\forall y_n)\mathscr{A}\to(\mathscr{B}\to((\forall y_1)\cdots(\forall y_n)\mathscr{A}\to(\forall y_1)\cdots(\forall y_n)\mathscr{B}))\)
    \((\forall y_1)\cdots(\forall y_n)(\mathscr{A}\to\mathscr{B})\to((\forall y_1)\cdots(\forall y_n)\mathscr{A}\to(\forall y_1)\cdots(\forall y_n)\mathscr{B})\)
    中哪个不是有效的?
    A: 只需让某个赋值使得\(\forall\cdots \mathscr A\)满足,\(\mathscr B\)满足,\(\forall \cdots \mathscr B\)不满足,则第一个、第二个都不是有效的。
  2. Q: 证明新系统\(K^\#\)中的可靠性定理。
    A: K7显然。K8参见0.的第三种加括号方式,此时若要不有效,则必须\(\forall \cdots \mathscr B\)不满足,\(\forall \cdots \mathscr A\)满足,\(\forall \cdots (\mathscr A\to \mathscr B)\)满足,这是不可能的。
  3. Q: 证明新系统能推出的定理是原系统的定理。
    A: K7显然是原系统的定理(用原系统的Gen)
    回忆K1-K6能推出上一篇讲过的\(\forall x_i(\mathscr A\to\mathscr B)\to(\forall x_i\mathscr A\to\forall x_i\mathscr B)\)(K6')是原系统的定理(不对\(x_i\)做出要求),用完全类似的方法可以推出K8是原系统的定理。
  4. Q: 反过来,证明\(K\)推出的定理也能由\(K^\#\)推出:只需考察\(\mathscr B\)就是\(\forall x_i\mathscr A\)的情况,\(\mathscr B\)是Gen得到的。
    为了证明这种情况,只需证明\(K\)推出的定理\(\mathscr A\)对应的\(\forall x_{i_1}\cdots\mathscr A\)都能由\(K^\#\)推出。归纳起点是(),归纳过程是()。
    A: 第一空:当\(\mathscr A\)是公理时用K7
    第二空:当\(\mathscr A\)用MP得到时用K8. 用Gen得到时对其前趋考察归纳假设

4.3 等价和替换

  1. Q: 如何理解\(\mathscr A\leftrightarrow\mathscr B\)是“缩写”?
    A: 原式是\(\cdots\wedge \cdots\)(两个方向)的缩写,进一步地\(\mathscr C\wedge\mathscr D\)本身就是\(\sim(\mathscr C\to\sim\mathscr D)\)缩写
  2. Q: 由()是重言式得到:()且()就能推出“可证等价”,即\(\vdash \mathscr A\leftrightarrow\mathscr B\).
    A: \((\mathscr A\to\mathscr B)\to((\mathscr B\to\mathscr A)\to \sim((\mathscr A\to\mathscr B)\to \sim(\mathscr B\to\mathscr A)))\)
    \(\vdash \mathscr A\to\mathscr B\)
    \(\vdash \mathscr B\to\mathscr A\)
  3. Q: 等价的“传递性”来源于谁的?
    A: 提示:HS
  4. Q: 之前重言等价和逻辑等价(\(\mathscr A\equiv\mathscr B\))都停留在语义层面,现在的()要求可以演绎证明出,所以比()强。
    那它和重言等价关系呢?
    A: 可证等价,逻辑等价
    可证等价比重言等价弱
    注:这个“比逻辑等价强”让人联想:演绎定理只有一个方向成立。
    推论:对于闭式(或者已知符合演绎定理条件),则可证等价和逻辑等价等价。
  5. Q: 我们从FOL证明论(而非模型论)角度定义\(\equiv\),即()且()。这和之前的定义等价(注:这里需要考察相当于带“额外前提”\(\mathscr A\)的可靠性和完全性)
    A: \(\mathscr{A} \vdash_K \mathscr{B}\)\(\mathscr{B} \vdash_K \mathscr{A}\)
  6. Q: \(\mathscr A\models_K\mathscr B\)等价于\(\mathscr A\to\mathscr B\)有效吗?为什么?如果不是,需要什么条件?(提示:一种条件是“闭式”,一种是利用上题)
    A: 注意\(\models_K\)关系中,\(\mathscr A\)对一个解释的所有赋值成立,才考察\(\mathscr B\). 而\(\mathscr A\to\mathscr B\)只要\(\mathscr A\)的一个解释的一个赋值成立,就去考察\(\mathscr B\),因此\(\mathscr A\to\mathscr B\)更容易不成立。
    如果\(\mathscr A\to\mathscr B\)是闭式,则对某个解释所有赋值要么都成立要么都不成立,那就两者等价了。
    利用上题,如果演绎定理正向条件成立(即\(\mathscr{A}\)中不自由出现被Gen了的\(x_i\)),则\(\mathscr{A} \vdash_K \mathscr{B},\mathscr{B} \vdash_K \mathscr{A}\)等价于\(\vdash \mathscr{A}\to\mathscr{B},\vdash \mathscr{B}\to\mathscr{A}\),那容易说明两者也等价。

变元换名

  1. Q: 证明论中换名替换,关于\(x_j\)(换之后变元)的两个条件分别用在了哪里?
    A: \(x_j\)不自由出现,从而可以用演绎定理。
    \(x_j\)\(\mathscr A\)中对\(x_i\)自由(课件上是更强的条件,即\(x_i\)也不约束出现),从而可以做公式中项替换(使用K5)。
  2. Q: \(x_j\)如果在\(\mathscr A(x_i)\)中约束出现,但(),则理论上也可使用变元换名。但这种操作并不是很常见,属于“可以但没必要”。
    为什么说“可以但没必要”呢?
    A: \(x_j\)\(\mathscr A(x_i)\)中对\(x_i\)自由
    比如在构造前束范式时,\(\forall x_i (\mathscr A(x_i)\to( \forall x_i\mathscr A(x_i)\wedge \forall x_k\mathscr A(x_k)))\),你把外层\(x_i\)换为\(x_k\),则变量遮蔽仍然存在,前束范式仍然无法构造。这样换(至少在构造前束范式时)不实用。
  3. Q: “全称闭式”\(\mathscr{A}'\),则\(\vdash\mathscr{A}'\)等价于()。
    这证明过程中应用了什么?
    这对应模型论的什么事实?
    A: \(\vdash \mathscr{A}\)
    证明过程:K5,Gen(以及归纳法)
    模型论中,\(\mathscr{A}\)有效当且仅当\(\forall \cdots \mathscr{A}\)有效。总之,本题是互相\(\models\)等价于互相\(\vdash\)的特例
    注:当然,不能说\(\mathscr{A}\)矛盾当且仅当\(\forall \cdots \mathscr{A}\)矛盾。
    注:此处证明了\(\mathscr{A},\mathscr{A}'\)逻辑等价\(\mathscr{A}\vdash\mathscr{A}',\mathscr{A}'\vdash\mathscr{A}\),但它们显然不可证等价。

替换定理

  1. Q: 替换定理\(\vdash (\mathscr{A}\leftrightarrow \mathscr{B})'\to (\mathscr{A}_0\leftrightarrow \mathscr{B}_0)\),其中\(\mathscr{B}_0\)是通过用()替换()中\(\mathscr{A}\)的一次或多次出现而得的。
    证明的归纳起点是()。
    A: \(\mathscr{B}\)\(\mathscr{A}_0\)\(\mathscr{A}\)就是\(\mathscr{A}_0\)\(\mathscr{B}\)就是\(\mathscr{B}_0\)此时用K5和演绎定理
  2. Q: 接上,归纳过程中如果不涉及量词,可直接考察一些重言式。例如对于\(\to\),考察的重言式是()。
    A: (这里写的是构造“替换实例”之前,即替换之前的重言式)
    \(((\mathscr{A}\to(\mathscr{C}\leftrightarrow\mathscr{E}))\wedge (\mathscr{A}\to(\mathscr{D}\leftrightarrow\mathscr{F}))\wedge(\mathscr{A}\to(\mathscr{C}\to\mathscr{D})))\to(\mathscr{A}\to(\mathscr{E}\to\mathscr{F}))\)
  3. Q: 接上,对于出现量词\(\forall\)的情况,通过Gen和K6容易得到\(\vdash (\mathscr{A}\leftrightarrow\mathscr{B})'\to\forall x_i(\mathscr{C}_0\leftrightarrow\mathscr{D}_0)\). 为了证明目的(),可以在(),(),()前提下\(\vdash\forall x_i\mathscr{D}_0\),并类似地证明另一边。
    A: \(\vdash (\mathscr{A}\leftrightarrow\mathscr{B})'\to(\forall x_i\mathscr{C}_0\leftrightarrow\forall x_i\mathscr{D}_0)\)\((\mathscr{A}\leftrightarrow\mathscr{B})'\)\(\forall x_i \mathscr{C}_0\)\(\forall x_i(\mathscr{C}_0\to\mathscr{D}_0)\)
  4. Q: 上述替换定理证明中,“闭式”最核心用在什么地方?
    A: 闭式中不含自由变元,故2.中可以使用K6和演绎定理。
  5. Q: 替换定理结合演绎定理()向可以得到\(\vdash(\mathscr{A}\leftrightarrow\mathscr{B})'\)推出()。相反方向成立吗?
    A: 逆,\(\vdash(\mathscr{A}_0\leftrightarrow\mathscr{B}_0)\),不成立
    注:显然,例如替换公式中“无足轻重”的部分,则\(\vdash(\mathscr{A}_0\leftrightarrow\mathscr{B}_0)\)什么也说明不了
  6. Q: 接前述符号,替换定理的应用:\(\vdash \mathscr{A}\leftrightarrow\mathscr{B}\)时,由()即可得到\(\vdash\mathscr{B}_0\).
    由此,替换定理和换名替换结合有何结论?
    A: \(\vdash\mathscr{A}_0\)
    提示:在换名替换合法时,有\(\forall x_i(\mathscr{A}(x_i))\leftrightarrow \forall x_j(\mathscr{A}(x_j))\),于是\(\vdash\)一个公式\(\mathscr{A}_0\)就也能\(\vdash\)其按前述方式“换名”后得到的公式\(\mathscr{B}_0\).
    注:可以发现我们不需要\(\mathscr A\)是闭式。因为\(\mathscr A\leftrightarrow \mathscr B\vdash (\mathscr A\leftrightarrow \mathscr B)'\)

勘误集

ml-4_1.pdf

  • p38 有一个\(B\)没花体。
  • p43 一些\(\Leftrightarrow\)应该是\(\leftrightarrow\)
  • p45 K8少了括号。应该是
    \((\forall y_1)\cdots(\forall y_n)(\mathscr{A}\to\mathscr{B})\to((\forall y_1)\cdots(\forall y_n)\mathscr{A}\to(\forall y_1)\cdots(\forall y_n)\mathscr{B})\)