-
Notifications
You must be signed in to change notification settings - Fork 0
Home
yylidiw edited this page Nov 7, 2020
·
5 revisions
Welcome to the prj2_2020 wiki!
选题四:静态检查与程序验证
阅读 Prusti 论文到第 7 页,理解 rust 类型系统中的 ownership 和 Capabilitie 的概念,开始了解 PCS 算法。(an algorithm to compute precise summaries of the capabilities held at each program point, which we call place capability sets. )
下一步计划:
尽快在下周阅读完论文。
10.31 和助教讨论记录
根据今晚讨论的结果,我们换一个题目~下面是一些提供给你们的资料,以让你们明白自己大致是要做什么。建议先花1~3周的时间了解一下,就可以正式开始写代码了hhhhh
1. 读教材 CoC 的 Part I,这是你们需要的背景知识
2. 体验一下 Dafny,这是一个非常成熟的验证语言,你们要做的是一个很小的 Dafny
3. 学习一下 Z3 的用法,这是你们需要调用的后端
4. 看一下 Mike He 的 project,这是你们的 baseline:https://zhuanlan.zhihu.com/p/139855937
在 minidecaf step8 的基础上做形式化验证
VARIABLE a,b,c,d
{{ REQUIRES TRUE }}
{{ ENSURES c == 45 }}
BEGIN
a = 10
b = 0
c = 0
WHILE b < a DO
{{ INVARIANT c == b*(b-1)/2 }}
BEGIN
c = c + b
b = b + 1
END
END