命题逻辑的语义
称为一个推理(sequent),如果使用Natural Deduction的方式进行推导(derivation),可以由得到,那么这个推理是有效的。
定义:
- 真值集合为,T为真,F为假
- 一个公式的估值(valuation)或模型(model)是指为公式中的每一个原子赋一个真值集合中的值
对于这一公式而言,仅考虑p和q的真假值,并不考虑p和q代表什么。
soundness和completeness
对于合理的推理,能否在真值表的语义下,保证当为T时,不可能是F。
若中,当全部成立时,也成立,则称语义蕴含 。
soundness:若是合理的,则$$
completeness:若,则是合理的
证明:太长不看
实际是想说:一个逻辑系统需要满足soundness和completeness的一致性。
一阶逻辑
signature:三个部分
分别是函数名、常数名、谓词名
一般省略,因为其可看作无参数的
一阶逻辑的公式中,两类:
- 项:,用于表达对象object
- 公式:
一阶逻辑的语义:
proof-based logic:给出一个operative的,通过Natural Deduction方式的证明
优点:一旦找到一个证明方式成功推导,即可证明
缺点:难以证明,需要遍历全部可能的证明方式,才能够得到结论
semantic-based logic:通过真值表验证的正确性
优点:更容易证明,只要找到一个左侧为T的assignment,而右侧为F即可
缺点:想要证明更困难,需要遍历全部的真值组合。
一阶逻辑evaluate的难点:每一个变量都是一个可能的具体值的占位符
对,每个x,都为真,则最终取值为真
对,找到一个x0,为真,则最终取值为真
如果的结构为等(解析树根节点),那么最终的真值可以按照各谓词公式的真假,遵循命题逻辑中的连接词运算进行求解
问题进一步转为求解的真值。对此需要明确谓词常量的含义和term的含义。
的模型:
- 非空集合A,所有可能的具体取值全体集合
- 对每一个对无参函数,有一个A中对应的取值
- 对每一个元数>0的函数f,是一个映射,从,A的n元组集合到A中某元素的映射
- 对每一个元数n>0的谓词常量P,是的子集。
例,,R是二元谓词,F是一元谓词,包含:
-
A={a,b,c},具体取值的全体
-
无非0元函数
-
是的子集。
可以为
,则可为
环境:将变量映射到具体值的look-up table
对于在l环境下的满足性定义:
- ,根据l字典,将全部变量换为具体值,此时均在中
- :将公式中的每个x分别替换为模型A中的具体值,然后在根据字典,将其他变量换为具体值,如果每一次的替换都能满足,则也被该模型满足
- 存在性,类似上条,但对约束变量x的替换只需要找到一个在A中的具体值即可。
- 或且非蕴含的满足性分别检查单个公式的满足性得到T和F,再按照命题逻辑联结词真值表得到T和F。
给出模型解释的时候,需要使用扩展签名,否则将会出现bug:
用解释的方式定义:
函数常量alma,
在解释空间中取值替换变量y(例如a),替换变量:
,此时出现问题,没有定义,因为Interpretation的domain必须是的子集。
于是扩展为,此处的*是abc实际值的名字,
并且,原有定义下为真,当且仅当对所有的,为真
改为:
当且仅当对所有的,为真
这一解释就没有问题了。
Logic in CS中的定义下,虽然未考虑。对于模型的映射直接是
一个全局的具体取值A
-
函数:一个value,来源于A
-
谓词:为真的元组组合,元组元素来源于A
其实是相同的,因为函数和谓词就是signature的组成部分。
检查任意性和存在性时,
变量:直接替换为A中的元素,相当于隐性定义了对于非signature中的元素,映射的结果是元素值自身。
在谓词逻辑中是重载的,对模型而言表示满足,对两个formula而言表示语义蕴含。
for all
一个模型满足一个公式组,当且仅当这一模型满足公式组中的每一个公式,如果这一公式组的每个模型都还满足另一个公式,那么这个公式组蕴含这一公式。
存在一个模型,使得,则可满足
一阶逻辑无法表达传递闭包:
image-20190704195501395能否找到一个公式,公式中只包含两个自由变量u和v,一个谓词关系R,通过这个公式可以表达:
这样的R无法找到,这样的公式是无止尽的。
一阶逻辑公式的合理性是undecidable的:给定一个FOL公式,是否成立?
这个问题无法解答。
==》FOL的满足性问题也是undecidable的
证明:是合理的 当且仅当 是不可满足的(可满足:存在一个interpretation I,
网友评论