//数理逻辑(一)

前言:   

    最近一直寻思着要不要把之前学过的通通都记下来比较好,毕竟人的记忆力有限,有些东西虽然简单但过一会就忘得一干二净了。所以决定再次内化一下知识体系,提炼主要内容编成快速阅览版记录下来(所以并不保证大家都能从零开始看懂哈哈)并且都归类在标题带【菜鸡随笔】的分组里。

    实际上在这样总结的过程中,已经有好几次对原有的出现了新的认识,真的挺好的。那么就从现代计算机科学的核心,数理逻辑(逻辑与证明)开始写吧。

参考资料 :机械工业出版社《离散数学及其应用》

 

一些小标注:

*  = 老子背书保证就是我是说的这个意思

(?   ***)   =  很有可能不对,没有任何验证。是个大胆的假设,可能会坑了你

(@ ***)   =资料中原话/大义,或者例子

(#   ***)   =是我用常见的自然语言或例子对原文的翻译

【***】  =我想让读者注意的名词

(***)        = 啰嗦但还是有点用的备注

 

离散数学背景:

    既然出自离散数学那就得介绍一下其背景,到目前为止(肯定不包括未普及的量子计算机,所以不考虑不谈及量子态,而且这个我想谈也谈不来呀。),现今计算机科学(往后简称CS)仍是建立在0和1的基础上。对CS来说,是一个整数的运算结构(0,1,2,3,4,5…),而对整个数学体系来说,可以分为 连续和不连续两大类(指的是函数的属性),前者由微积分来处理,后者有专门处理的整数的离散数学来处理。

    然后离散数学狭义上(广义上叫组合数学)分为数理逻辑、集合论、关系/图论、组合排列、递归/递推、布尔代数。所以第一个要看也是第一个要记录的就是数理逻辑。

 

数理逻辑背景:

    (@都知道证明对数学来说是多么的重要,但人们似乎并没有真切地感受到其重要性。事实上,证明常常用于验证计算机对所有可能的输入值所产生的输出值,用于揭示算法的正确性、健壮性,致力于建立一个系统的安全性…)

    说了跟没说的区别并不大,提炼一下以上资料原话的大义:

(#为了有效学习离散数学就必须先学会数学论证工具,即他们开发的一套数理逻辑。而数理逻辑的主要作用就是验证某个算法的好坏)

 

数理逻辑-命题逻辑的基本定义:

先从最简单最基础的开始说起,然后再说其定义。

 

  • 命题

命题是一个【陈述语句】,它所描述的事物在【客观事实】上必须属于真或者是假,不能既真既假。

 

举个例子:

    1、北京是中国的首都

    2、1+1=2

    3、1+2=4

    以上,1、2为真命题,3为假命题。

 

再举个例子:

    1、现在几点了?

    2、z=x+y

    这个例子主要想说的是1、2均不为一个 命题 ,为什么? 因为1根本就算一个陈述语句,它不描述任何事实。

2 虽然看起来的确说明了一些事实,但是z/x/y都可以随便赋值,它既可能是4=2+1,也可能是4=2+2,所以触犯了命题不能既真既假的要求。

 

 

  • 命题变元

    为了方便描述命题于是有了命题变元这个东西,就像平时用字母代表数值那样,通常用字母

    p , q , r , s 来代表命题

 

(?就像时间复杂度用大O表示法描述一样,命题变元用的以上四个字母只是习惯上用到的,但不仅限于此)

    然后,如果一个命题是一个真命题,那它的【真值】就为真 ,用 T 表示,否则就为假命题,真值为假,用 F 表示。

 

 

  • 复合命题 (单个数学陈述)

有了以上后,哲学家和数学家搞了套围绕着【命题演算】的东西出来。称为复合命题的新命题是由已知命题用逻辑运算符组合而来的

即,由一个或多个数学陈述组合起来的新命题

 

它有一整套的定义

 

定义一 : 令 p 为一个命题,则 p 的否定记作 ┐p,也可以记作p 上面加一横。(我草,这个符号我真打不出来,只能这样描述了)

┐p 所指的意思是 "不是 p 所指的情形" 。命题 ┐p 可以读作 “非p” 。p 的否定( ┐p)的真值和 p 的真值相反。

 

接下来我将用自然语言举一些例子来帮助理解每一个定义。

 

定义一解析及例子:

    令命题 p 为 “闰年有366天”  ,那么,其真值为真,且可用 T 表示其真值。

    那就得出命题 ┐p 为 "闰年少于366天",真值为假,且可用 F 表示其真值。

注意!分辨命题的真假并不是靠命题变元的符号,是靠真值!再重复一次,p 和 ┐p的关系是"┐p所指的情形和p 所指的恰恰相反" 所以,即使是假命题,也可以用 p 来表示。因为 p 和 ┐p 本身就和命题真假没有任何关系。then,

 

书中单数学描述命题的真值表。

 

 

  • 复合命题 (一个以上的数学描述的合取)

    这里开始讲的是引入一个以上的已知命题(数学描述)来构造新命题的逻辑运算符,这些逻辑运算符也成为【联结词】。

 

定义二:令 p 和 q 为命题, p、q的【合取】即命题 “p 并且 q” ,记作 p ∧ q。当 p 和 q 都是真时,p ∧ q 命题为真,否则为假。

 

定义二解析及例子:

    p = "阳光灿烂",q = "在下雨" ,p∧q(合取式) = "阳光灿烂并且在下雨"

 

(?有时候逻辑合取的中文联结词用到的是"但是"而非"并且",虽然在中文的意思上两个词有些微妙的不同,但在这里并不关心这些细微差别。所以这里"并且"和"但是"两种说法都是等价的。)

 

    以上 p 这个新命题的真值,取决于 p q 的真值,仅当两者都各自为真时 p q 才为真,就像【逻辑与运算符&/&&】一样。

 

p ∧ q 的真值表

 

 

定义三:令 p 和 q 为命题,p 和 q 的【析取】即命题 “p 或 q” ,记作 p v q。仅当p 和 q 均为假时,合取(没写错,就是合取,如果不明白就自行百度合取的详细意思)命题为假,否则为真。

 

定义三解析及例子:

    在析取中使用的联结词 或(or) 对应在中文词 或 在自然语言中有两种情况,即 兼或(inclusive or) 和 异或(exclusive or)。只要两命题(p、q)任何一个为真,那析取式就为真。

 

    1p v q(析取式):“选修过微积分 计算机科学的学生可以选修离散数学”

    这里指的是选修过微积分和计算机科学的学生以及选修过其中一门课的学生皆可选修离散数学。这是兼或

   

    另一方面

    2p v q:“选修过微积分或学过计算机科学,但不是两门课都学过的学生,也可以选修离散数学。”

    这时候用到的就是异或。

 

    3p v q:“开胃菜:汤或沙拉”

    餐馆菜单上写的,一般表示顾客可选其中之一,但不能既要汤又要沙拉,所以这还是异或,异或的另一个自然语言例子。

 

 

可能我描述的不够严谨,附上一段原文帮助大家理解,只是这个原文本身就有点绕。

(@ 前面已经说过,析取中使用的联结词 对应于自然语言中的 的两种情形之一,即可兼得的。这样,当析取中的两个命题之中至少有一个为真时,析取为真。有时候我们也按不可兼得的方式使用 。当用异或来联结命题 p q 时,就得到命题p q (但并非两者)”  。这一命题当 p 为真 q 为假时为真,并且当 p 为假且 q 为真时也为真,而当 p q 均为假或均为真时,这一命题为假。)

 

 

final,附上 p v q的真值表

 

 

结语:

这次暂且先到这下次应该会先记录数据结构的链表,如果还是数理逻辑的话,我会把一整章的内容一次性写好。

posted @ 2019-03-01 00:05  负熵电光丸  阅读(416)  评论(0)    收藏  举报