Three ways formally verified code can go wrong in practice
7 months ago
- #programming
- #correctness
- #formal verification
- 经过形式化验证的代码仍可能存在缺陷,原因包括无效证明、错误的属性设定或不正确的假设。
- 若定理证明器存在漏洞或证明过程中的捷径未经检验,就会导致证明无效。
- 当规范说明不完整、属性难以验证或与真实需求不匹配时,设定的属性就会出现错误。
- 若环境因素发生变化,或已验证代码依赖于未验证组件,相关假设就会失效。
- 理解形式化验证中'正确性'的真实含义,对于避免误用已验证代码和沟通歧义至关重要。