C语言表达式多语义关系的Coq验证

来源 :哈尔滨理工大学 | 被引量 : 0次 | 上传用户:liongliong495
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
进入21世纪以来,整个社会的信息化程度越来越高,网络信息爆炸,越来越多的信息技术走进每个人的生活。物联网技术的愈发多样,伴随而来的计算机系统软硬件的安全性与可靠性挑战比起以往都更加巨大,所以实现信息时代的信息安全成为当前的主流研究方向之一,构建高可信系统己成为世界范围的重要课题。为了保障软件开发安全,消除程序潜在隐患,我们通常使用逻辑推理系统来完成形式化验证的工作,实现信息安全,一个重要方向就是在软件开发过程中实现形式化验证。利用交互式定理数学证明,模块化的证明编写方式一直研究人员的一大关注点。在国防、金融、交通等对安全性要求极高的领域中,形式化验证已经在被广泛的研究应用当中。本文首先介绍了C语言在程序开发过程中存在的安全隐患以及国内外在程序验证方面的最新进展,然后对形式化验证的基础工具Coq、Comp Cert、VST、霍尔逻辑以及分离逻辑进行介绍和分析。在此基础上以C标准规定有符号整数运算是否越界为例进行深入研究,基于Coq和VST工具,在对一段C程序进行形式化验证时,假定对这段程序需要按照不同的编译要求进行验证,针对不同的编译要求,设定不同的验证规范。本文以验证整形溢出是否为未定义行为作引,研究确定三个不同的验证标准,同时以Coq语言函数式编程的方式抽象定义。就交互式程序验证工具VST而言,对不同的验证规范,修改基础架构Verifiable C程序逻辑,将涉及的各类证明定理进行拆分解耦和重新证明,以此保证整个VST工具程序逻辑的可靠性。最后详细论证在VST中,基于Verifiable C程序逻辑,通过交互式定理证明器Coq,验证一段C程序s是否符合Ps Q的可靠性,其中P为前条件,Q为后条件,深度解构VST中关于定义C表达式语义的形式化框架。通过比较高阶逻辑方式与模块/模块类方式这两种形式化编写方式的优劣,分析本文采用模块/模块类方式改造VST的益处。本文对VST结构的主要改进,采用Module/Module Type类方法,专注于C表达式求值的语义进行形式化验证,对已有大规模交互式定理证明进行解耦,通过VST的模块化改造实现基于分离逻辑的形式化定义与形式化证明;通过一些关键函数的抽象定义,使得其能根据所需场景对C表达式求值的语义验证规范执行不同的实例化,实现动态属性配置以及一些验证选项的参数化设定;保证VST在验证以功能正确性为代表的一系列高阶性质时,所编译C程序不出现运行错误。实验结果表明本项目以整形溢出为例,对VST验证逻辑框架进行模块化重构改造,当需要执行不同的验证标准时,仅需要将各Verifiable C变种逻辑相关的Coq证明调用不同的AC模块类实例,就可以保证在验证有关整形溢出问题的C程序时,实现C程序在不同编译标准下的端到端可靠性。同时本文对VST模块化改造方法也很容易将该改造方案推广到VST可靠性证明的其他部分中去,实现VST验证规范的动态配置,以使在进行可靠性验证时可以根据不同需求进行实例化证明,从而保证整个VST程序逻辑的完整性与可靠性。
其他文献
随着科学技术的不断发展,三维重建作为一种能够通过以建模方式得到三维信息,进行显示、分析的技术应用在各个领域,如Simultaneous localization and mapping(SLAM)、医疗科学、文物维护、地球大气等领域。随着三维重建技术采用的零部件逐渐市场化和产品化之后,将三维重建技术应用于视力障碍者的出行中变为一种可能。对于视力障碍者而言,三维重建技术运用至其指引工具之上可以快速、
学位
传统的先加工后装配作业车间调度方式,已经很难满足当今社会对个性化产品的需求。在这种背景下,产品的加工和装配一同调度的第三类产品调度模式综合调度应运而生。综合调度的研究虽然取得了丰硕的成果,但目前没有针对存在柔性设备多工序同时结束的问题进行考虑,所以本文对存在柔性设备多工序同时结束的问题进行研究。针对单车间环境存在柔性设备单组多工序同时结束的问题,提出存在柔性设备单组工序同时结束的综合调度算法。该算
异常检测,又称为离群点检测,是找出行为与预期行为差异较大的对象的检测过程,而时间序列异常检测旨在发现对应时序特征中不符合一般规律的特异性模式,是机器学习领域重要的研究方向。然而,现有的时序异常检测方法大多为单模态学习,忽略了时序信息在多模态空间上不同特征分布的关联性和互补性,不能充分利用时序数据进行有效的模式挖掘,从而造成检测效果差等问题。基于这些传统方法的缺陷,本文提出了一种多模态自适应时间序列
历史解释有两大要义:探求因果和阐释意义。自高中历史新课标颁布以来,学界探讨历史解释素养的文章可谓是汗牛充栋,从理论与实践两个方面丰富了人们对历史解释素养的认识。美中不足的是,这些文章探讨的主要是因果关系,阐释意义的文章较为少见。这就好比鸟少一翼,车缺一轮。为此,本文拟择一案例,解剖麻雀,进而探讨阐释历史意义的策略,以求教于方家。本文选择的案例是欧阳修在《归田录》中记载的陈尧咨与卖油翁的故事:
期刊
学位
近年来,高熵合金因其独有的优异性能获得了广泛关注。当前对于高熵合金的研究往往是实验合成或者复杂的理论计算,但是前者需要消耗大量的时间与材料成本,甚至对于实验设备也有较高要求,后者的计算过程耗时耗力且有一定局限性。随着人工智能与计算机技术的飞速发展,机器学习在材料研究与设计中逐渐展现出革命性的优势,获得了研究者的极大兴趣。因此,基于机器学习算法进行高熵合金成分设计以期达到高硬度具有十分重要的研究意义
无模型深度强化学习算法作为强化学习中的一种主要算法,其最大特点是在不对环境建模的情况下,通过与环境不断交互自主的进行学习。强化学习虽然已经在一系列具有挑战性的决策和控制任务上得到了长足的发展,但是连续控制任务下的深度强化学习的研究还是处于初级阶段,这些算法仍存在着一些问题和挑战,比如维度爆炸、随机环境下泛化能力差、样本数据使用效率低、脆弱的收敛特性和极易陷入局部最优策略。这些问题导致多数模型需要细
随着多核架构普遍流行,系统的并行能力和多线程技术随之得到增强,系统程序的并行程序设计开发模型不断研发,多线程技术慢慢成为一种必不可少的编程技术,二者提高了操作系统并发程序的性能。测试的进步和可负担并发性的增加促进了并发方向的发展,虽然用更为全面的方法分析日益复杂的程序已经成为常态,但许多方法在检测方面仍然存在很多缺陷。如何提高数据竞争误检率和漏检率问题,以及提升内存性能,减少运行开销是目前迫切需要
在现代无线通信网络技术繁荣昌盛的今天,基于位置的服务(LBS)已深深融入人们生活中。据统计人们百分之八十的活动均在室内进行,如商场、医院、家居、安全防控火警救援等行业需求,所以研究室内定位项目具有深刻的意义。基于MR地址指纹定位技术和行人航位推算法(PDR)的定位技术以其快速、准确、定位精度高、成本低等优点成为定位技术领域的研究热点。但是MR指纹定位技术不足之处在于其呈现跳跃性定位,且定位精度易受