TCS Lec14总结
1. 逻辑与计算的关联
-
逻辑在计算机科学中的重要性
- 逻辑是“计算机科学的微积分”,应用于:
- 描述复杂性:通过逻辑描述理解计算问题的复杂度。
- 数据库:SQL语言扩展一阶逻辑(FO)。
- 人工智能:多智能体系统的形式化。
- 编程语言:并发系统的程序设计与分析。
- 逻辑是“计算机科学的微积分”,应用于:
-
关键问题
- 经典逻辑(Classical Logic)依赖排中律(),但直觉主义逻辑(Intuitionistic Logic) 更符合计算需求:
- 构造性:证明 需显式给出 或 的证明。
- 经典逻辑中有效的命题(如排中律)在直觉主义中不可证。
- 经典逻辑(Classical Logic)依赖排中律(),但直觉主义逻辑(Intuitionistic Logic) 更符合计算需求:
2. 直觉主义逻辑与自然演绎
-
自然演绎系统(Gentzen, 1935)
- 规则设计原则:每个逻辑连接词对应引入规则(Introduction Rule) 与消去规则(Elimination Rule)。
- 和谐性(Harmony):引入与消去规则需满足:
- 局部可靠性(Local Soundness):消去规则不引入额外信息(对应程序计算的规约)。
- 局部完备性(Local Completeness):消去规则可重构原命题(对应程序的扩展等价)。
-
逻辑连接词的规则
逻辑符号 引入规则 消去规则 , , 无引入规则 (爆炸原理) -
直觉主义逻辑特性
- 不可证命题:排中律()、双重否定消除()等。
- 吉文科定理(Gilvenko’s Theorem):经典逻辑中 有效 直觉主义逻辑中 有效。
- 计算复杂度:直觉主义逻辑的有效性判定是PSPACE完全问题(经典逻辑为coNP完全)。
3. 命题即类型的对应(Curry-Howard Isomorphism)
-
核心对应关系
逻辑概念 程序语言概念 命题(Proposition) 类型(Type) 证明(Proof) 程序(Program) 引入规则 构造子(Constructor) 消去规则 析构子(Destructor) 局部规约 程序计算(-规约) 局部扩展 扩展等价(-等价) -
具体映射
-
蕴含() → 函数类型()
- 引入规则:
- 消去规则:(函数应用)
- 规约:(-规约)
-
合取() → 积类型()
- 构造子:
- 析构子:,
- 规约:
-
析取() → 和类型()
- 构造子:,
- 析构子:
- 规约:
-
假() → 空类型(Void)
- 析构子:(无计算规则)
-
4. 应用与扩展
-
逻辑系统与程序语言的对应史
逻辑系统 程序语言 自然演绎(Gentzen, 1935) 简单类型-演算(Church, 1940) System F(Girard, 1972) 多态-演算(Reynolds, 1974) 线性逻辑(Girard, 1987) 会话类型(Honda, 1993) 模态逻辑 Monad(Moggi, 1987) -
证明助手(Proof Assistants)
- 基于依赖类型(Dependent Types) 扩展命题即类型(如 )。
- 工具:Coq(形式化数学、CompCert编译器验证)、Isabelle、Lean(自然数游戏)。
TCS Lec14总结
https://xiao-ao-jiang-hu.github.io/2025/05/28/tcs/tcs-14/