句法产生了证明论(Proof Theory),针对公理系统的推导。(欧氏几何)
语义产生了模型论(Model Theory),主要研究句子和“世界”的关系。
在完备的公理系统中,句法和语义是一致的。
主语(S)+谓语(P)+四种命题:“与世界相对应”
古典时期假设:逻辑是双值的,不能包含空集
三段论:形如
如何反驳?以现实为例
将
公理1:
公理2:
规则1:
规则2:
规则3:没有X是Y推出没有Y是X
规则4:
中世纪:
文艺复兴:莱布尼兹,引入“部分”符号
布尔代数:
集合运算符:补集:
韦恩(Venn)图:一种与布尔代数完美同构的图解方法。
三段论 | 布尔代数 | 集合 |
---|---|---|
所有x是y | ||
没有x是y | ||
一些x是y | ||
一些x不是y |
V代表x和y相交形成的非空子集。
弗雷德在《算数原理》中提出:可以使用由五个基本逻辑定律、几个量词定律和几个函数公理组成的“逻辑公理”推导出集合论,数论,分析中的所有定理。
罗素悖论:
罗素与怀特海德在《数学原理》中提出类型理论:规定对象只能与相同或更高类型的对象进行关联,避免了集合的自我包含。
逻辑主义(弗雷德、罗素、希尔伯特):数学可以从有限的公理中推导出来(完备)
哥德尔不完备定理:能够制定算数定律的公理系统一定是不完备的
自指悖论(罗素悖论,哥德尔不完备定理,停机问题)
一阶逻辑的完备性
布尔函数的展开:
简化操作:
前提:
希望自动证明一阶逻辑中的定理
树解析效率低下,存在冗余
基于DPLL框架的SAT求解器存在类似的低效率和冗余
变量选择/赋值选择:
前瞻(Lookahead):同时尝试几个变量的赋值,选择最优的继续
深度优先前瞻:重启
子句学习
q-Horn:通过列乘-1,行和列重新排列
匹配:二分图
k-BRLR:每个变量的正负文字出现总和不超过k次
SLS是解决困难组合问题最成功和最广泛使用的通用策略之一
应用于SAT问题的SLS算法:
MAX-SAT:满足最多的子句数量
MAX-2-SAT:每个子句最多两个文字
没讲的部分: