如何正式验证 "没有算术或其他异常"?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何正式验证 "没有算术或其他异常"?相关的知识,希望对你有一定的参考价值。

seL4是一个经过正式验证的操作系统。在这个 pdf 上面写着 "无算术或其他例外情况"。如何验证呢?是否实现了对每一个有效的输入都进行了粗暴的强制?

答案

这绝对不是粗暴强迫!

人们尝试了很多不同的技术来建立算术安全,但都取得了不同程度的成功。现在大多数计算机算术都已经完全形式化了,既包括IsabelleHOL、Coq、ACL2等形式化的定理证明器;也包括SMT求解等更自动化的技术。在这些系统中,你得到一个系统的模型(可以是手工写的,也可以是从实际的源代码中自动提取的),然后你要证明你的执行中没有遇到过流的路径。当然,这说起来容易,做起来难;但随着时间的推移,工具的支持也在稳步提高。

要想了解如何或多或少地自动检测算术溢出underflow,可以看看Nikolaj在SMT领域内的工作,这是一篇很棒的论文。https:/www.microsoft.comen-usresearchwp-contentuploads201602z3prefix.pdf 这里面的参考资料也可以作为一个很好的起点,按照这个思路去看其他的研究。

以上是关于如何正式验证 "没有算术或其他异常"?的主要内容,如果未能解决你的问题,请参考以下文章

输入类型号“仅数值”验证

JavaScript HERE-doc 或其他大型引用机制?

.net 中如何使用js 验证表单

如何在没有用户身份验证的情况下从 Spotify 或任何其他 API 获取歌曲预览

mac上执行sed的编辑 -i命令报错sed: 1: "test.txt": undefined label ‘est.txt’或sed: 1: "2a est&qu

请检查数据库连接字符串设置是不是正确或数据库服务器身份验证模式是不是SQL Server和