《离散数学导学》精炼——第6,7章(类型集合论,谓词逻辑)

news2025/1/30 15:55:21

引言

笔者一直觉得在计算机这一学科的学习中,离散数学是极为重要的知识基础。离散化的思想体现在计算机学科的方方面面。举例来说,“像素”这一概念是我们日常生活中耳熟能详的,将一个图片拆分成一个个极微小的像素,就是利用了离散化的思想。为了帮助大家打好离散数学的思维基础,笔者新开一个专栏,对《离散数学导学》这本书做一个精炼,使其更易理解。这篇文章是这个专栏的第三部分,主要介绍6-7章。
1-3章传送门
4-5章传送门

正文

第六章 类型集合论

类型的需要

一个含有不同类型的集合是没有意义的。我们规定,一个集合中的元素一定要是同一类型的。
空集也含有类型,一个自然数类型的空集和一个集合类型的空集是不一样的。

集合描述

一个集合描述以如下形式出现:
在这里插入图片描述

  1. 声明:声明元素属于哪一类型(实际不一定是这个集合中的元素)
  2. 谓词:起到过滤器的作用,不满足谓词要求的元素不包含的集合内
  3. 项目:集合中元素的输出方式。

我们用一个例子说明一下:
请添加图片描述
其中,第一条红线是声明p是people类型的,第二条红线要求只有“有移动电话”的p才能保留下来,第三条红线要求集合中实际包含的是每个p元素的address()函数,也就是每个p的地址。

在实际中,谓词和项目都可以省略。

缩写

两个自然数x,y,我们可以用x…y来表示[x,y]。

笛卡尔积(重点)

  1. 序偶:x,y分别是两个任意类型的元素,则(x,y)是一个序偶。
  2. 笛卡尔积:笛卡尔积是序偶的集合。我们举个例子来理解笛卡尔积:

如果A={1,2},B={m,n},则A和B的笛卡尔积,用A×B表示,则为{(1,m),(1,n),(2,m),(2,n)}。

  1. 序偶的类型:如果1是N(自然数)类型,a是letter(字母)类型,则(1,a)是N×letter类型。
    注意:(1,a)和(a,1)是不同的类型。

任意集合和空集的笛卡尔积是空集。

  1. 注意:我们假设集合A的元素类型是a,集合B的元素类型是b,集合C的元素类型是C,则A×B×C的类型是((a,b),c),而非直观的(a,b,c)。
  2. 成分筛选:成分筛选用.运算符,继续举例子说明:

{p:A×B|p=(a,b)·p.1},这个集合是{a},也就是所有元素p的第一个部分。如果p有两个(a,b),(c,d),则前面的集合就是{a,c}。

公理定义

我们可以用公理定义来定义一个集合:
在这里插入图片描述
和谓词描述不同,公理定义也可以直接声明集合:

  1. 这个公理定义声明了集合中的元素,与上文的谓词描述相似
    在这里插入图片描述
  2. 下面的公理定义直接声明集合(P(N)是N的幂集,声明的意思是X是N的一个子集)
    请添加图片描述
    请添加图片描述

第七章 谓词逻辑

谓词逻辑其实就是命题逻辑的一种简洁的写法

全称量词∀,存在量词∃

这俩没什么说的,大家都知道。

可满足性,有效性,不可满足性

谓词逻辑构成的语句是一个命题,因此也具有真值。

  1. 有效性:当一个谓词中的变元取定义域的任意值时,这个命题都为真时,我们称这个谓词(注意是谓词,不是整个命题)时有效的。
    在这里插入图片描述
    全称量词表示n取其定义域的任意值。
  2. 可满足性:谓词中的变元取定义域的某一个值时,这个命题为真,则称这个谓词是可满足的。
    在这里插入图片描述
    存在量词表示n取其定义域的某一个值。
  3. 不可满足性:变元取任意值命题都是假的,谓词就不可满足,不用多说。

