80 likes | 260 Views
Cross-Abstraction Linking of Certified Programs. 链接在不同机器模型证明的框架 提供通用的程序证明框架 Trans Rule 对编译器的限制 Order Preserving Compiler Repr -based compiler. 机器的定义和断言都看成是状态转换的 Action, 因此 Action 中包括计算和断言 元语言. Order-Preserving Compilation. 需要 证明 编译器 满足 的性质 特殊情况 - REPR Compilation
E N D
Cross-Abstraction Linking of Certified Programs • 链接在不同机器模型证明的框架 • 提供通用的程序证明框架 • Trans Rule • 对编译器的限制 • Order Preserving Compiler • Repr-based compiler
机器的定义和断言都看成是状态转换的Action, 因此Action中包括计算和断言 • 元语言
Order-Preserving Compilation • 需要证明编译器满足的性质 • 特殊情况- REPR Compilation • 即可以找到两个机器模型下状态的对应关系, 容易得到这样的编译器,同时它满足上述性质
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?
可以简化证明翻译的过程 • 需要进行的工作 • 文中的证明框架的表示和证明 • 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的状态对应
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的进展性和终止性
接下来的工作 • 根据新的Assertion定义方法进行证明生成 • 完善Assertion相关的定理证明