【实分析】【二】2.2 (a) 加法与交换律


前言

在2.1 Peano公理中,我们学习了建立一个自然数需要的条件,其中定义了自然数的基本运算,增长运算。本文进一步对增长运算进行拓展,定义自然数的加法运算,并给出我们习以为常的加法交换律的证明。


一、递归定义

在介绍加法的定义之前,先介绍一个叫递归定义的命题:

设对每个自然数n,都有某个函数 f ( n ) : N → N f(n): N\rightarrow N f(n):NN将自然数映射成自然数。设c是一个自然数,那么可以给每个自然数n指定唯一的一个自然数 a n a_n an,使得 a 0 = c , a n + + = f n ( a n ) a_0=c,a_{n++}=f_n(a_n) a0=c,an++=fn(an)

这个命题第一次看可能有点蒙,不知所云。其实就是告诉我们一件事:可以借助自然数去递归地定义序列,而不用担心定义会发生重复冲突。这是因为Peano公理保证自然数不会出现循环回归(详情见2.1),也就不会出现 a n + + a_{n++} an++被重复定义(试想如果有循环回归,会如何导致重复定义?)。此外,多于增长支路上的元素也不会被定义分配 a n a_n an

有了递归定义,我们可以用递归的方式去看待我们希望加法运算能做的事情。首先,我们明确我们想要定义的加法是对增长运算的重复,比如让5加上3( 3 + 5 3+5 3+5)就是要对5做三次重复的增长运算,如果我们可以把它看成是先对5做两次增长运算,再增长一次,即 ( 2 + 5 ) + + (2+5)++ (2+5)++。如此重复,最后我们会得到

3 + 5 = ( 2 + 5 ) + + = ( ( 1 + 5 ) + + ) + + = ( ( ( 0 + 5 ) + + ) + + ) + + 3+5=(2+5)++=((1+5)++)++=(((0+5)++)++)++ 3+5=(2+5)++=((1+5)++)++=(((0+5)++)++)++

由此可见,让一个自然数m加上任意的另一个自然数n,都可以通过这种递归性,最终都可以变成 0 + m 0+m 0+m的若干次增长的形式。也就说,我们定义一个加法,只需要给出 0 + m 0+m 0+m,以及上述递归性即可。下面给出加法的定义:

设m,n都是自然数,定义m加上零为 0 + m : = m 0+m:=m 0+m:=m。现归纳假设已经定义好了m加上n,则m加上 n + + n++ n++定义为: ( n + + ) + m = ( n + m ) + + (n++)+m=(n+m)++ (n++)+m=(n+m)++

这里递归性可以看到就是让一个自然数m加上另一个自然数n的后继等于让自然数m加上自然数n的后继。(注意:我们只是需要0+m,而不知道m+0;递归性的定义我们也没有给出3+5=5+3,即交换律并没有包括在加法定义中,而是可以由加法定义推导证明出来的规律。)
有了如上定义,我们就可以进行任意两个自然数的加法运算了,比如 2 + m = ( 1 + m ) + + = ( ( 0 + m ) + + ) + + = ( m + + ) + + 2+m=(1+m)++=((0+m)++)++=(m++)++ 2+m=(1+m)++=((0+m)++)++=(m++)++。下面我们来证明加法交换律。

二、加法交换律

要证明任意两个自然数做加法都满足加法交换律,容易想到使用归纳法。因此我们要先证明: [ 1 ] : P ( 0 ) 为真: 0 + n = n + 0 [1]: P(0)为真:0+n=n+0 [1]:P(0)为真:0+n=n+0 [ 2 ] : 若 P ( m ) 为真,则 P ( m + + ) 为真 [2]: 若P(m)为真,则P(m++)为真 [2]:P(m)为真,则P(m++)为真。确认了思路,下面我们先证明[1]。

2.1 证明[1]:0+n=n+0

要证明任何自然数加上0等于0加上该自然数,那么同样会想到使用归纳法(凡是要证明对所有自然数成立的,根据Peano公理第五条,数学归纳原理,容易想到使用归纳法)。首先验证 P ’ ( 0 ) P’(0) P(0):

0 + 0 = 0 = 0 + 0 0+0=0=0+0 0+0=0=0+0为真
P ‘ ( n ) 为真: 0 + n = n + 0 = n P‘(n)为真:0+n=n+0=n P(n)为真:0+n=n+0=n,