自由变元,约束变元

有定义域的变元就是自由变元,否则是约束变元。例如:
在这里插入图片描述
其中y有定义域,是约束变元,x是自由变元。
注意:定义域是有自己的影响范围的,在影响范围之外的该变元依然是自由变元。
在这里插入图片描述

替换

替换符号是[],我们用例子来说明:

n>0[3/n]的结果是3>0,就是将所有n的地方写成3即可。

只有自由变元能被替换,约束变元收到定义域的限制,如果被替换了,则定义域中少了一个符号,意义完全不同,例如:

∀n:N·n>0[3/n]的结果是∀n:N·n>0,是不变的。如果被替换了,则为∀n:N·3>0,这样在定义域中n这个符号就消失了,这显然是不行的。

依次替换和同时替换

在替换多个变元时,有依次替换和同时替换两种方式。
在这里插入图片描述
前者是依次替换,后者是同时替换。这两者没什么区别,只是前者分两步替换,后者直接一步替换。

变元俘获

如果用约束变元替换自由变元,那么这个变元也会受到定义域的限制,就发生了变元俘获。
解决方法也很简单,换个字母替换自由变元,或者将约束变元换个字母就可以了。

限制

限制其实就是命题逻辑中的谓词。举个例子就明白了:
请添加图片描述
红线的部分就是这个命题逻辑的限制。

限制的转化(难点)

限制的转化就是将带有限制的陈述转换成不带有限制的陈述。对于全称量词和存在量词来说,转化的方式是不同的。具体如下:
在这里插入图片描述
可以看出,全称量词的陈述转化之后用的是蕴含符号,而存在量词的陈述用的是合取符号。其实也不难理解,可以自己举一个全称量词和存在量词的例子,然后你会发现,全称量词都可以用“如果…,就…”这样的句式描述,而存在量词一般用“…的…”比较合适。
例如,下面的陈述:
在这里插入图片描述
这句话可以说成“如果n是自然数、n是素数且大于2,那么n是奇数。”
再看下面的陈述:
在这里插入图片描述
这句话显然说成“存在一个女性英国首相"比较合适。

唯一存在量词

唯一存在量词是”有且只有“的意思,我们举一个例子说明:
在这里插入图片描述
这个描述表示”有且只有一个x,使x+1=1“。

还有一个表示这个x的符号μ:
在这里插入图片描述
这个描述表示满足这个条件的x的集合,这个集合中只有一个元素。
注意:如果你算出来这个集合中不止一个元素,那么这个符号没有意义。这个符号是专用于唯一存在量词的。

等值推理

我们介绍过命题逻辑的等值推理,作为命题逻辑运算的延伸,谓词逻辑当然有自己的等值推理公式。与谓词逻辑不同的是,这里的等值推理公式距离我们的惯性思维较远,因此需要列出,但依然不需要每个都说明:

  1. 下面的公式是自己想不到,但很容易理解的:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 下面的公式是显然性的:
    在这里插入图片描述
  3. 下面的四个公式则需要仔细思考一下。注意,这四个公式的前提是x在q中没有出现:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    既然x在q中没有出现,那么x与q没有关系,那么自然可以把q从括号中提出来。

自然演绎

谓词逻辑自然也有自己的自然演绎公式。在说明这些公式之前,提醒一下,在自然演绎中,上面的部分是前提,下面的部分是结论。另外,由于全称量词就是广义交运算,而存在量词是广义并运算,因此可以将带有这两个量词的描述拆成多个交或并运算来理解:
在这里插入图片描述
在这里插入图片描述
说明一下这个公式,这个公式指任取X集合中的x,经过若干步推导得到p,则结论成立。
在这里插入图片描述
这个规则不好理解,笔者的理解是:如果存在x使p为真,且以p为真为假设能推出q,那么q也可以为真;但x在q中不出现,那么q的真假与x没有关系,也就是说q的真假从x的角度来看是无法改变的,关于这一点,举一个例子来理解。看下面的这个描述:

