11、认证计算验证:从代码到数学证明

认证计算验证:从代码到数学证明

在软件开发和数学验证领域,确保代码的正确性以及数学证明的严谨性至关重要。本文将介绍如何对认证计算进行验证,特别是以图的最大基数匹配问题为例,详细阐述使用 VCC 和 Isabelle/HOL 工具进行验证的过程。

1. 验证工具选择

LEDA 是用 C++ 编写的,为了验证与原始实现尽可能接近的代码,我们选择了 VCC 和 Isabelle/HOL 这两个工具。
- VCC :是一个用于完整 C 代码的断言式一阶演绎代码验证器。它成熟且提供了丰富的断言语言,适合我们的需求。在 Verisoft XT 项目中,VCC 成功验证了数万个非平凡的 C 代码。它使用幽灵状态和代码来克服一阶推理的限制,提供了幽灵对象、幽灵字段等,确保信息不会从幽灵状态流向非幽灵状态,并且所有幽灵代码都会终止。
- Isabelle/HOL :是一个基于 Church 简单类型 lambda 演算的经典高阶逻辑交互式定理证明器。它内部基于推理内核构建,保证了正确性。它拥有丰富的已形式化理论,证明风格接近数学教科书,用户可以结构证明,系统会通过自动证明方法填补空白。

2. 验证工作流程

验证检查器的工作流程如下:

graph LR
    A[检查器代码(C 语言)] --> B[使用 VCC 注释函数和数据结构]
    B --> C[抽象正确性:抽象数据结构和属性]
    C --> D[导出到 Isabelle/HOL:制定整体正确性定理]
    
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值