【coq】函数语言设计 练习题inductionlists 总结
induction
这一题如果直接写,非常麻烦
正确的做法
先证明
经验总结:
在遇到可重用的关键模块时,分离之。
关于 nat plus 熟练证明交换律、分配律、结合律、零加定律
常用规律
零加定律( n+0=n )( 0+n=n 是定义)
加法分配律
变种
加法交换律
加法结合律
其他
单射性
下面和加法类似,不表
零乘定律
乘法交换律
乘法分配律
乘法结合律
在证明过程中,如果碰到特别困难的式子,可以用 assert 提出假设,或者提前写好 Theorem 再证明
list( 主要考对 induction , fixpoint 以及各种操作的的定义 )
对 list 的操作(构造子 cons )
定义 list
nat :: list
list ++ list
repeat
长度
append
append 的性质
结合律 assoc
append length
取头
取尾
左为多态版本
去除 0
[![AcomG+yzEuAxAAAAAElFTkSuQmCC][18]][18]
提取奇数
[![D2Bf+MSt4S+fAAAAAElFTkSuQmCC][19]][19]
奇数个数
[![x+JXEcIKR8ymgAAAABJRU5ErkJggg==][20]][20]
法一:递归重新定义
法二:先求奇数数组,再计算新数组长度
提取奇数位(参考 alternative )
两个 list 交替插入
将两个列表交织成一个,在从第一个列表中抽取的元素和从第二个列表中抽取的元素之间交替进行。
递归,列表 ++ 列表
[![ukAAAAASUVORK5CYII=][21]][21]
删除某个元素
[![tV+6yae+i1eLT0h7nqmV3dz+k9Ni7d67bu98v7POF+uX+31bpL7OdysnAIAADXUW4wGIhBzrKOC4X7YgQAAGBDrKx8BgAAcIkQzwAAIAsQzwAAIAsQzwAAIAsQzwAAIAsQzwAAIAsQzwAAIAsQzwAAIAsQzwAAIAsQzwAAIAsQzwAAIAsQzwAAIAsQzwAAIAsQzwAAYPMR8v8B2i5kPaA1M9gAAAAASUVORK5CYII=][22]][22]
倒置
[![wcvlExmL2jM8AAAAABJRU5ErkJggg==][23]][23]
倒置的性质
倒置 l++[n]
双重倒置
排序( homework07- sort )
Fixpoint insert (i : nat) (l : list nat) :=
match l with
| nil => i::nil
| h::t => if i <=? h
then i::h::t
else h::insert i t
end.
Fixpoint sort (l : list nat) :=
match l with
| nil => nil
| h::t => insert h (sort t)
end.
【coq】函数语言设计 练习题inductionlists 总结相关推荐
- 【历史上的今天】6 月 5 日:洛夫莱斯和巴贝奇相遇;公钥密码学先驱诞生;函数语言设计先驱出生
整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 6 月 5 日,世界环境日.1972 年 6 月 5 日至 16 日,联合国人类环境会议在斯德哥尔摩 ...
- c程序语言设计练习题,C语言程序设计练习题(含程序及参考答案)
<C语言程序设计练习题(含程序及参考答案)>由会员分享,可在线阅读,更多相关<C语言程序设计练习题(含程序及参考答案)(47页珍藏版)>请在人人文库网上搜索. 1.1.定义一个 ...
- c语言试卷及答案 英文,C语言设计经典英文练习题
<C语言设计经典英文练习题>由会员分享,可在线阅读,更多相关<C语言设计经典英文练习题(12页珍藏版)>请在人人文库网上搜索. 1.C Practice Print 9*9 m ...
- C 语言的可变参数表函数的设计
首先在介绍可变参数表函数的设计之前,我们先来介绍一下最经典的可变参数表printf函数的实现原理. 一.printf函数的实现原理 在C/C++中,对函数参数的扫描是从后向前的.C/C++的函数参数是 ...
- 将军今天讲c语言了吗第六,计算机c语言 第六章:函数 教学设计(修改).doc
<C语言程序设计>之 ----- "函数"教学设计 贵州交通技师学院 张 红 <C语言程序设计>之 ----- "函数"教学设计 [教材 ...
- c语言中如何用sqar函数,简易函数信号发生器设计_毕业论文.doc
简易函数信号发生器设计 PAGE PAGE 2 简易函数信号发生器设计 摘要:信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用.这次的设计分为五个模块:单片机控制及显示模块.数模转换 ...
- c语言cgi函数库,cgic: 为C语言设计CGI地C函数库
cgic: 为C语言设计CGI地C函数库 cgic: 为C语言编写CGI的C函数库 ---由Thomas Boutell开发 ************************************* ...
- 9. 设计二个函数分别计算sinx和cosx_从并发模型看 Go 的语言设计
传统的程序语言设计都不会将输入输出作为语言的核心,但 Tony Hoare 认为输入输出是基本的编程原语,且通信顺序进程(Communicating sequential processes,CSP) ...
- c语言高中题目及答案,高中信息技术 C语言程序设计练习题 选修1
专心 爱心 用心1 C C 语言程序设计语言程序设计 练习题练习题 一 单项一 单项选择题选择题 单项选择题要求从给出的四个备选答案中 选出一个最符合题意的答案 本类习题主要检 查对 C 语言基本概念 ...
- c语言程序编写字体,c语言程序设计练习题
c语言程序设计练习题 篇一:c语言程序设计基础单元总结与练习题及答案 <C语言程序设计>单元总结与练习题 答 案 单元一 程序设计宏观认识 单元总结提升 本单元中,核心内容有C语言程序框架 ...
最新文章
- 北京超级云计算GPU服务器的使用教程
- 利用Python编辑一个发送邮件的脚本
- 关于简历和面试【整理自知乎】
- 3.15	送货通知单
- 继电反馈法自整定_用STM32F407玩控制—继电反馈法PID参数自动整定
- PHP实现Restful风格的API(转)
- flash绘制荷花多个图层_《荷花》Flash动画课件
- wifi密码破解软件,谨慎使用!
- HDU6069(区间筛)
- c语言银行信用卡卡管理系统,自编自导多人多卡信用卡管理系统
- 零基础学C语言(第一天)
- allegro-Could not create new pin inst: PA15/JTDI.
- 白盒与黑盒测试什么区分
- oracle 8i卸载,如何彻底卸载ORACLE8I?
- uva 1362 区间DP
- DYA9面向对象中--多态
- 安徽省省二c语言题库及答案,07_06省二级选择题题库C语言(含答案)
- 创新封基涨幅居前 折价率再度上升
- java模拟转账_事务-模拟银行用户转账
- 微信小程序之实时聊天系统——页面介绍
热门文章
- java面试宝典及答案
- linux ubuntu 22.04卸载firefox火狐浏览器正确方式
- C#编写一个简单串口通讯上位机
- Python代码画喜羊羊怎么画_青少年编程:用Python探究数学(1)
- 30天自制操作系统-2
- 解决mysqld: [ERROR] Found option without preceding group
- HttpClient模拟登陆并获取指定页面的内容
- 信息检索1.2--几个实用的限定词,site title URL
- 数理经济学中的无穷小方法
- MySQL数据库getdate_MySQL数据库 DateTime 默认值是不是用getdate