已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
证明辅助工具Coq简介,郭宇 2010-07-20 中科大-耶鲁高可信软件联合研究中心,/summer-school,课程主页,/summer-school,问题,如何表示数学证明?,Miracles often occur,费马大定理 (1673),Xn = Yn + Zn 当n2时无整数解 A. Wiles 1993 证明? 超过一百页 世界上能看懂的人屈指可数 原始证明有错,一年多以后更正,四色定理,K. Appel & W. Haken 1976年证明 证明? 分1,936种情况讨论 利用计算机程序来自动分析,不产生证明 一些数学家拒绝承认 仍然难以检查证明是否正确,四色定理,G. Gonthier & B. Werner 2004年证明 证明? 完整详细的Coq证明 机器可检查 没有跳过任何步骤 证明检查程序规模小,高可信软件,嵌入式系统内核seL4 G. Klein 等人 OSDI09 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代码编写并证明 抽取出OCaml代码运行,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,Coq 命令 (以. 结尾),类型检查,每一个合式的项都有一个类型 每一个类型也是一个项 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 nat - nat Coq Unset Printing All. Coq Eval compute in (plus 7 8). = 15 : nat,自然数加法,Coq 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 false | false = true end. Coq Eval compute in (negb true).,示例一:布尔值计算,Coq b | false = false end. Coq Eval compute in (andb true false).,示例一:布尔值计算,Coq b | false = false end. Coq Check (andb). Coq Check (andb true).,示例一:布尔值计算,Coq 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 defined nat_rect is defined nat_ind is defined nat_rec is defined,偶数判定,Fixpoint 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.,证明构造的编程,打印证明,Theorem T1 : A - A. Coq H : A - A,Curry-Howard 同构 类型形如 A -B 的证明是一个函数 以命题A的证明为参数,返回B的证明,程序即证明,Definition T1 := fun (H : A) = H. Check T1.,程序即证明,Definition T1:= fun (H : A) = T1 H. Check T1.,证明的构造方式并不唯一 构造 Construction,Definition 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 的“构造”,合取连接词,Theorem T3 : A / B - A. Proof fun (H : A / B) = (proj1 H).,Theorem T4 : A / B - B. Proof fun (H : A / B) = (proj2 H).,析取连接词,Theorem T6 : A / B - A / B. Proof ?,Theorem T5 : A - A / B. Proof fun (H : A) = or_intro1 H.,析取连接词,Theorem T6 : A / B - A / B. Proof fun (H : A / B) = T5 (T3 H).,Theorem T5 : A - A / B.,Theorem T3 : A / B - A.,全称量词,Theorem T7 : forall A : Prop, A - A.,Curry-Howard 同构 类型形如 forall x :A, B 的证明仍然是一个函数 以 x 为参数,返回B的证明,全称量词,Theorem T7 : forall A : Prop, A - A. Proof fun (A : Prop) = fun (x : A) = x.,【思考】下面证明构造的含义: Definition T4 := T3 (forall A : Prop, A),全称量词,Theorem T7 : forall A : Prop, A - A.,【思考】下面证明构造的含义: Definition T8 := T7 (forall A : Prop, A),T8 : False - False,练习,Theorem T9 : forall A B C: Prop, (A - B) - (B - C) - (A - C). Proof ?.,函数复合,归纳,归纳谓词,Inductive EqNat : nat - nat - Prop := | OEq : EqNat O O | SEq : forall m n : nat, EqNat m n - EqNat (S m) (S n).,P (m, n) iff m = n,归纳谓词,问题:证明 EqNat 0 0 ? 写出类型为EqNat 0 0的证明构造 答案: OEq,Lemma LEqNat1 : EqNat O O. Proof OEq.,Definition LEqNat1 : EqNat O O := OEq.,归纳谓词,问题:证明 EqNat 1 1 ? 写出类型为EqNat 1 1的证明构造,Lemma LEqNat1 : EqNat 1 1. Proof (SEq 0 0 LEqNat0).,Definition LEqNat1 : EqNat O O := (SEq 0 0 LEqNat0),Inductive EqNat : nat - nat - Prop := | OEq : EqNat O O | SEq : forall m n : nat, EqNat m n - EqNat (S m) (S n).,归纳谓词,练习:证明 EqNat 2 2 ?,Inductive EqNat : nat - nat - Prop := | OEq : EqNat O O | SEq : forall m n : nat, EqNat m n - EqNat (S m) (S n).,归纳谓词,问题:证明 forall n, EqNat n n ?,Definition LEqNatn : forall n, EqNat n n := ?,Inductive EqNat : nat - nat - Prop := | OEq : EqNat O O | SEq : forall m n : nat, EqNat m n - EqNat (S m) (S n).,归纳谓词,问题:证明 forall n, EqNat n n ? 答案:递归函数,Fixpoint LEqNatn (n : nat) : EqNat n n := match n return (EqNat n n) with | O = OEq | S n = SEq n n (LEqNatn n) end.,Inductive EqNat : nat - nat - Prop := | OEq : EqNat O O | SEq : forall m n : nat, EqNat m n - EqNat (S m) (S n).,归纳谓词,问题:证明 forall n, EqNat n n ? 交互式证明(演示),Lemma LEqNatn : forall n, EqNat n n.,归纳谓词,交互式证明产生的证明构造?,LEqNatn = fun n : nat = nat_ind (fun n0 : nat = EqNat n0 n0) OEq (fun (n0 : nat) (IHn : EqNat n0 n0) = SEq n0 n0 IHn) n : forall n : nat, EqNat n n,Print LEqNatn.,Lemma LEqNatn : forall n, EqNat n n.,通用归纳原理,nat_rect = fun (P : nat - Type) (f : P 0) (f0 : forall n : nat, P n - P (S n) = fix F (n : nat) : P n := match n as n0 return (P n0) with | 0 = f | S n0 = f0 n0 (F n0) end : forall P : nat - Type, P 0 -
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 热射病诊疗指南:ICU的救治核心与关键决策
- 素养课习题及全面答案解析
- 探秘恐怖地图测试题及答案
- 高中生必知的投资面试题和答案
- 药品经营监管考核试题及答案呈现
- 临床检验中职必做试题及答案集锦
- 贸促会笔试常见题目与答案
- 血液滤过考试题目及精准答案
- 2025-2026学年德阳市中江县四年级数学下学期期中调研模拟试题(含答案)
- 2025-2026学年岑溪市数学四下期末教学质量检测试题(含答案解析)
- 毕业设计教学课件
- 小学生如何学好英语课件
- 2025年中国HUB集线器市场调查研究报告
- T/CCMA 0151-2023氢燃料电池工业车辆
- 颅内动脉瘤栓塞术后的护理
- 储能电站施工培训手册
- 发酵黄精风味与活性物质变化及其缓解IBD的效果和机制研究
- 育婴师(高级)资格考试题库
- DLT 572-2021 电力变压器运行规程
- 宅基地转让协议书
- AQ 1115-2018 煤层气地面开发建设项目安全设施设计审查和竣工验收规范(正式版)
评论
0/150
提交评论