前面说完了命题,使用命题可以构造命题逻辑的形式语言。
首先来看合式公式。
一个合式公式可以是一个原子命题,也可以是由其他合式公式通过否定、合取、析取、蕴含得到的。
其形式如下:
Φ::=p|(┐Φ)|(Φ→Φ)|(Φ∨Φ)|(Φ∧Φ)
其中p代表任意原子命题,::=右边的Φ代表任一个已经构造好的合式公式。
可见合式公式是我们的老朋友了。
要注意的是,如果合式公式不是一个原子命题的形式,则一定要在每一步都加括号:否定要加,合取要加、析取要加、蕴含要加。
合式公式的语法树如下:
很简单易懂吧。
其中合式公式的高度是语法树中最长路径的长度加1。
对于合式公式的一次求值,就是对它右边所有原子命题的一次赋值。赋的值只有两个选择:真和假,或者True和False,或者T和F。
还记得相继式的结构吗?我们把相继式的左边和右边称为有相继关系:
Θ1, Θ2, Θ3, …, Θn├ Ψ
根据相继关系,我们来定义语意继承关系:
如果某个(或某些)合式公式Θ1, Θ2, Θ3, …, Θn每次求值为T的时候都能使公式Ψ为T,则称它们之间是语意继承关系,记作
Θ1, Θ2, Θ3, …, Θn |= Ψ
什么意思?没看懂?因为合式公式可能由多个原子命题经过复杂的取否、合取、析取、蕴含构成,每一个原子命题的可能取值都有两个(T或者F),则所有的可能性有2^n个,n是原子命题数量。如果凡是对左边公式求值为真,总有Ψ为真,则它们就是有语意继承关系。
看一个例子:
这个语法树中,我们把p赋值T,q赋值F,r赋值T,最后整个语法树的求值为T,标在根节点上。你能写出对应的合式公式吗?
为了不让你迷惑,我把整个的真值表都放上来吧(可能不放上来你会觉得很简单,看完这个就完全迷糊了):
你可以自己尝试一下,看和上表的结论一直不一致。