下证 P ’ ( n + + ) P’(n++) P(n++)为真:

0 + m = m 0+m=m 0+m=m可知: 0 + n + + = n + + 0+n++=n++ 0+n++=n++
由加法定义的递归性可知: ( n + + ) + 0 = ( n + 0 ) + + = n + + (n++)+0=(n+0)++=n++ (n++)+0=(n+0)++=n++
因此, 0 + n + + = n + + = ( n + + ) + 0 0+n++=n++=(n++)+0 0+n++=n++=(n++)+0
证毕

2.2 证明[2]:P(m++)

有了 P ( 0 ) : 0 + n = n + 0 为真 P(0):0+n=n+0为真 P(0):0+n=n+0为真,我们再来证 P ( m + + ) P(m++) P(m++):

P ( m ) 为真: m + n = n + m P(m)为真:m+n=n+m P(m)为真:m+n=n+m
下证 P ( m + + ) P(m++) P(m++)为真: ( m + + ) + n = n + m + + (m++)+n=n+m++ (m++)+n=n+m++
由加法定义的递归性可知: ( m + + ) + n = ( m + n ) + + (m++)+n=(m+n)++ (m++)+n=(m+n)++
P ( m ) P(m) P(m)为真可知: ( m + + ) + n = ( m + n ) + + = ( n + m ) + + (m++)+n=(m+n)++=(n+m)++ (m++)+n=(m+n)++=(n+m)++

此时,如果我们再用加法递归性,会得到 ( n + + ) + m (n++)+m (n++)+m,这并不是我们要的 n + m + + n+m++ n+m++。似乎没有办法再证下去了。既然我们想要的是(n+m)++=n+m++,不妨先证明这个式子。

2.3 证明引理:(n+m)++=n+m++

P ′ ′ ( 0 ) : ( 0 + m ) + + = n + + = 0 + n + + P''(0):(0+m)++=n++=0+n++ P′′(0):(0+m)++=n++=0+n++为真
P ′ ′ ( n ) P''(n) P′′(n)为真: ( n + m ) + + = n + m + + (n+m)++=n+m++ (n+m)++=n+m++,下证 P ′ ′ ( n + + ) P''(n++) P′′(n++)为真
由加法递归性,有 ( ( n + + ) + m ) + + = ( ( n + m ) + + ) + + ((n++)+m)++=((n+m)++)++ ((n++)+m)++=((n+m)++)++
P ′ ′ ( n + + ) P''(n++) P′′(n++)为真,有 ( ( n + m ) + + ) + + = ( n + m + + ) + + ((n+m)++)++=(n+m++)++ ((n+m)++)++=(n+m++)++
再由加法递归性,有 ( n + m + + ) + + = ( n + + ) + m + + (n+m++)++=(n++)+m++ (n+m++)++=(n++)+m++
因此, ( ( n + + ) + m ) + + = ( n + + ) + m + + ((n++)+m)++=(n++)+m++ ((n++)+m)++=(n++)+m++,证毕。

现在,有了这条引理,刚刚 P ( m + + ) P(m++) P(m++)的证明就迎刃而解了,接着上面:

P ( m ) P(m) P(m)为真可知: ( m + + ) + n = ( m + n ) + + = ( n + m ) + + (m++)+n=(m+n)++=(n+m)++ (m++)+n=(m+n)++=(n+m)++
由引理: ( n + m ) + + = n + m + + (n+m)++=n+m++ (n+m)++=n+m++可知: ( n + m ) + + = n + ( m + + ) (n+m)++=n+(m++) (n+m)++=n+(m++)
因此: ( m + + ) + n = n + ( m + + ) (m++)+n=n+(m++) (m++)+n=n+(m++) P ( m + + ) P(m++) P(m++)为真,加法交换律得证。


总结

本文给出了自然数的递归定义命题,借此递归地定义了加法。加法定义的本质体现为1)为一个数加上零,2)以及加法是重复递归的增长运算。由此定义的加法,就足以推出我们所熟知的诸多运算律,比如本文证明的加法交换律。可见加法是一种对称的运算,这种对称性是它具有的性质,而不需要在定义中给出。

