证明辅助工具Coq简介.ppt
《证明辅助工具Coq简介.ppt》由会员分享,可在线阅读,更多相关《证明辅助工具Coq简介.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、证明辅助工具Coq简介郭宇2010-07-20中科大-耶鲁高可信软件联合研究中心http:/summer-school 课程主页http:/summer-school 问题如何表示数学证明?Miracles often occur费马大定理(1673)Xn=Yn+Zn 当n2时无整数解A.Wiles1993证明?超过一百页世界上能看懂的人屈指可数原始证明有错,一年多以后更正四色定理K.Appel&W.Haken 1976年证明证明?分1,936种情况讨论利用计算机程序来自动分析,不产生证明一些数学家拒绝承认仍然难以检查证明是否正确四色定理G.Gonthier&B.Werner2004年证明证明
2、?完整详细的Coq证明机器可检查没有跳过任何步骤证明检查程序规模小高可信软件嵌入式系统内核seL4G.Klein 等人OSDI09 Best Paper8700 lines of C经过形式化验证证明?机器可检查证明200,000 lines of Isabelle scriptVeriSoft芯片嵌入式内核汽车电子控制单元应用宝马汽车的应急呼叫系统证明:Isabelle 2005CompCert经过完全证明的C语言编译器Xavier Leroy CACM 09Power PC backend证明?机器可检查证明使用Coq代码编写并证明抽取出OCaml代码运行Certified Softwar
3、eCertified Software=Program+ProofCoq是什么一个证明系统编写证明,检查证明一套形式化语言编写数学定义、算法、定理类型化 演算一个环境交互式证明其它证明辅助工具Isabelle 2005TwelfAgdaCoq介绍Coq环境函数式编程逻辑推理归纳运行 coq命令行解释器coqtop编译器 coqc用户界面CoqIDE用户界面emacs+proofgeneral(推荐)运行 Coq运行 coqtop检查一个表达式的类型Coq Check 3.3:natCoq Check 3+true.Error:The term“true”has type“bool”While
4、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 :natCoq Set Printing All.Coq Print b.b=plus a(S(S(S(S(S(S O):nat自然数加法Coq nat-natCoq Unset Printing All.Coq Eval compute in(plus 7 8).=15 :nat自然数加法Coq m
5、|S p=S(plus p m)end :nat-nat-natArgument scopes are nat_scope nat_scope函数式语言编程函数式语言编程函数是一等公民First-class可以做参数,也可以作为函数返回值高阶函数示例一:布尔值计算Coq Inductive bool:Set:=true:bool|false:bool.bool is definedbool_rect is definedbool_ind is definedbool_rec is definedCoq Print bool.示例一:布尔值计算Coq Inductive bool:Set:=tr
6、ue:bool|false:boolCoq false|false=true end.Coq Eval compute in(negb true).示例一:布尔值计算Coq Inductive bool:Set:=true:bool|false:boolCoq b|false=false end.Coq Eval compute in(andb true false).示例一:布尔值计算Coq Inductive bool:Set:=true:bool|false:boolCoq b|false=false end.Coq Check(andb).Coq Check(andb true).示例
7、一:布尔值计算Coq Inductive bool:Set:=true:bool|false:boolCoq bool:=match a with|true=fun(b:bool)=b|false=fun(b:bool)=false end.Coq Check(andb).Coq Check(andb true).示例一:布尔值计算Coq bool):bool-bool:=fun(a:bool)=f(f a).Coq Eval compute in(double negb true).示例二:自然数Coq nat.nat is definednat_rect is definednat_ind
8、 is definednat_rec is defined偶数判定FixpointFixpoint evenb(n:nat):bool:=match n with|O=true|S O=false|S(S n)=evenb n end.加法原始递归函数(Primitive Recursion)保证函数的终止性Fixpoint plus(n:nat)(m:nat)struct n:nat:=match n with|O=m|S n=S(plus n m)end.基本逻辑推理原子命题定义Variables A B C:Prop.定理证明演示Theorem T1:A-A.证明构造的编程打印证明The
9、orem T1:A-A.Coq H :A-ACurry-Howard 同构类型形如 A-B 的证明是一个函数以命题A的证明为参数,返回B的证明程序即证明Definition T1:=fun(H:A)=H.Check T1.程序即证明Definition T1:=fun(H:A)=T1 H.Check T1.证明的构造方式并不唯一构造 ConstructionDefinition T1:=fun(H:A)=H.Check T1.练习Theorem T2:A-B-A.Proof?答案Theorem T2:A-B-A.Proof fun(H:A)=fun(H2:B)=H.T2是定理 A-B-A 的“
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 证明 辅助工具 Coq 简介
限制150内