数理逻辑学习笔记[4] #20210915

本文概述了一阶逻辑中的模型论,介绍了哥德尔编码方法,如如何用自然数表示有序对,以及如何理解形式表达式。重点讲解了辖域和替换的概念,包括变元名的作用、项替换的归纳定义和换名替换的规则,确保读者理解公式中的变元自由性和替换的安全性。
摘要由CSDN通过智能技术生成


一阶逻辑:模型论

哥德尔编码

  1. Q: 如何用一个自然数,编码自然数的有序对?
    A: 可以使用 2 a 3 b 2^a 3^b 2a3b,也可以在二维平面上从原点开始以“蛇形”给每个自然数为坐标的点编号。
    注:前者会导致许多自然数没有对应的有序对,不是一一对应。但叙述起来较简单。
  2. Q: 解释形式上的表达式 ℵ 0 + ℵ 0 2 + ⋯ = ℵ 0 \aleph_0+\aleph_0^2+\cdots=\aleph_0 0+02+=0.
    A: 提示:把每一“项”和 ℵ 0 \aleph_0 0做一一对应,整体就相当于 ℵ 0 2 = ℵ 0 \aleph_0^2=\aleph_0 02=0了。
  3. Q: 尝试用0.和1.解释哥德尔编码。
    A: 提示:
    f k n f^n_k fkn相当于有序对。(形式上可以用 ℵ 0 2 = ℵ 0 \aleph_0^2=\aleph_0 02=0表达)
    如何用一个自然数编码 a 1 , ⋯   , a n , ⋯ a_1,\cdots,a_n,\cdots a1,,an, b 1 , ⋯   , b n , ⋯ b_1,\cdots, b_n,\cdots b1,,bn,共两组元素?可以简单地分成奇偶,奇数用于表示 a i a_i ai,偶数用于表示 b i b_i bi。(这形式上可以用 2 ℵ 0 = ℵ 0 2\aleph_0=\aleph_0 20=0表达)
    哥德尔编码可以形式上用 ( 2 ℵ 0 2 + 2 ℵ 0 + 6 ) 1 + ( 2 ℵ 0 2 + 2 ℵ 0 + 6 ) 2 + ⋯ = ℵ 0 (2\aleph _0^2+2\aleph_0 +6)^1 + (2\aleph _0^2+2\aleph_0 +6)^2+\cdots=\aleph_0 (202+20+6)1+(202+20+6)2+=0表达。

辖域和替换

  1. Q: 尝试解释 ∀ x ( A ( x ) ∧ ∀ x B ( x ) ∧ ∀ y C ( y ) ∧ ∀ y D ( y ) ) \forall x (A(x)\wedge \forall x B(x)\wedge \forall y C(y) \wedge \forall y D(y)) x(A(x)xB(x)yC(y)yD(y))中的变元名。
    A: 提示:对于上面的 x x x可以类比程序设计中内层变量遮蔽(Shadow)外层同名变量。
    当然,正如程序设计中一样,这种遮蔽有时会造成困扰。往往并不是最规范的写法。比如积分 ∫ 0 1 x ∫ 0 1 x d x ⋅ d x \int_0^1x\int_0^1xdx\cdot dx 01x01xdxdx也造成了相同的困扰。
    然而问题中的 y y y相对来说,就比较合理,比如 ∫ 0 1 x d x + ∫ 0 2 x d x \int_0^1xdx+\int_0^2xdx 01xdx+02xdx或者
for i in range(10):
    print(i)
for i in range(15):
    print(i+1)

