40 likes | 189 Views
证明生成. 目前提供了接口调用供测试 ProverFront.proveVC ’ 生成 ” 伪 ” 证明项 res= tmp | tmp -> 1 true | tmp -> 1 fun ( res:Z )( tmp:ptr ):= False_ind ( assertion_infer ( mkF (res= tmp )( tmp |->1)) ( mkF (True)( tmp |->1))) false_axiom . 依赖 assertion.v 中的定义 改动部分 prover /front.sml 获得 argmuments
E N D
证明生成 • 目前提供了接口调用供测试 • ProverFront.proveVC’ • 生成”伪”证明项 • res=tmp | tmp -> 1 true | tmp -> 1 • fun (res:Z)(tmp:ptr):= False_ind (assertion_infer (mkF (res=tmp)(tmp|->1)) • (mkF (True)(tmp|->1))) false_axiom. • 依赖assertion.v中的定义 • 改动部分 • prover/front.sml • 获得argmuments • prover/common/common.sml • 转换到Coq中的term
存在的问题 • lseg在Coq中的定义是 • Fixpointlseg(head:ptr)(tail:ptr)(elem:listval) • Definition slist(head : ptr)(elem : list val):= • lseg head null elem. • 转换到term时需要换名, 增加 “elem”, 目前有bug
证明生成 • 记录证明步骤 • 与Assertion对应的Coq实现 • assertion.v • tree.v • 记录对应tactic的处理 • exists • 生成证明项
接下来的工作 • 调试调用接口 • 完善assertion.v中的定义,考虑lseg • 证明项生成