TCS Lec14总结

1. 逻辑与计算的关联

  • 逻辑在计算机科学中的重要性

    • 逻辑是“计算机科学的微积分”,应用于:
      • 描述复杂性:通过逻辑描述理解计算问题的复杂度。
      • 数据库:SQL语言扩展一阶逻辑(FO)。
      • 人工智能:多智能体系统的形式化。
      • 编程语言:并发系统的程序设计与分析。
  • 关键问题

    • 经典逻辑(Classical Logic)依赖排中律(A¬AA \lor \neg A),但直觉主义逻辑(Intuitionistic Logic) 更符合计算需求:
      • 构造性:证明 ABA \lor B 需显式给出 AABB 的证明。
      • 经典逻辑中有效的命题(如排中律)在直觉主义中不可证

2. 直觉主义逻辑与自然演绎

  • 自然演绎系统(Gentzen, 1935)

    • 规则设计原则:每个逻辑连接词对应引入规则(Introduction Rule)消去规则(Elimination Rule)
    • 和谐性(Harmony):引入与消去规则需满足:
      • 局部可靠性(Local Soundness):消去规则不引入额外信息(对应程序计算的规约)。
      • 局部完备性(Local Completeness):消去规则可重构原命题(对应程序的扩展等价)。
  • 逻辑连接词的规则

    逻辑符号 引入规则 消去规则
    ABA \land B ABAB\dfrac{A \quad B}{A \land B} ABA\dfrac{A \land B}{A}, ABB\dfrac{A \land B}{B}
    ABA \supset B [A]xBAB\dfrac{[A]^x \quad \cdots \quad B}{A \supset B} ABAB\dfrac{A \supset B \quad A}{B}
    ABA \lor B AAB\dfrac{A}{A \lor B}, BAB\dfrac{B}{A \lor B} AB[A]xC[B]yCC\dfrac{A \lor B \quad [A]^x \cdots C \quad [B]^y \cdots C}{C}
    \bot 无引入规则 C\dfrac{\bot}{C}(爆炸原理)
  • 直觉主义逻辑特性

    • 不可证命题:排中律(A¬AA \lor \neg A)、双重否定消除(¬¬AA\neg \neg A \supset A)等。
    • 吉文科定理(Gilvenko’s Theorem):经典逻辑中 AA 有效     \iff 直觉主义逻辑中 ¬¬A\neg \neg A 有效。
    • 计算复杂度:直觉主义逻辑的有效性判定是PSPACE完全问题(经典逻辑为coNP完全)。

3. 命题即类型的对应(Curry-Howard Isomorphism)

  • 核心对应关系

    逻辑概念 程序语言概念
    命题(Proposition) 类型(Type)
    证明(Proof) 程序(Program)
    引入规则 构造子(Constructor)
    消去规则 析构子(Destructor)
    局部规约 程序计算(β\beta-规约)
    局部扩展 扩展等价(η\eta-等价)
  • 具体映射

    • 蕴含(ABA \supset B函数类型(ABA \to B

      • 引入规则:λx.M:AB\lambda x. M : A \to B
      • 消去规则:MN:BM N : B(函数应用)
      • 规约:(λx.M)NRM[N/x](\lambda x.M)N \to_R M[N/x]β\beta-规约)
    • 合取(ABA \land B积类型(A×BA \times B

      • 构造子:M,N:A×B\langle M, N \rangle : A \times B
      • 析构子:fst M:A\textsf{fst } M : A, snd M:B\textsf{snd } M : B
      • 规约:fst M,NRM\textsf{fst } \langle M,N \rangle \to_R M
    • 析取(ABA \lor B和类型(A+BA + B

      • 构造子:inl M:A+B\textsf{inl } M : A + B, inr N:A+B\textsf{inr } N : A + B
      • 析构子:case(M,x.N,y.P):C\textsf{case}(M, x.N, y.P) : C
      • 规约:case(inl M,x.N,y.P)RN[M/x]\textsf{case}(\textsf{inl } M, x.N, y.P) \to_R N[M/x]
    • 假(\bot空类型(Void)

      • 析构子:abort M:C\textsf{abort } M : C(无计算规则)

4. 应用与扩展

  • 逻辑系统与程序语言的对应史

    逻辑系统 程序语言
    自然演绎(Gentzen, 1935) 简单类型λ\lambda-演算(Church, 1940)
    System F(Girard, 1972) 多态λ\lambda-演算(Reynolds, 1974)
    线性逻辑(Girard, 1987) 会话类型(Honda, 1993)
    模态逻辑 Monad(Moggi, 1987)
  • 证明助手(Proof Assistants)

    • 基于依赖类型(Dependent Types) 扩展命题即类型(如 ,\forall, \exists)。
    • 工具:Coq(形式化数学、CompCert编译器验证)、Isabelle、Lean(自然数游戏)。

TCS Lec14总结
https://xiao-ao-jiang-hu.github.io/2025/05/28/tcs/tcs-14/
作者
wst
发布于
2025年5月28日
许可协议