- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
证明辅助工具Coq介绍.ppt
证明辅助工具Coq简介 郭宇 2010-07-20 中科大-耶鲁高可信软件联合研究中心 课程主页 /summer-school 问题 如何表示数学证明? 费马大定理 (1673) Xn = Yn + Zn 当n2时无整数解 A. Wiles 1993 证明? 超过一百页 世界上能看懂的人屈指可数 原始证明有错,一年多以后更正 四色定理 K. Appel W. Haken 1976年证明 证明? 分1,936种情况讨论 利用计算机程序来自动分析,不产生证明 一些数学家拒绝承认 仍然难以检查证明是否正确 四色定理 G. Gonthier B. Werner 2004年证明 证明? 完整详细的Coq证明 机器可检查 没有跳过任何步骤 证明检查程序规模小 高可信软件 嵌入式系统内核——seL4 G. Klein 等人 OSDI’09 Best Paper 8700 lines of C 经过形式化验证 证明? 机器可检查证明 200,000 lines of Isabelle script VeriSoft 芯片 嵌入式内核 汽车电子控制单元 应用 宝马汽车的应急呼叫系统 证明: Isabelle 2005 CompCert 经过完全证明的C语言编译器 Xavier Leroy [CACM ’09] Power PC backend 证明? 机器可检查证明 使用Coq代码编写并证明 抽取出O’Caml代码运行 Certified Software Certified Software = Program + Proof Coq是什么 一个证明系统 编写证明,检查证明 一套形式化语言 编写数学定义、算法、定理 类型化 ? 演算 一个环境 交互式证明 其它证明辅助工具 Isabelle 2005 Twelf Agda Coq介绍 Coq环境 函数式编程 逻辑推理 归纳 运行 coq 命令行解释器 coqtop 编译器 coqc 用户界面 CoqIDE 用户界面 emacs + proofgeneral(推荐) 运行 Coq 运行 coqtop 检查一个表达式的类型 Coq Check 3. 3 : nat Coq Check 3 + 5. 3+5 : nat 类型检查 每一个合式的项都有一个类型 每一个类型也是一个项 Check 3 + true. Error: The term “true” has type “bool” While it is expected to have type “nat”. 定义 Definition a := 5. a is defined Definition b := a + 6. b is defined Eval compute in b. = 11 : nat Coq 命令——打印 Coq Print b. b = a + 6 : nat Coq Set Printing All. Coq Print b. b = plus a (S (S (S (S (S (S O)))))) : nat 自然数加法 Coq Check plus. plus : nat - nat - nat Coq Unset Printing All. Coq Eval compute in (plus 7 8). = 15 : nat 自然数加法 Coq Print plus. plus = fix plus (n m : nat) : nat := match n with | 0 = m | S p = S (plus p m) end : nat - nat - nat Argument scopes are [nat_scope nat_scope] 函数式语言编程 函数式语言编程 函数是一等公民 First-class 可以做参数,也可以作为函数返回值 高阶函数 示例一:布尔值计算 Coq Inductive bool : Set := true : bool | false : bool. bool is defined bool_rect is defined bool_ind is defined bool_rec is defined Coq Print bool. 示例一:布尔值计算 Coq Inductive bool : Set := true : bool |
您可能关注的文档
最近下载
- 汽修公司汽车修理汽车保养突发环境应急预案.docx VIP
- 某水库除险加固工程施工组织设计.doc VIP
- 全国预防接种技能竞赛理论训练题库及答案(中华人民共和国疫苗管理法212题).docx VIP
- 2025年(完整)人教精通版小学英语3-6年级单词词汇表 .pdf VIP
- 天翼云认证解决方案架构师考试题及答案(新版).doc VIP
- 港迪HF659系列变频器使用说明书V100(G20200812).pdf VIP
- 水库除险加固工程施工组织设计120页.doc VIP
- 《农业政策热点培训》课件.ppt VIP
- 申凌门机NSFC01-01A控制器操作手册.pdf
- 从大食物观角度出发的中国饲料粮供给安全问题探讨.docx VIP
文档评论(0)