都和问题中的 y y y类似,是比较合理的写法。

  1. Q: 项替换的归纳定义中,归纳起点是什么?
    A: 命题变元。(对于 s ( x i / t ) s(x_i/t) s(xi/t),其中 s s s就是某个命题变元 x j x_j xj,此处的项替换把命题变元 x i x_i xi变为 t t t,把 x j , j ≠ i x_j,j\neq i xj,j=i不变)
  2. Q: 针对“项对公式中的变元是自由的”,我们是想用什么替换什么中的什么?
    A: 想用项替换公式中的变元。
    注:更详细地,是替换自由变元。你不可能把 ∀ x \forall x x里的 x x x给替换掉。我们马上得到:若 A \mathscr A A不含 x i x_i xi的自由出现,那么任何项对 A \mathscr A A x i x_i xi都是自由的。
  3. Q: 举一个(自然语言的)实际例子说明“项对公式中的变元不自由”时强行做公式的项替换引起混乱。
    A: 例如:存在一个国家甲,乙国人和丙国人的混血是甲国国王。乙和丙都是自由出现的(自由变元)。这个句子不能判定真假。只有将乙和丙指定了才能判定真假。
    如果强行变成存在一个国家甲,乙国人和甲国人的混血是甲国国王,那么语义发生了根本变化。此时再把乙指定了,就可以判定真假。
    相比之下,一个正常的替换可以形如:存在一个国家甲,使得联合国排序中排行第丁的国家人和丙国人的混血是甲国国王。可以认为,这样的语义没有发生某种所谓的“根本变化”。注意此时仍然是指定丁和丙才能确定命题真假。
    当然我们还可以举出更有趣的例子:比如存在乙,乙舔到过甲的眼睛。如果把甲直接换成乙……
  4. Q: x i x_i xi出现在 ∀ x i \forall x_i xi的辖域中时是()的变元。联系项对公式中变元自由的定义(替换后项中的任意变元都不出现在对应量词 ∀ \forall 的辖域中),上述事实说明了项 x i x_i xi(或项 f ( x i ) , g ( x i , x i ) f(x_i),g(x_i,x_i) f(xi),g(xi,xi)……等等)对任何公式 A \mathscr A A中的变元()一定是自由的。
    A: 约束, x i x_i xi.
  5. Q: 公式中项替换的归纳定义中,归纳起点是什么?这和项替换的归纳定义有什么区别和联系?
    A: 原子 A j n ( s 1 , ⋯   , s n ) A_j^n(s_1,\cdots, s_n) Ajn(s1,,sn). 定义公式中项替换的归纳起点需要先定义项替换,明确 s k ( x i / t ) s_k(x_i/t) sk(xi/t)的含义。
    变元是项的“起点”,原子是公式的“起点”。项是原子的组成部分,从这个角度讲项比公式基本。先有项替换再有公式中项替换。

