2 命题逻辑:语法

2.1 形式系统

形式系统间的关系

  1. Q:
    (L1)\(\mathscr A\to(\mathscr B \to \mathscr A)\)
    (L2)\((\mathscr A \to(\mathscr B \to\mathscr C))\to((\mathscr A \to\mathscr B)\to(\mathscr A \to \mathscr C))\)
    (L3)\((\sim \mathscr A \to \sim \mathscr B)\to(\mathscr B\to\mathscr A)\)
    (L4)\((\sim \mathscr A\to\sim\mathscr B)\to((\sim \mathscr A \to \mathscr B)\to\mathscr A)\)
    我们想证明(L1)(L2)(L3)构成的公理系统和(L1)(L2)(L4)组成的公理系统等价。(注:前者称为Łukasiewicz's Third axiom system. 后者称为Mendelson's axiom system.)
    由(L1)(L2)(L3)证明(L4). 由演绎定理我们知道只需证明已知()时能推出\(\mathscr A\),而这只需()。
    A:
    L1,L2,L3,\(\sim \mathscr A \to \sim\mathscr B\),\(\sim \mathscr A \to \mathscr B\)
    已知以上条件时,显然\(\sim \mathscr A\vdash \sim \mathscr B\)\(\sim \mathscr A \vdash \mathscr B\). 再回忆:已知L1,L2,L3时有\(\mathscr B,\sim \mathscr B\vdash \mathscr A\),就立刻知道已知L1,L2,L3,\(\sim \mathscr A \to \sim\mathscr B\),\(\sim \mathscr A \to \mathscr B,\sim \mathscr A\)时可推出\(\mathscr A\). 最后回忆\(\sim \mathscr A\to \mathscr A\vdash \mathscr A\)即可。
  2. Q: 接上,如何证明另一方向?
    A: 只需要证明已知L1,L2,L4,\(\sim \mathscr A\to\sim \mathscr B,\mathscr B\)时能推出\(\mathscr A\). 而这只需注意\(\mathscr B\to(\sim\mathscr A\to\mathscr B)\)即可。
  3. Q: 为了证明公理(模式)L1,L2,L3每一条都是独立的,我们的思路是构造某种性质,使得一切L2,L3通过替换得到的公式都(),且若\(\mathscr A,\mathscr A\to \mathscr B\)都具有该性质,则()。但()不具有该性质。这就可以说明通过公理模式()和推理规则()一定无法得到L1.
    A: 具有该性质,\(\mathscr B\)具有该性质,L1替换的(至少一条)公式,L2,L3,MP.
  4. Q: 接上,\(\sim\)作为一元运算符,对于二值逻辑可能有()种具体的含义。\(\to\)作为二元运算符,对于二值逻辑可能有()种具体的含义。如果针对每个公式指派真值0或1,且之前2.中所述“某种性质”指真值为1,那么在二值逻辑的框架内是否可能为\(\sim,\to\)指定某种具体的含义(即某个具体的真值表或布尔函数)用2.的方法作出L1独立性的证明?为什么?
    A: 4,16.
    回忆:形式系统中的运算符的含义是未事先指定的。我们可以给\(\sim,\to\)指定任何满足公理模式和推理规则的真值表。
    以下用等号表达真值表的取值。例如\(\sim 1=a\)表示真值表中对1做\(\sim\)运算得到\(a\)\(a\)是0或1. 我们希望L2,L3替换的公式都为1,且MP规则能保持1. 但是L1替换的公式不一定为1.
    \(\sim 1=a,\sim 0=b,1\to1=c,1\to0=d,0\to1=e,0\to0=f\),则首先\(d=0\),否则当\(\mathscr A\)\(\mathscr A\to \mathscr B\)都为1时,不能推出\(\mathscr B\)为1.
    此时若\(c=0\),则对任意指派了1的公式\(\mathscr A\),有\(\mathscr A\to\mathscr B\)为0. 所以为了L3成立,L3的前件必须恒为0,则必须有对任意\(\mathscr A,\mathscr B\)的指派都有\(\mathscr A\to\mathscr B\)为0,这又和L3成立矛盾了。\(c=1\).
    此时若\(a=b\),则L3相当于\((a\to a)\to 0\)\((a\to a)\to 1\)都为1. \(c,d\)不都为1,则要求\(a\to a=0,e=f=1\)(这样\((a\to a)\to 1\)\((a\to a)\to 0\)分别对应\(e,f\))此时\(a=1\)\(a\to a=c=1\)\(a=0\)\(a\to a=f=1\),矛盾。\(a\ne b\)
    \(a=1,b=0\)\(\sim\mathscr A\)\(\mathscr A\)总是取相同的值,由L3,立得\(c\to c=f\to f=d\to e=e\to d=1\). 代入\(c=1,d=0\),此时一旦\(e=1\)\(1\to 0=1\)矛盾。故\(e=0\),则\(f=1\)\(\to\)就是“异或”运算即模2加法,这显然和L2矛盾。
    综上,\(\sim\)就是否定运算即\(a=0,b=1\),且\(c=1,d=0\).
    此时,根据L3得\(d\to d=e\to e=c\to f=f\to c=1\)\(f=1\). 回忆之前论证我们知道\(e=0\)则又回到了“异或”。而\(e=1\)时L1又恒成立了。
    综上,任何二值真值表都不可能利用2.的方法作出L1独立性的证明。
    注:实际上,我们可以构造某个三值真值表作出该独立性证明。具体的真值表构造略。
    注:实际上,Łukasiewicz's Third axiom system的三条公理模式每一条拿出来都是独立的。

