19、自动化属性导向自组合算法的优化与实践

自动化属性导向自组合算法的优化与实践

在程序验证领域,确保程序的安全性和正确性至关重要。自动化属性导向自组合(Automated Property Directed Self Composition)算法在此方面发挥着重要作用,但也面临着一些挑战。本文将深入探讨该算法的相关内容,包括其原理、面临的问题以及改进方案,并通过实验验证改进后的效果。

1. Pdsc算法概述

Pdsc算法旨在寻找程序的安全证明,但它存在一些局限性。具体来说,它只能用于寻找证明,无法检测真正的反例;需要外部提供一组谓词;如果提供的谓词不足以表达安全归纳不变式,算法将无法继续推进。

以一个示例来说明,有两个程序的循环可以进行同步,使得第一个程序的循环每执行两次,第二个程序的循环执行一次。这种组合方式能得到一个更简单的循环不变式:y1 = 2 * y2。Pdsc算法通过固定一个证明语言,然后在该语言允许的可能组合中进行搜索,自动得出这种组合。对于这个示例,Pdsc需要用户提供四个谓词:z1==2 z2、y1==2 y2、z1==2 z2 - 1和y1==2 y2 + x2,才能构建相应的状态并完成证明。

2. 改进算法的关键组件

为了克服Pdsc算法的局限性,引入了两个关键组件:
- 虚假性检查器(spuriousness checker) :当程序不满足所需的k - 安全属性时,获取真正的反例跟踪。
- 谓词合成器(predicate synthesizer) :消除虚假的反例跟踪,并丰富用于寻找安全不变式的语言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值