带线性可组合归纳谓词与数据约束的分离逻辑的判定程序:理论研究与工具实现

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:zxtx001209
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
霍尔逻辑是一种众所周知的基于一阶逻辑对命令式程序的行为进行推理和验证的形式系统。然而,使用霍尔逻辑对于存在指针和动态数据结构的命令式程序进行推理和验证是一件比较困难的事情。主要问题在于:1)一阶逻辑没有表达指针变量非别名的原语,在程序分析与验证时必须考虑所有的别名模式,2)当牵涉到内存分配和释放操作时,需要对指针变量所处的论域进行扩充或限制,而一阶逻辑不具备改变变量所处的论域的能力。为了克服霍尔逻辑的上述缺陷,Reynolds、OHearn等人在2000年左右提出了分离逻辑。分离逻辑通过引入分离算子克服了霍尔逻辑的上述不足,使得能够以比较自然的方式来描述程序计算过程中内存和动态数据结构的性质,从而简化了对含有指针和动态数据结构的命令式程序的验证工作。而且,分离逻辑能够支持局部推理,可以将推理集中在程序执行过程中所访问的内存片段上,然后再通过框架规则(Frame rule)将推理扩展到程序的全局状态。  在使用分离逻辑对含有动态数据结构的命令式程序进行验证时,一般引入归纳谓词来对动态数据结构进行抽象表示,而且程序验证问题最终归结为两个分离逻辑公式的蕴涵问题。由于含有归纳谓词的分离逻辑的蕴涵问题一般是不可判定的,目前的大多数基于分离逻辑的工具只提供了不完备的判定算法。  在本文中,我们定义了带线性可组合归纳谓词与数据约束的分离逻辑的一个子集,使得可以在统一的框架下同时对线性数据结构的形状性质(即单链表、双链表、带尾指针的单双链表)与数据性质(比如有序性和长度约束)进行描述。我们针对该子集的可满足性问题与蕴涵问题提供了完备的判定算法。我们将该子集的可满足性问题归结为整数域上的线性算术公式的可满足性问题,然后交给目前主流的SMT求解器求解。对于蕴涵问题,我们将分离逻辑公式用图来表示,然后将两个逻辑公式的蕴涵问题转化为它们的图表示之间的某种图同态问题。最后,我们将我们的判定算法进行了实现,开发了原型工具,进行了相关实例研究。
其他文献
信息安全是指如何防止计算机和通信系统中的数据被非授权泄漏和篡改的科学和研究方法.密码学理论和密码技术是信息安全的一个重要组成部分.它涉及到许多学科,诸如数学、计算
近些年来,伴随着人工智能领域的浪潮,机器人越来越多地出现在我们的日常生活中,与我们的生活紧密相关,例如足球机器人、无人车、无人机等。这些机器人虽然不是安全攸关系统,但是一
针对目前银行存在的多种数据库应用并存的状况,该文提出了一种基于XML的异构数据库挖掘方案,即通过JDBC访问数据库,然后将数据存放到XML文档中,并在此基础上进行数据挖掘.该
防火墙技术是建立在现代通信网络技术和信息安全技术基础上的应用性安全技术,越来越多地应用于专用网络与公用网络的互联环境之中。但是,防火墙作为必备的安全手段,其性能直接决
互联网技术的快速发展,使得信息的获取和分享变得越来越便捷,进而形成了网络上的海量信息,这些信息中包含图像、文本、声音、视频等多模态数据。这些海量多模态数据带来了大量的
从60年代“软件危机”爆发至今,人们一直经受着“软件危机”的困扰。软件的生产效率和可靠性远远满足不了社会发展的需要:一方面,软件故障给人们的生命和财产造成了巨大的损失;另
随着通信业的发展以及国民经济信息化的推进,以太网交换机在网络中的地不断提升。作为以太网交换机的核心部分——CPU系统,其性能对整个交换机的性能起着决定性的作用。因此,开
学位
计算网格资源管理与调度是高性能网格计算领域中的一个重要研究课题,其目的就是要解决计算网格资源的描述、组织、管理与调度等关键科学技术问题.从理论与实践的结合上,对计
软件测试是软件开发过程中的重要活动,是用来确定软件的正确性、完整性、安全性和质量的关键过程。软件测试的质量高低直接决定了软件产品的质量优劣。近几十年来,软件测试一直