20、编程验证与统一理论在 Isabelle/HOL 中的应用

编程验证与统一理论在 Isabelle/HOL 中的应用

1 编程验证基础

在编程过程中,代码验证是确保程序正确性的重要环节。对于程序员而言,有一些命令具备理想的特性,他们可以为每个待验证的代码片段选择合适的命令。

1.1 验证代码编写的选择

关于是否要求程序员编写验证代码,语言支持两种选择:
- 直接编写 :若程序员直接使用该语言编写程序,执行命令和验证命令的区分则明确由程序员负责。
- 使用组合命令 :语言中可定义结合执行和验证的新命令。若程序员仅使用此类命令,验证将成为编译器预定义的默认过程。

1.2 逻辑设计的拓展与简化

类型和表达式等的逻辑设计具有一定的扩展性。一方面,可以通过添加更具表达力的逻辑运算符(如量词用于断言)来扩展;另一方面,也能将其简化为具有更好可判定性和更低决策复杂度的子逻辑片段。

1.3 现有验证方法的通用性

由于任何现有的验证器都是程序,且任何验证程序都可从扩展的命令式语言的源程序中提取,因此相关技术具有足够的通用性,能够推导出所有现有的验证方法和算法。未来可能的扩展是添加输入和输出命令,使验证过程具有交互性,通过人机界面添加缺失的验证信息。

1.4 验证编译器的验证方案

有人提出“验证编译器本身不必被验证,尽管部分验证是可取的”。合理的方案是使用验证器自动检查程序,但对验证器本身的正确性证明采用手动推理演算。

2 统一理论在 Isabelle/HOL 中的应用

2.1 背景介

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值