Java教程

离散数学之命题逻辑

本文主要是介绍离散数学之命题逻辑,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

数理逻辑(mathematical logic)(又称符号逻辑),是用数学方法研究逻辑或形式逻辑的学科,属形式逻辑形式上符号化、数学化的逻辑,本质上仍属于知性逻辑的范畴。其研究对象是对证明和计算这两个直观概念进行符号化以后的形式系统。数理逻辑是基础数学的一个不可缺少的组成部分。虽然名称中有逻辑两字,但并不属于单纯逻辑学范畴。

这篇文章介绍其中命题逻辑(propositional logic)的相关知识。

1. 什么是命题?

命题

《数理逻辑和集合论》紫皮教科书这么些:“命题(proposition)是一个非真即假的陈述句。首先是一个陈述句,不是疑问或感叹句;其次必须‘非真即假’,不能是无法判断的值。”

这句话已经说的很清楚了,不过再看看百度百科写的:“命题(判断)是指一个判断句的语义(实际表达的概念),这个概念是可以被定义并观察的现象。命题不是指判断句本身,而是指所表达的语义。”

如果只看第一个解释,可能会感觉奇怪:为什么必须是陈述句?“1+1真的等于2啊!”不算命题吗?而第二个句子给了我们答案。一个东西是否是命题只在于它有没有语义。那语义是什么?在通常逻辑里,语义只有真(true,简称T)假(false,简称F)两种,称作真值(truth value)。不管什么句,可以取真或假的就是命题,不能取的就不是。

如果把命题和编程语言联系起来,一个命题就是一个bool类型的变量,其值只有真和假两种。假设\(P = 雪是白的\),\(Q = 北京是中国的首都\),那么P和Q都为真,他们是相等的,具体的推理内容我们不关心。

另外一个有趣的问题是,“这句话是假的”可以做命题吗?因为我们的命题要非真即假,也就是说P = P为假必须能导出P的确定值(真或假),这显然是不可能的,所以在我们非真即假的二元逻辑里,这句话不是命题。在在数理逻辑中,我们就把命题当成一个bool变量,一个逻辑值,它的值只有真或假。

image

命题的联结词

命题是一个量,量和量之间需要运算得到其他量,联结词(connective)为我们提供了连接命题组成新命题的方法(感觉这个翻译很拗口,理解为逻辑值的运算符就可以)。

  • ¬(写作\neg):否定词(negation),一元联结词,对真运算结果为假,对假运算结果为真,相当于编程语言中的非not

  • ∧(写作\wedge):合取词(conjunction),二元联结词,对真和真的运算结果为真,对真和假,假和真,假和假的运算结果为假,相当于编程语言中的与and

  • ∨(写作\vee):析取词(disjunction),二元联结词,对真和真,真和假,假和真的运算结果为真,对假和假的运算结果为假,相当于编程语言中的或or

    上面三个是常见的,所有人一望便知,还有两个不是那么显然的。

  • →(写作\to\rightarrow\implies粗箭头):蕴含词(implication),二元联结词,对真和真,假和假,假和真的运算结果为真,对真和假的运算结果为假,\(P→Q\)在值上等于\(¬P\vee Q\)(仅真→假为假)。

    蕴含词的意义是“如果P则Q”,结果的值即““如果P则Q”这句推理能否成立”。有一个数字\(x\),如果\(P: x>3\),而\(Q:x^2>9\)。若\(P\)为真,则\(Q\)只能为真,不能为假;但是\(P\)为假时,无论\(x^2>9\)是否还成立,都不违背“如果P那么Q”的语义(因为已经没有如果了),所以,真只能推真,假可以推真或推假,“如果\(2>3,那么雪是黑的\)”这样的命题被认为是正确的。

    可以称“P是Q成立的充分条件”,相对的“Q是P成立的必要条件”。

  • ↔(写作\leftrightarrow\iff粗箭头):双条件词(equivalence),二元联结词,对真和真,假和假的运算结果为真,对真和假,假和真的运算结果为假,等价于\((P\to Q)\wedge (Q\to P)\)。可以称“P和Q互为充要条件”。若双条件词为真,则P和Q必同真假,也相当于\(P=Q\)。

不同词语没有规定很显而易见的优先级(不过在编程语言中往往还是有优先级的,一般是not>or>and),在书写时,一般¬先结合(如\(\neg P\vee Q等于(\neg P)\vee Q\)),合取和析取大于箭头,其他可能歧义的情况下应该加上括号。

有了这些规则,我们可以连接任意长的表达式形成公式。书上递归定义的良定义的合式公式(well-formed formula)

  • 单个命题可作为合式公式,这样的形式的命题叫做原子命题(atomic proposition)
  • \(A,B\)是合式公式,那么\(\neg A、A\wedge B、A\vee B、A\to B、A\leftrightarrow B\)都是合式公式。
  • 满足上两条的才是合式公式。比如\(((P\to Q)\wedge R)\to (Q\vee R)\)是一个合式公式。

一些特殊值的式子

  • 重言式(tautology):即永真式,值恒为真的式子,通俗的翻译即“反复,废话”。如果\(P=雪是白的,Q=中国的首都是北京\),那么\(P\)是重言式,\(P\vee Q\)也是重言式。重言式也可以仍存在着未知量,如\((P\vee \neg P)\vee Q\vee R\),无论\(P,Q,R\)如何取值,总得到真值,将\(P,Q,R\)代入任意值后也仍未重言式。

  • 矛盾式(contradiction):即永假式,值恒为假的式子,与重言式相对,形式相似。如\(P\wedge \neg P\)是矛盾式。

  • 可满足式(satisfiable):可满足式,即存在一组取值让式子为真的式子,比如\(P\wedge Q\wedge R\),在\(P,Q,R\)均取值为真时值可为真。

显然重言式都是可满足的,矛盾式都是不可满足的,而可满足不一定永真;对重言式取反得到矛盾式,对矛盾式取反得到重言式。

(未完)

这篇关于离散数学之命题逻辑的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!