换名替换

  1. Q: 换名替换之后,被换的变元名一定不存在了吗?
    A: 不一定。注意 A ( x i / x j ) \mathscr A(x_i/x_j) A(xi/xj)中可能仍然有 x i x_i xi(没有换掉那些约束变元 x i x_i xi)。
  2. Q: 变元换名是为了方便在什么情况下做公式中项替换?
    A: 提示:项 t t t对公式 A \mathscr A A中变元 x i x_i xi不自由(比如说 t t t中出现了 x j x_j xj,而 A \mathscr A A中存在 ∀ x j A ( x i ) \forall x_j A(x_i) xjA(xi)结构)时,我们把 ∀ x j B \forall x_j \mathscr B xjB中所有 x j x_j xj换一个名字,比如变成 ∀ x k B ( x j / x k ) \forall x_k\mathscr B(x_j/x_k) xkB(xj/xk). 通过一系列这种操作可以使得项 t t t对公式 A \mathscr A A中变元 x i x_i xi的替换变得安全。
  3. Q: 对 ∀ x i A \forall x_i \mathscr A xiA中变元 x i x_i xi换名成 x j x_j xj的条件: x j x_j xj不在 A \mathscr A A中自由出现,且 x j x_j xj A \mathscr A A中对 x i x_i xi自由。为什么缺一不可?
    A: 如果 x j x_j xj A \mathscr A A中自由出现,则把 ∀ x i \forall x_i xi替换成 ∀ x j \forall x_j xj后, x j x_j xj是约束变元,这不是我们希望的语义变化。如果 x j x_j xj A \mathscr A A中对 x i x_i xi不自由,那么 A ( x i / x j ) \mathscr A(x_i/x_j) A(xi/xj)部分就出现了我们不期望的语义变化,就更不必说 ∀ x i A \forall x_i \mathscr A xiA整体了。
    注:原来的两个不同命题变元变成了相同(名称)的命题变元未必就会造成不良后果。例如 ∀ y ( A ( y ) → ∀ w B ( x , z ) ) \forall y(A(y)\to\forall wB(x,z)) y(A(y)wB(x,z)),把 y y y换成 w w w是可以的。注意这时 w w w没有在 A ( y ) → ∀ w B ( x , z ) A(y)\to\forall wB(x,z) A(y)wB(x,z)中自由出现,且 w w w A ( y ) → ∀ w B ( x , z ) A(y)\to\forall wB(x,z) A(y)wB(x,z)中对 y y y自由。
    注:两个条件中显然不存在一者推出另一者。
    注: x j x_j xj A \mathscr A A中对 x i x_i xi自由的一个充分条件是 x j x_j xj不在 A \mathscr A A中约束出现。因此这两条条件的一个充分条件是 x j x_j xj不在 A \mathscr A A中出现。也就是换名直接换一个全新的变元名。
  4. Q: 把2.中两条条件中 A \mathscr A A改成 ∀ x i A \forall x_i \mathscr A xiA这个整体,如何?
    A: 提示: x j x_j xj ∀ x i A \forall x_i \mathscr A xiA中的 x i x_i xi自由,这是平凡的。你不能因为前述事实就弄出 A ( x i / x j ) \mathscr A(x_i/x_j) A(xi/xj),只能弄出 ( ∀ x i A ) ( x i / x j ) (\forall x_i\mathscr A)(x_i/x_j) (xiA)(xi/xj).
  5. Q: 如果 B \mathscr B B就是 ∀ x i A \forall x_i \mathscr A xiA,那么 B ( x i / x j ) \mathscr B(x_i/x_j) B(xi/xj)就是 ∀ x j A ( x i / x j ) \forall x_j\mathscr A(x_i/x_j) xjA(xi/xj)嘛?
    A: 回忆公式中项替换的定义, B ( x i / x j ) \mathscr B(x_i/x_j) B(xi/xj) x i x_i xi并未自由出现,因此替换结果就是 B \mathscr B B. ∀ x j A ( x i / x j ) \forall x_j\mathscr A(x_i/x_j) xjA(xi/xj)应当是换名替换的结果。
  6. Q: 接0.,既然被换的变元名仍然可能存在,我们如何论证换名替换是可逆的?
    A:
    首先:把 ∀ x i A \forall x_i \mathscr A xiA换名替换成 ∀ x j A ( x i / x j ) \forall x_j\mathscr A(x_i/x_j) xjA(xi/xj),则留下的那些 x i x_i xi一定是在 A \mathscr A A中约束出现的。
    其次:由于初始时, x j x_j xj不在 A \mathscr A A中自由出现,因此 A ( x i / x j ) \mathscr A(x_i/x_j) A(xi/xj)中的那些 x j x_j xj要不然原本在 A \mathscr A A中就约束出现,要不然就是 A \mathscr A A中自由的 x i x_i xi换成的(即:这些 x i x_i xi A \mathscr A A,外层没有 ∀ x i \forall x_i xi. 当然 A \mathscr A A之外确实原本有一个 ∀ x i \forall x_i xi)。
    为了验证 x i x_i xi A ( x i / x j ) \mathscr A(x_i/x_j) A(xi/xj)中对 x j x_j xj自由,我们关注到第一种 x j x_j xj无需在 A ( x i / x j ) ( x j / x i ) \mathscr A(x_i/x_j)(x_j/x_i) A(xi/xj)(xj/xi)中换成 x i x_i xi,而第二种 x j x_j xj由于外层没有 ∀ x i \forall x_i xi也就自然不会在换成 x i x_i xi时造成麻烦。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值