2.2 完全性定理

可靠性定理

  1. Q: 对于定义域是\(L\)中公式,值域是\(\{0,1\}\)的函数\(v\),要求它是“赋值”还需要\(v(\mathscr A)\ne v(\sim \mathscr A)\)以及()。如何理解这两条要求和“真值表”的关系?
    A: \(v(\mathscr A\to\mathscr B)=0\)当且仅当\(v(\mathscr A)=1\)\(v(\mathscr B)=0\).
    \(\sim\)的“真值表”的含义是\(\sim \mathscr A\)\(\mathscr A\)具体是什么公式无关,只和\(v(\mathscr A)\)有关,并且\(v(\sim \mathscr A) \ne v( \mathscr A)\). \(\to\)的真值表含义也以此类推。所以说“赋值”的两条要求实际上和\(\sim,\to\)的真值表表达了相同的意思。
  2. Q: 如何理解重言式的记号\(\models\mathscr A\)
    A: \(v\models \mathscr A\)表示赋值\(v\)作为定义在\(L\)中公式集上的函数有\(v(\mathscr A)=1\),而\(\Gamma\models \mathscr A\)表示一切使得\(\Gamma\)中公式函数值都为1\(v\)也能使得\(\mathscr A\)函数值为1. 当\(\Gamma\)为空集时,\(\Gamma\models \mathscr A\)或称\(\models \mathscr A\)就意为对一切赋值\(v\)都有\(v\models \mathscr A\).
  3. Q: 如何理解“重言式对于命题语言是不变的”?
    A: 对于两个不同的命题语言(如:其中字符集不同),如果某公式在一个语言中有使得其非真的赋值,则将该赋值的定义域扩展到两合式公式集并集,新的赋值使得该公式在另一个语言中也非真。
  4. Q: 可靠性和完全性分别是什么?你认为这两个名称是如何得名的?说“定理都是重言式”相当于认为形式系统\(L\)具有什么性质?
    A: 对于命题语言\(\mathscr L_0\)上命题演算(形式系统)\(L\),我们通过一组公理模式和一条推理规则定义了\(\Gamma \vdash \mathscr A\). 回忆我们通过“赋值”(满足特定条件的函数)定义了\(\Gamma \models \mathscr A\).
    则:\(\Gamma \vdash \mathscr A\Rightarrow\Gamma\models \mathscr A\)指可靠性(soundness)。字面意思就是说形式推理推出的结果在结合任何可能的实际语义(赋值)后确实是对的。\(\Gamma \models \mathscr A\Rightarrow\Gamma\vdash \mathscr A\)指完全性(completeness)。字面意思就是形式推理一定能推出一切实际上恒真的结果。
    可靠性。
  5. Q: 通过数学归纳法证明“定理都是重言式”的起点是()。这时形式系统中的记号\(\sim,\to\)的含义还能是任意的吗?为什么?
    A: 公理都是重言式。不能。因为“赋值”的定义对\(\sim,\to\)的的具体含义(真值表)做出了要求。