内容概要:本文档详细介绍了Android开发中内容提供者(ContentProvider)的使用方法及其在应用间数据共享的作用。首先解释了ContentProvider作为四大组件之一,能够为应用程序提供统一的数据访问接口,支持不同应用间的跨进程数据共享。接着阐述了ContentProvider的核心方法如onCreate、insert、delete、update、query和getType的具体功能应用场景。文档还深入讲解了Uri的结构和作用,它是ContentProvider中用于定位资源的重要标识。此外,文档说明了如何通过ContentResolver在客户端应用中访问其他应用的数据,并介绍了Android 6.0及以上版本的运行时权限管理机制,包括权限检查、申请及处理用户的选择结果。最后,文档提供了具体的例,如通过ContentProvider读写联系人信息、监听短信变化、使用FileProvider发送彩信和安装应用等。 适合人群:对Android开发有一定了解,尤其是希望深入理解应用间数据交互机制的开发者。 使用场景及目标:①掌握ContentProvider的基本概念和主要方法的应用;②学会使用Uri进行资源定位;③理解并现ContentResolver访问其他应用的数据;④熟悉Android 6.0以后版本的权限管理流程;⑤掌握FileProvider在发送彩信和安装应用中的应用。 阅读建议:建议读者在学习过程中结合际项目练习,特别是在理解和现ContentProvider、ContentResolver以及权限管理相关代码时,多进行代码调试和测试,确保对每个知识点都有深刻的理解。
开发语言:Java 框架:SSM(Spring、Spring MVC、MyBatis) JDK版本:JDK 1.8 或以上 开发工具:Eclipse 或 IntelliJ IDEA Maven版本:Maven 3.3 或以上 数据库:MySQL 5.7 或以上 此压缩包包含了本毕业设计项目的完整内容,具体包括源代码、毕业论文以及演示PPT模板。 项目配置完成后即可运行,若需添加额外功能,可根据需求自行扩展。 运行条件 确保已安装 JDK 1.8 或更高版本,并正确配置 Java 环境变量。 使用 Eclipse 或 IntelliJ IDEA 打开项目,导入 Maven 依赖,确保依赖包下载完成。 配置数据库环境,确保 MySQL 服务正常运行,并导入项目中提供的数据库脚本。 在 IDE 中启动项目,确认所有服务正常运行。 主要功能简述: 用户管理:系统管理员负责管理所有用户信息,包括学生、任课老师、班主任、院系领导和学校领导的账号创建、权限分配等。 数据维护:管理员可以动态更新和维护系统所需的数据,如学生信息、课程安排、学年安排等,确保系统的正常运行。 系统配置:管理员可以对系统进行配置,如设置数据库连接参数、调整系统参数等,以满足不同的使用需求。 身份验证:系统采用用户名和密码进行身份验证,确保只有授权用户才能访问系统。不同用户类型(学生、任课老师、班主任、院系领导、学校领导、系统管理员)具有不同的操作权限。 权限控制:系统根据用户类型分配不同的操作权限,确保用户只能访问和操作其权限范围内的功能和数据。 数据安全:系统采取多种措施保障数据安全,如数据库加密、访问控制等,防止数据泄露和非法访问。 请假审批流程:系统支持请假申请的逐级审批,包括班主任审批和院系领导审批(针对超过三天的请假)。学生可以随时查看请假申请的审批进展情况。 请假记录管理:系统记录学生的所有请假记录,包括请假时间、原因、审批状态及审批意见等,供学生和审批人员查询。 学生在线请假:学生可以通过系统在线填写请假申请,包括请假的起止日期和请假原因,并提交给班主任审批。超过三天的请假需经班主任审批后,再由院系领导审批。 出勤信息记录:任课老师可以在线记录学生的上课出勤情况,包括迟到、早退、旷课和请假等状态。 出勤信息查询:学生、任课老师、班主任、院系领导和学校领导均可根据权限查看不同范围的学生上课出勤信息。学生可以查看自己所有学年的出勤信息,任课老师可以查看所教班级的出勤信息,班主任和院系领导可以查看本班或本院系的出勤信息,学校领导可以查看全校的出勤信息。 出勤统计分析:系统提供出勤统计功能,可以按班级、学期等条件统计学生的出勤情况,帮助管理人员了解学生的出勤状况
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值