Class invariants -- consistency constraints preserved by every operation on objects of a given type -- are fundamental to building, understanding and verifying object-oriented programs. For verification, however, they raise difficulties, which have not yet received a generally accepted solution. The present work introduces a proof rule meant to address these issues and allow verification tools to benefit from invariants. It clarifies the notion of invariant and identifies the three associated problems: callbacks, furtive access and reference leak. As an example, the 2016 Ethereum DAO bug, in which $50 million were stolen, resulted from a callback invalidating an invariant. The discussion starts with a simplified model of computation and an associated proof rule, demonstrating its soundness. It then removes one by one the three simplifying assumptions, each removal raising one of the three issues, and leading to a corresponding adaptation to the proof rule. The final version of the rule can tackle tricky examples, including "challenge problems" listed in the literature.


翻译:类不变量——对给定类型对象的每次操作都保持一致性的约束——是构建、理解和验证面向对象程序的基础。然而,在验证过程中,它们会带来尚未得到普遍接受的解决方案的困难。本研究引入了一种证明规则,旨在解决这些问题,使验证工具能够受益于不变量。它阐明了不变量的概念,并识别出三个相关的问题:回调、隐蔽访问和引用泄漏。以2016年价值5000万美元被盗的以太坊DAO漏洞为例,该漏洞源于使不变量失效的回调。讨论从简化的计算模型和相关的证明规则开始,展示了其可靠性。然后逐一移除三个简化假设,每次移除都会引发三个问题之一,并导致对证明规则的相应调整。该规则的最终版本能够处理棘手的示例,包括文献中列出的“挑战性问题”。

0
下载
关闭预览

相关内容

【硬核书】矩阵代数基础,248页pdf
专知会员服务
88+阅读 · 2021年12月9日
【干货书】机器学习速查手册,135页pdf
专知会员服务
127+阅读 · 2020年11月20日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
164+阅读 · 2019年10月12日
强化学习最新教程,17页pdf
专知会员服务
182+阅读 · 2019年10月11日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
105+阅读 · 2019年10月9日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
41+阅读 · 2019年10月9日
VCIP 2022 Call for Demos
CCF多媒体专委会
1+阅读 · 2022年6月6日
征稿 | International Joint Conference on Knowledge Graphs (IJCKG)
开放知识图谱
2+阅读 · 2022年5月20日
Hierarchically Structured Meta-learning
CreateAMind
27+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
ResNet, AlexNet, VGG, Inception:各种卷积网络架构的理解
全球人工智能
20+阅读 · 2017年12月17日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
Arxiv
0+阅读 · 2023年3月31日
Arxiv
0+阅读 · 2023年3月30日
Arxiv
25+阅读 · 2020年3月11日
VIP会员
最新内容
《基于深度强化学习的反无人机技术研究》178页
专知会员服务
0+阅读 · 今天16:06
“史诗怒火”行动与“AI中心战”模式的浮现
专知会员服务
0+阅读 · 今天15:31
【CVPR2026教程】扩散模型的解析理解
专知会员服务
0+阅读 · 今天14:49
马赛克战:俄乌战场透析
专知会员服务
13+阅读 · 今天4:12
《利用人工智能增强军事决策》
专知会员服务
4+阅读 · 今天4:09
《自动机器学习在军事数据耕耘法中的应用》
专知会员服务
6+阅读 · 今天4:02
为何指挥所生存能力要求范式转变
专知会员服务
5+阅读 · 今天3:54
打造“新蛛网”模式与高科技动员
专知会员服务
4+阅读 · 今天3:33
“蛛网”行动一周年:远程无人机战争
专知会员服务
3+阅读 · 今天3:23
【剑桥博士论文】智能体-环境协同优化
专知会员服务
7+阅读 · 6月9日
相关资讯
VCIP 2022 Call for Demos
CCF多媒体专委会
1+阅读 · 2022年6月6日
征稿 | International Joint Conference on Knowledge Graphs (IJCKG)
开放知识图谱
2+阅读 · 2022年5月20日
Hierarchically Structured Meta-learning
CreateAMind
27+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
ResNet, AlexNet, VGG, Inception:各种卷积网络架构的理解
全球人工智能
20+阅读 · 2017年12月17日
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
Top
微信扫码咨询专知VIP会员