扩充、一致性定理

  1. Q: 如何理解“\(L\)的一个扩充可能和\(L\)没有公共的公理”?
    A: 扩充只需要定理仍是定理,但不需要公理仍是公理。极端地,之前的所有公理可能在扩充后的系统中都不是公理,但都是定理,即都是被新的公理演绎得到的!
  2. Q: 证明L是一致的(一致性定理)与证明L中公理的独立性有什么异同?
    A: 同:都需要针对形式系统\(L\)中的符号指定具体的含义(真值表)从而用具体含义的性质做出论证。
    更具体地:用的都可以理解成“反证”,也就是说如果形式系统\(L\)具备某性质,则对于一切\(\sim,\to\)可能的具体含义都必须如此。如果实际中有任何一种具体含义不如此,那就矛盾了。比如说不一致要求\(L\)中能演绎出\(\mathscr B,\sim\mathscr B\),但我们发现当\(\sim,\to\)表示某种具体含义(即平常所运用的含义)时,就绝不可能演绎出它们。
    异:证明\(L\)是一致的用的是二值逻辑,且\(\sim\)就是否定运算,\(\to\)的含义是若……则……,这都符合平常的用法。而考察公理独立性必须用三值逻辑,并人为构造\(\sim,\to\)的真值表,这些真值表具体意义并不十分明确。
    注:形式系统的可靠性和完全性和具体语义有关;一致性、平凡性和单调性和具体语义无关。但证明一致性又需要具体语义
  3. Q: 如何理解“\(L\)的不一致扩充没有实际价值”?
    A: 实际上容易证明\(L\)的不一致扩充等价于一切公式都是扩充后系统\(L^*\)的定理。这在实际的数学中就用处不大了。
  4. Q: \(L^*\)\(L\)的一致扩充,\(\mathscr A\)\(L\)的公式且不是\(L^*\)的定理,则\(L^*\)补充()为公理后的\(L^{**}\)一定是一致的。此处\(\mathscr A\)不是\(L^*\)的定理就是说\(L^*\)不完全吗?
    A: \(\sim \mathscr A\). 不是,因为\(\mathscr A\)不是\(L^*\)的定理可能有两种含义,即或者\(\mathscr A\)\(\sim\mathscr A\)都不是定理,或者\(\sim \mathscr A\)是定理但\(\mathscr A\)不是。而后者的情况下添加\(\sim \mathscr A\)是添加了不独立的公理。这种情况不能说明\(L^*\)一定不完全。
  5. Q: 为了证明3.,我们只需反设()不一致则\(\vdash_{\{\}}\mathscr B\)\(\vdash_{\{\}}\sim\mathscr B\),此时根据演绎定理和之前的一些引理有\(\sim\mathscr A\vdash_{\{\}}\mathscr A\). 再根据\(\vdash_L(\sim\mathscr A\to\mathscr A)\to\mathscr A\)就有(),矛盾。(大括号中填写适当的形式系统)
    A: \(L^{**}\)\(L^{**}\)\(L^{**}\)\(L^*\)\(\vdash_{L^*}\mathscr A\).

完全扩充、完全性定理

  1. Q: 扩充是否完全和形式系统完全性含义有何异同?
    A: 前者是定理集合是否和每个\(\{\mathscr A,\sim \mathscr A\}\)交非空。后者是定理集合是否包含了重言式集合。两者都是对定理集合提出要求(不能太小)。注:完全不一定一致。
    前者和语义没有关系,后者和语义有关系。
    回忆:扩充的一致性也和语义没有关系。
  2. Q: 一致完全扩充和“极大”有何关系?
    A: 如果\(L^c\)\(L\)的一致完全扩充,则显然任意\(L^c\)的扩充只要引入了新的定理那就不一致。反之,如果\(L^*\)不是\(L\)的完全扩充,但是是一致的,那么根据上一节的3.就知道:\(L^*\)可以再加入新的公理,即增加新的定理。
  3. Q: 为了证明任何\(L\)的一致扩充\(L^*\)都有一致完全扩充\(L^c\),我们需要一个可数的扩充序列。这个序列的构造和数学中什么事物可以类比?
    A: 举例:
    可数个集合\(A_1,\cdots,A_n,\cdots\)的并集\(B\)中的元素\(b\)满足:存在\(i\)使得\(b\in A_i\).
    如果\(A_j\subset A_{j+1}\)就和我们现在的场景很像:即任意两个\(b_1,b_2\in B\)\(\exists i,s.t. b_1\in A_i,b_2\in A_i\).
  4. Q: 2.中的事实对于构造赋值\(v\)有什么帮助?
    A: 由于我们得到了一致完全扩充\(L^c\),所以
    根据完全
    \(v(\mathscr A)=1\)\(\vdash_{L^c} \mathscr A\)
    \(v(\mathscr A)=0\)\(\vdash_{L^c}\sim\mathscr A\)
    一定能对一切\(L\)中公式定义出其函数值。
    根据一致
    上述方法定义的\(v\)一定满足\(v(\mathscr A)\ne v(\sim\mathscr A)\).
    为了说明\(v\)确实是赋值,只需要证明\(v(\mathscr A\to\mathscr B)=0\)当且仅当\(v(\mathscr A)=1,v(\mathscr B)=0\)即可。
  5. Q: 接上,如何说明最后一段的结论?如果左边不成立,即\(v(\mathscr A\to\mathscr B)=1\),那么直接用()即可说明()时绝不可能有\(v(\mathscr B)=0\).
    而如果\(v(\mathscr A)=0\)那么根据\(v\)的定义有\(\vdash_{L^c}\sim\mathscr A\),用()(公理模式)和()(公理模式)得到\(\vdash_{L^c}\mathscr A\to\mathscr B\).
    如果\(v(\mathscr B)=1\)那么显然也有()。
    A: MP,\(v(\mathscr A)=1\),L1,L3,\(\vdash_{L^c}\mathscr A\to\mathscr B\)
    注:推论:任何\(L^*\)中定理的否定不是重言式。
  6. Q: 接上,如何证明完全性定理?
    A: 对于任何公式\(\mathscr A\),如果不是\(L\)中定理,那么\(\sim \mathscr A\)可以被添加成公理,得到一致扩充\(L^*\),而\(L^*\)中定理\(\sim\mathscr A\)的否定即\(\mathscr A\)因此不是重言式。总之:不是定理则不是重言式。
    注:可靠与完全性定理:\(L\)中定理等价于重言式。
    注:判定公式是否是重言式可以直接构造真值表,这也就成为了判定\(L\)中定理的方法。特别注意“定理”和具体语义无关,但真值表和语义有关。