∃x|x∈N·y

很显然这个描述是否为真和x的取值是没有关系的。那么如果存在x能推出这个陈述为真,那么对于所有x,这个陈述也是真的。
回到刚才的说明,q的真值和x的取值也没有关系,因此只要存在一个x推出q是真的,那么对于所有x,q都是真的,结论成立。
对于多个命题来说,这个规则也是成立的:
在这里插入图片描述

one-point规则

这个规则如下:
在这里插入图片描述
正如这个规则所说,它可以得出t是X的一个元素且t满足p。注意,x在t中没有自由出现的前提很重要,如果用含有x的t来替换x,很显然不能得出什么元素能满足p。
请添加图片描述
我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!如果觉得好的话,可以关注一下,我会在将来带来更多更全面的算法讲解!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/413441.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[1] 顺序表实现

一、引入顺序表 提出问题: 顺序表底层是一个数组,为什么不是直接操作数组就好了,还要单独写一个类,说底层是数组呢?? 因为顺序表可以有更多的操作: 比如一个数组,我们没有办法知…

Android 11.0 原生SystemUI下拉通知栏UI背景设置为圆角背景的定制(二)

1.前言 在11.0的系统rom定制化开发中,在原生系统SystemUI下拉状态栏的下拉通知栏的背景默认是白色四角的背景, 由于在产品设计中,在对下拉通知栏通知的背景需要把四角背景默认改成圆角背景,所以就需要分析系统原生下拉通知栏的每条通知的默认背景, 然后通过systemui的通知…

MobTech 秒验|极速验证,拉新无忧

一、运营拓展新用户的难题 运营拓展新用户是每个应用都需要面对的问题,但是在实际操作中,往往会遇到一些困难。其中一个主要的难题就是注册和登录的繁琐性。用户在使用一个新的应用时,通常需要填写手机号、获取验证码、输入验证码等步骤&…

Java-红黑树的实现

目录一、概述二、红黑树的操作1. 变色2. 左旋与右旋3. 插入节点4. 删除节点三、手写代码1. 通用方法2. 中序遍历3. 左旋4. 右旋5. 添加节点6. 删除节点四、完整代码五、测试1. 红黑树打印类2. 测试代码3. 测试结果一、概述 关于红黑树的学习,先推荐给大家一个网址&…

Centos7安装部署Jenkins

Jenkins简介: Jenkins只是一个平台,真正运作的都是插件。这就是jenkins流行的原因,因为jenkins什么插件都有 Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,Hudson后来被…

文章自动生成器 -原创文章生成器在线版

怎么将ChatGPT生成文章保存 在使用ChatGPT生成文章后,您可以使用以下几种方法将其保存起来: 复制粘贴:最简单的方法是将生成的文章文本复制并粘贴到文本编辑器或其他文本处理软件中,如Word文档或Google Docs,以保存文…

I2C通信

一、理论上了解I2C时序 I2C写数据时序如图: 通过解析器解析I2C通信如上图(SCL和SDA反了)。 1---起始信号 2、3---应答信号ACK 5---停止信号 起始信号:SCL线是高电平时,SDA线从高电平向低电平切换。 停…

一个大二学生送给大一学弟学妹的建议

博主简介:先简单的介绍一下我吧,本人是一名大二学生,来自四川。目前所学专业是人工智能,致力于在CSDN平台分享自己的学习内容。 我为什么要写这篇文章? 我来到CSDN也已经一年了,在这一年里面,我…

go binary包

binary包使用与详解 最近在看一个第三方包的库源码,bigcache,发现其中用到了binary 里面的函数,所以准备研究一下。 可以看到binary 包位于encoding/binary,也就是表示这个包的作用是编辑码作用的,看到文档给出的解释…

加密的本质:数学的不对称性

