️This article has been over 2 years since the last update.
离散数学、计算理论、逻辑学与形而上学是密不可分的学科,它们既可以是简单的与非门,也可以是黑格尔的存在本质与概念体系。本文主要是逻辑学中的数理逻辑部分摘要总结。
面向读者
我本人从来没有经过系统性的CS培训,全靠自学。虽然工程经验上已经有成熟的实施方法论(敏捷/培训/质量/需求),但是理论上始终吃亏,导致在进行业务深入时很困难
关联学科
- 逻辑与形而上学:黑格尔耶拿体系,皮尔斯符号学,科学哲学,认识论
- 计算理论:离散数学,递归/状态机/编译器
- Silicon/RTOS/工业化:形式化验证/证明(Prover),比如FormalityEDA工具/The little prover/JML等
目前很多古典书籍都有时代局限性,我推荐两位A国的专家
- Carl Gustav Hempel/卡尔·亨普尔
- Charles Sanders Peirce
基础与背景
逻辑学(Logic)的分类
以下是我的主观分类,以讨论媒介是否以“形式化符号”为标准进行分类。
基本概念
很多逻辑书中都没有讲下面的概念,而是直接混用一堆ABC,导致入门耗在了各种符号与概念中,始终难以分解与还原。这是书籍的时代局限性导致的,而不是读者的智商问题。
逻辑学在高校课程中,大多数是以理科为主导。实际上不然,它需要从历史的角度,即从亚里士多德的多值逻辑开始分析,到形式化为止,各个学派的观点尽可能都了解一下。
形而上学
形上學是指透过理性的推理和逻辑去研究不能直接透过感知而得到答案的问题。
批判(critical)
这里并不是指“批评/大字报”,而是指“批判性思维”(critical thinking )
符号(symbol/semiotic)
- real thing: 某个具体真实事物的专用符号,比如“拿破仑”/“长城”,本文中不涉及此类。
- three sign typologies: 用来描述皮尔斯的三元符号理论。可以指符号本身,符号的代表/再现,符号的联想或品质,这些在数学上一般用“集合”来表示。
命题(proposition)
网上Wiki的定义,这里指狭义的一阶逻辑,且不考虑量词(存在/任意的前缀)
- 基于主语(subject)与谓语(predicate,命题函数)的句子进行定义,比如“雪是白的/yuki wa shiroi/snow is white”
- 这句话的“返回值/真值”是判断,即boolean值
皮尔斯的定义
它是第九种符号,“申符性规约符(dicent symbol)”,通过再现实现了在心中唤起存在(existence)。
类比的话,谓项是一个filter,而主项是一个常量,因此返回值一定是boolean值
定义(Definition)/概念
奥格登和瑞恰兹在《意义的意义》一书中提出的“语义三角”明确使用了“概念”这一术
参考《胡壮麟. 博雅语言学教材系列语言学教程(第3版)》
此外还有成分分析法,类似于EditDistance打Tag的方案,跳过。
内涵需要另外的概念来支撑,Recursive特性在本书也没有介绍。
海德格尔在《存在与时间》中,将定义中的“存在”和“存在者”进行了区分,其中“存在”是不可定义的,而“存在者”作为投影,是可以通过特定的视角去观察的。
数学证明
主要如下方法
注意“数学归纳法(Mathematical Induction)”虽然有“归纳”,但是属于逻辑学中离散数学的内容,是严格的演绎,不要望文生义。
其中deduction(逻辑演绎)/induction(经验归纳)也是英语(比如TOEFL)写作里重要的方法,类似MECE法则。
解释(Explanation)
这里是狭义的科学解释。数学解释只是其中的一部分
详见这篇论文 https://plato.stanford.edu/entries/scientific-explanation/
值得注意的是
- 亨普尔的覆盖率不包含因果,只有“规则”,“条件”与“被说明项”,即“最终解释权”
- 解释与证明可能有共同的交集(比如deduce),但是不能完全相等
- 解释不一定要求严格的逻辑演绎
我个人认为,因果机制是大脑的主观认识,且非形式化的,这里我都没有用因果这个词。我更偏向将因果放到
理解中。
理解(Understanding)
这个属于知识论范畴,参考SECI模型,我的理解如下
- 概念化(明确定义)
- 联结化(解释)
- 內化(实践,直接与再现)
集合(Set)
符合命题中性质约束的整体(the property or properties they must have to be members.)
定义方法
1 | // 1. 枚举(enumeration notation), S的类型是“集合”,abcd的类型是“事物” |
我认为这种描述语法存在如下问题
- 滥用了的x的定义,x到底是用于迭代,还是“固定参数”,还是“任意”/“存在”,还是“全体元素”?
- 缺少了一个“所有(TOE)”的定义,因为任何特殊集合都要继承一个“所有”
假如用编程语言(lambda calculus)描述,那么就非常明确且无歧义
1 | // 谓词的定义 |
形式化的缺点
切勿过于追求完美,你在开车时只用操作方向盘即可,不用学习热力学定律。
- 形式化逻辑符号表达信息量很单一
- 哥德尔不完备定理 ,比如停机问题
- 复杂系统问题,状态爆炸
因此,形式化主要还是在前期的原型验证,高阶理论上,实际搬砖还是需要结合“经验公式”一起使用。