命题逻辑附录

  1. Q: 逻辑门的通用集和连接符的完备集有何联系?
    A: 仅仅是连接符的完备集相关的门(如仅仅有“与非门”)不能构成逻辑门的通用集。但加上“复制门”即可。
  2. Q: 完全性定理的Kalmár证法:首先断言若\(\mathscr A\)是一个公式,\(p_1,\cdots,p_n\)是其中所有变元,给定赋值\(v\),令\(p_i'=p_i(当v(p_i)=1)\)否则\(p'_i=\sim p_i\). 令\(\mathscr A'=\mathscr A(当v(\mathscr A)=1)\)否则(),则()\(\vdash\)()。其中可以使用引理
    \(\mathscr A\to\sim\sim\mathscr A\)
    \(\sim \mathscr A\to(\mathscr A\to\mathscr B)\)
    \(\mathscr A,\sim\mathscr B\vdash\sim(\mathscr A\to\mathscr B)\)
    \((\mathscr A\to\mathscr B)\to((\sim \mathscr A\to\mathscr B)\to\mathscr B)\)
    请证明最后一条引理。
    A: \(\mathscr A'=\sim \mathscr A\)\(p'_1,\cdots,p'_n\)\(\mathscr A'\).
    提示:根据演绎定理和L3显然只需证明\(\sim\mathscr B\to\sim \mathscr A,\sim \mathscr B\to\mathscr A\vdash \mathscr B\),而回忆\(\sim \mathscr B\to\mathscr B\vdash\mathscr B\)我们显然只需证明\(\sim\mathscr B\to\sim \mathscr A,\sim \mathscr B\to\mathscr A,\sim\mathscr B\vdash \mathscr B\).
  3. Q: 接上,如何证明1.中的断言?
    A: 除去一些平凡情况,再利用引理转化,知道只需讨论\(\mathscr A\)\(\mathscr A_1\to \mathscr A_2\)或者\(\sim(\mathscr A_1\to \mathscr A_2)\)的情况。而根据归纳假设,我们能证明出\(\sim \mathscr A_1\)\(\mathscr A_1\),且能证明出\(\sim \mathscr A_2\)\(\mathscr A_2\). 分四类讨论即可。
  4. Q: 我们发现2.中并未用到1.的最后一条引理。实际上,1.的最后一条引理用在了完全性定理证明的什么地方?
    A: 假设\(\mathscr A\)是重言式,那么回忆1.的断言,我们知道对于一切赋值\(v\)都有\(p_1',\cdots,p_n'\vdash\mathscr A\). 注意到\(p_n'\)根据赋值\(v\)的不同可以取\(p_n\)\(\sim p_n\),我们就知道\(p_1',\cdots,p_{n-1}'\vdash p_n\to\mathscr A\)\(p_1',\cdots,p_{n-1}'\vdash\sim p_n\to\mathscr A\). 这时再用1.中最后一条引理马上得到\(p_1',\cdots,p_{n-1}'\vdash \mathscr A\).
    重复归纳下去即可。
    注:该证法较简单,缺点是难以扩展到更复杂的系统。