文章目录 引言I 预备知识1.1 加密和授权1.2 非对称的特性II 椭圆曲线加密的方法2.1 椭圆曲线2.2 椭圆曲线的性质引言 不对称有时却自有其妙处与美感,比如黄金分割就是不对称的。 可以通过加密和授权,兼顾保护信息不外泄,而且某些得到授权的人还能使用信息。 I 预备知识 …

2022年人民满意手机银行发展洞察

易观:商业银行积极践行“金融为民”,坚持“以用户为中心”的发展理念,从全客群、全服务、全渠道推动金融服务触达广大人民群众。其中,手机银行作为服务及经营主阵地,是人民群众获取金融服务的超级入口及服务平台。 “以…

键盘摄影:今天老李是一名动物摄影师

键摄,全称键盘摄影师。原本是一个贬义词,是指那些没有相机,没有实拍经验,仅凭一副鼠标键盘,在家里打字,在网上头头是道地分享摄影技巧,同时对别人的作品指指点点,然后又无法秀出自己…

中国上海人工智能企业中集飞瞳全球港航AI独角兽企业,成熟智慧港航AI产品,数字化港口自动化码头智慧港航智能化中国上海人工智能企业

中国上海人工智能企业中集飞瞳全球港航AI独角兽企业,成熟智慧港航AI产品,数字化港口自动化码头智慧港航。CIMCAI打造全球领先新一代集装箱管理方案,手机小程序随时随地AI验箱,自动化箱况检测信息识别,集装箱信息识别箱…

总线的控制

总线控制 目录总线控制总线的判优控制链式查询计数器定时查询独立请求小结总线通信控制同步通信异步通信半同步通信分离通信由于总线上连接着多个部件,什么时候由哪个部件发送信息,如何给传送信息定时,如何防止信息丢失,如何避免多…

React源码解析之createElement和render方法

参考资料 请注意,这是React16.8的源码解析,当然他完全可以作为你阅读源码的参考,他还没有落后。 Step1 开始之前,要先了解一个知识点⬇️ 我们都知道,要在JSX中写React语法,那为什么不能在js文件中写呢&am…

微搭使用笔记(六) 通过源码组件实现小程序端地图

前言 微搭官方提供了大量常用组件,但由于微搭本身也是在不断地完善过程中,有些组件还是没有提供,但同时微搭允许用户自定义组件并在应用中使用。 实际场景是这样的,我们需要一个地图页面在上面展示已知设备的信息和位置&#xf…

CentOS7 虚拟机 双网卡绑定

一、网卡绑定模式 模式类型特点mode0round-robin(平衡轮询策略)基于per packet方式,轮询往每条链路发送报文。提供负载均衡和容错的能力,当有链路出问题,会把流量切换到正常的链路上。交换机端需要配置聚合口。mode1a…

Linux网络编程(四)——UDP通信

目录 0x01 UDP协议 一、UDP通信简介以及接口 二、UDP的接口 三、UDP收发例程 0x02 广播 一、设置广播数据函数接口 二、广播代码实现 0x03 组播(多播) 一、组播地址 二、设置组播函数接口 三、代码实现 0x01 UDP协议 一、UDP通信简介以及接口…

《Netty》从零开始学netty源码(三十六)之ChannelConfig

ChannelConfig 在前面创建NioServerSocketChannel的 构造函数中,最后一步创建了channel属性的配置类NioServerSocketChannelConfig,本文详细分析下该类,先看下其类结构图。 类结构图 服务端使用的NioServerSocketChannelConfig,…

ELK日志分析系统+zookeeper

ELK日志分析系统zookeeper一、zookeeper简介1、zookeeper概念2、zookeeper数据结构二、zookeeper工作机制1、zookeeper特点2、zookeeper应用场景三、zookeeper集群部署1、安装前先关闭防火墙 核心防护2、安装JDK3、安装zookeeper4、修改配置文件5、创建数据目录和日志目录&…