1 / 8

Cross-Abstraction Linking of Certified Programs

Cross-Abstraction Linking of Certified Programs. 链接在不同机器模型证明的框架 提供通用的程序证明框架 Trans Rule 对编译器的限制 Order Preserving Compiler Repr -based compiler. 机器的定义和断言都看成是状态转换的 Action, 因此 Action 中包括计算和断言 元语言. Order-Preserving Compilation. 需要 证明 编译器 满足 的性质 特殊情况 - REPR Compilation

arva
Télécharger la présentation

Cross-Abstraction Linking of Certified Programs

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cross-Abstraction Linking of Certified Programs • 链接在不同机器模型证明的框架 • 提供通用的程序证明框架 • Trans Rule • 对编译器的限制 • Order Preserving Compiler • Repr-based compiler

  2. 机器的定义和断言都看成是状态转换的Action, 因此Action中包括计算和断言 • 元语言

  3. Order-Preserving Compilation • 需要证明编译器满足的性质 • 特殊情况- REPR Compilation • 即可以找到两个机器模型下状态的对应关系, 容易得到这样的编译器,同时它满足上述性质

  4. Example • /*@ x=1 @*/ • intfoo(int x) • { • x=x+1; • return x; • } • /*@ res=2 @*/ Code: foo :: = x=x+1;return x Specification: [foo] ::= [call] º (x~>x+1) º (res~>x) º [exit] Certification: M(clike) U Spec(foo) |- Code(foo):Spec(foo) To Cminor: Action repr& repr-1 To ASM?

  5. 可以简化证明翻译的过程 • 需要进行的工作 • 文中的证明框架的表示和证明 • Clike的机器模型 • State: (Memory, Variable, Block) • Memory: Lable -> Int • Perform: assign | binop | uniop | loop | call | ret | if | skip • Machine • assign v1 v2:((Encode(Block))=assign) ?º ( V(v1)~>V(v2)) º Block~>NextBlk • …… • Cminor到ASM的状态对应

  6. Separation Logic的Coq实现 • Assertion定义 • Record formula : Type:= mkF{ pure : Prop ;sep : prop }. • Definition assertion : Type := list formula. • 演算规则 • Inductive formula_infer(f1 f2:formula):Prop:= • | f_infer : let header:=(f1.(pure)/\f2.(pure)) in • (f1.(pure)->f2.(pure))-> • (([header]**f1.(sep))~~>([header]**f2.(sep)))->formula_infer f1 f2. • Inductive assertion_infer ….. • Frame Rule (Second Order) • assertion_infer的进展性和终止性

  7. 接下来的工作 • 根据新的Assertion定义方法进行证明生成 • 完善Assertion相关的定理证明

More Related