计算机系统形式化验证中的模型检测方法综述论文.doc
计算机系统控制验证方案

计算机系统控制验证方案计算机系统控制验证是计算机科学领域中一项重要的技术,它可以用于验证计算机系统的正确性和安全性。
计算机系统控制验证方案是用于进行计算机系统控制验证的一组方法、工具和技术的综合体,以下是一个1200字以上的计算机系统控制验证方案的详细介绍。
一、引言计算机系统是由硬件和软件组合而成的复杂系统,它们被设计用于执行特定的任务和控制特定的行为。
然而,由于计算机系统的复杂性,很难保证它们的正确性和安全性。
因此,计算机系统控制验证变得尤为重要,它可以通过对计算机系统进行系统性的分析和测试来验证其控制功能的正确性和安全性。
二、计算机系统控制验证方案的目的1.形式化验证:形式化验证是一种基于数学逻辑的验证方法,它通过形式化规范和属性来验证计算机系统的控制功能。
这些规范和属性可以使用形式化语言来表示,如时序逻辑和模型检查。
2.静态分析:静态分析是一种通过对程序进行静态分析来验证其控制功能的方法。
它可以通过检查程序的源代码或二进制代码来查找潜在的安全漏洞和错误。
3.动态分析:动态分析是一种通过运行程序来验证其控制功能的方法。
它可以通过监视程序的执行过程来查找潜在的安全漏洞和错误。
4.模型检测:模型检测是一种基于形式化模型的验证方法,它可以对计算机系统的控制功能进行全面的检查。
它通过生成系统的有限状态空间模型,并检查这个模型是否满足一些指定的属性。
5.符号执行:符号执行是一种对程序进行动态分析的方法,它可以通过执行程序的所有路径来验证其控制功能的正确性。
它可以通过收集程序的所有路径约束,并求解这些约束来查找潜在的安全漏洞和错误。
三、计算机系统控制验证方案的步骤1.定义规范和属性:首先,需要定义计算机系统控制功能的规范和属性。
这些规范和属性应该明确描述系统应该具有的行为和性质,如机密性、完整性和可用性等。
2. 构建模型:接下来,需要构建计算机系统的形式化模型。
这个模型应该能够精确地描述计算机系统的控制行为和状态转换。
一篇很好的关于功能验证、时序验证、形式验证、时序建模的论文

FF-DX半定制/全定制混合设计流程中功能与时序验证摘要随着集成电路的规模和复杂度不断增大,验证的作用越来越重要。
要在较短的时间内保证芯片最终能正常工作,需要将各种验证方法相结合,全面充分地验证整个系统。
FF-DX是一款高性能定点DSP,为了在提升芯片性能的同时,缩短设计周期,降低开发成本,采用了半定制/全定制混合设计的方法,对RTL级代码进行优化改进,对处理器内核的执行单元采用全定制设计实现。
混合设计的复杂性,给验证工作带来了巨大的挑战。
本文针对半定制/全定制混合设计的特点,提出并实现了一套半定制/全定制混合设计流程中功能和时序验证的方法。
论文从模拟验证、等价性验证和全定制设计的功能验证三个方面对FF-DX的分支控制部件进行功能验证。
对于模拟验证中激励的产生,采用了手工生成和伪随机生成相结合的方法,并通过覆盖率评估,使设计的代码覆盖率达到98%。
对于全定制模块,采用了NC-Verilog模拟器和功能模型提取工具TranSpirit相结合的新方法,提高了验证效率。
论文还研究了运用形式验证的方法对RTL级和RTL级以及RTL级和门级网表进行等价性验证。
为了进一步保证RTL级设计和对应的全定制设计模块之间功能的等价性,设计了一个能同时考察两种设计的验证平台,以此来提高工作效率。
论文介绍了FF-DX地址计算部件的时序建模和静态时序分析方法。
在静态时序分析之后,将SDF文件中的延时信息反标到逻辑网表中,通过动态时序验证进一步保证设计的时序收敛。
论文还结合工程任务,设计实现了验证过程中使用的几种辅助工具,大大提高了验证的效率,减少了人工参与带来的失误。
运用上述验证方法对FF-DX功能部件进行验证,取得了较好的效果,缩短了验证周期,提高了验证效率。
主题词:半定制/全定制混合设计,功能验证,形式验证,时序验证,时序模型,静态时序分析,辅助工具ABSTRACTThe complexity and size of the modern VLSI has been increasing dramatically, which present a significant challenge for verification. In order to ensure proper function of the design, various methods need to be used to verify the entire system sufficiently.FF-DX, a high-performance fix-point DSP our group designed, has adopted several design methods to enhance performance, as well as cut down design cycle and lower the cost. The most featured one is what we called blended methodology which mixes semi-custom and full-custom design methods together. Nevertheless, this methodology has led to a huge challenge to verification because of the complexity it brings in. In this dissertation, based on the characteristics of the blended methodology, we propose a flow for functional and timing verification, with the novel idea of combining full-custom and semi-custom verification methods.We verify the branch control function unit in three aspects, simulation verification, equivalence verification, together with functional verification in the full-custom designs.A blended methodology is introduced to generate the testbench for functional verification, which combines both manual and pseudo-random methods, and after evaluation, the code coverage rate is 98%. We also adopt a new methodology of combining the NC-Verilog simulator with functional model extractor TranSpirit for full-custom block ,and it speed up verification efficiency. Besides, we studied equivalence verification, a formal verification methodology which is used for RTL-RTL and RTL-gate design. To guarantee the functional equivalence between RTL design and full-custom design further, we design a testbench which can verify the two designs at the same time and it can greatly improve efficiency.This paper introduces a methodology of timing modeling and STA in FF-DX core. After STA, we backanotate the delay info into the logical netlist, then the timing closure could be assured further by another dynamic timing analysis.To meet the requirement of out project, we design several tools which are used in verification. These tools greatly enhance the efficiency of verification, as well as reduce the man-made errors.We use the above methods to finish verification of the core module of FF-DX, which effectively shorten design cycle, and speed up verification efficiency.Key Words:Semi-custom/Full-custom Mixed Design, Functional Verification, Formal Verification, Timing Verification, Timing Model, Static Timing Analysis, Aiding Tool第一章绪论当今集成电路技术的高速发展以及所取得的巨大成就,使得集成电路系统的规模和复杂度日趋提高,以微处理器为代表的集成电路技术已经对整个社会产生了广泛地影响,成为信息社会的支柱产业之一。
形式化验证讲义范文

形式化验证讲义范文形式化验证是通过数学方法来证明一个系统或算法的正确性的过程。
它可以帮助我们在软件开发过程中找到潜在的错误和漏洞,并确保我们的系统在各种情况下都能正常工作。
在这篇讲义中,我们将介绍形式化验证的基本原理和方法,以及一些常用的工具和技术。
一、什么是形式化验证形式化验证是一种通过形式规范和数学证明来验证软件或硬件系统的方法。
它使用数学符号和逻辑推理来描述和证明系统的性质,从而确保系统在不同的输入条件下都能正确运行。
形式化验证可以帮助我们验证系统的正确性、安全性和性能。
二、形式化验证的原理和方法1.系统建模:将系统的行为和性质用数学语言描述出来。
这可以包括使用形式化规范语言(如Z、VDM、B、TLA+等)或编程语言来定义系统的接口、状态和操作。
2.性质定义:明确要验证的系统性质,如安全性、正确性、活性、一致性等,并用数学逻辑表达出来。
常用的逻辑形式包括命题逻辑、一阶逻辑、时态逻辑等。
3.形式化证明:使用数学推理规则和工具来证明系统模型满足所要求的性质。
常见的形式化验证方法有定理证明、模型检测、符号执行等。
其中,定理证明方法通常使用数学逻辑和推理规则来构造证明树,而模型检测方法则通过对系统的状态空间进行穷举来验证性质。
4.反例分析:如果无法证明系统满足所要求的性质,可以通过生成反例来帮助找到问题所在。
反例可以是系统的一个具体执行序列,或是一个导致性质不成立的条件。
三、形式化验证的工具和技术1. 定理证明器:它是一种可以自动验证逻辑公式和数学定理的工具。
常见的定理证明器有Coq、Isabelle、ACL2等。
这些工具提供了一种交互式的证明环境,可以帮助用户构造和验证证明脚本。
2.模型检测工具:它是一种可以对系统的状态空间进行穷尽,并验证性质是否成立的工具。
常见的模型检测工具有SPIN、NuSMV、PRISM等。
这些工具通常基于有限状态机模型和时序逻辑来进行验证。
3.符号执行工具:它是一种可以对程序进行符号执行,并生成或检查路径条件的工具。
软件测试中的模型验证与形式化方法

软件测试中的模型验证与形式化方法软件测试是一项重要的质量保证活动,它旨在发现和修复软件中的错误和缺陷。
为了提高测试的效率和准确性,研究人员和测试人员一直在探索新的方法和技术。
模型验证和形式化方法是软件测试中一种被广泛研究和应用的方法,它们能够提供严格的证明和分析,以确保系统的正确性和可靠性。
模型验证是一种基于模型的测试方法,它利用形式化规范来描述系统的行为和属性,然后使用数学工具来验证这些规范是否被满足。
模型验证可以帮助测试人员找到系统中可能存在的问题,并且能够提供形式化的证据来支持这些问题的存在。
例如,模型验证可以帮助测试人员发现系统中的死锁、资源争用和安全漏洞等问题,并且能够提供清晰的证明来支持这些问题的存在。
形式化方法是一种利用数学符号和形式化语言来表示和分析软件系统的方法。
通过使用形式化方法,测试人员可以对系统的行为和属性进行精确的描述,并且能够使用数学工具来进行验证和分析。
形式化方法的一个重要应用是规约和约束的描述,这样测试人员可以通过实例化和验证来验证系统是否满足特定的规约和约束。
例如,测试人员可以使用形式化方法来验证系统的数据结构是否满足特定的约束条件,或者验证系统的算法是否满足特定的性质。
模型验证和形式化方法在软件测试中具有重要的作用。
它们能够提供严格的证明和分析,以确保系统的正确性和可靠性。
通过使用模型验证和形式化方法,测试人员可以更加准确地发现和修复软件中的错误和缺陷。
模型验证和形式化方法还可以帮助测试人员提高测试的效率,减少测试的时间和成本。
通过使用这些方法,测试人员能够系统地分析系统的行为和属性,并且能够更好地选择测试用例和执行测试活动。
然而,模型验证和形式化方法在软件测试中也存在一些挑战和限制。
使用模型验证和形式化方法需要具备一定的数学和形式化领域的知识和技能。
对于复杂的系统和大规模的软件,模型验证和形式化方法可能会导致验证问题的爆炸,使得验证变得困难和耗时。
模型验证和形式化方法还可能无法覆盖系统的所有方面,导致无法发现系统中的隐藏错误和缺陷。
基于模型检测的程序验证与形式化验证方法研究

基于模型检测的程序验证与形式化验证方法研究程序验证是软件工程中非常重要的一环,旨在确保软件系统能够以期望的方式运行,避免潜在的错误和安全漏洞。
随着软件规模的增长和复杂性的提高,传统的手工验证方法已经无法满足需求,因此形式化验证方法逐渐被引入。
形式化验证旨在通过形式化方法来验证程序的正确性。
模型检测是其中一种形式化验证的方法,其基本思想是通过构建系统的有限状态模型,然后对该模型应用逻辑规范进行验证。
一、模型检测的基本原理和流程在进行模型检测之前,首先需要明确待验证的属性和系统的规范。
这些规范可以使用时序逻辑等形式化语言来表达,如线性时序逻辑(LTL)或计时时序逻辑(CTL)。
模型检测的基本流程如下:1. 构建系统模型:根据被验证系统的需求和规范,构建一个有限状态模型,以有限状态自动机(Finite State Automaton)的形式进行表示。
2. 编码规范:将系统规范用形式化的语言进行编码,常用的形式化语言有CTL、LTL、Promela等。
3. 开始验证:使用模型检测工具对系统模型和规范进行验证。
模型检测工具会遍历系统的所有可能状态,判断是否满足规范的要求。
4. 结果分析:根据模型检测工具的输出结果,对验证结果进行分析,确定系统是否满足规范。
二、模型检测的优势与局限性相比传统的测试方法,模型检测具有以下优势:1. 全面性:模型检测可以遍历系统的所有可能状态,从而能够全面地检查系统是否满足给定的规范。
2. 高效性:模型检测通过自动化的方式进行验证,相比手工验证工作效率更高。
3. 自动化:模型检测可以通过计算机程序来执行,提高验证的自动化程度。
然而,模型检测也存在一些局限性:1. 状态爆炸:当系统的状态空间非常大时,模型检测可能面临状态爆炸问题,导致验证效率低下。
2. 时序逻辑限制:模型检测的时序逻辑规范通常只能描述单一性质,而对于复合性质的验证较为困难。
3. 完备性问题:模型检测对于未能在验证规范中明确定义的错误无法发现,因此需要谨慎选择验证规范。
完整的计算机化系统验证3篇

完整的计算机化系统验证第一篇:计算机化系统验证的意义与目的计算机化系统验证指的是对计算机系统进行验证,以确保其能够按照设计要求进行正常运行。
计算机化系统验证在很多领域都得到了广泛的应用,例如航空、医疗、金融等领域。
计算机化系统可以提高工作效率,但同时也存在潜在的风险,如果系统出现故障或漏洞,可能会引发严重的后果,甚至危及人们的生命安全。
因此,在计算机化系统的开发过程中,进行验证是必不可少的。
计算机化系统验证的目的是确保系统能够遵循规范,满足设计要求,正常运行。
通过验证,可以检测出系统中的错误、漏洞或不规范的操作,及时进行修正,从而避免系统失效或对用户造成不良影响。
验证可以保证系统的安全性、可靠性和稳定性,提高用户的信任度,同时也可以为企业节约成本,提高效益。
计算机化系统验证一般包括以下步骤:需求分析、设计、实现、测试、部署和维护。
在需求分析阶段,需要明确系统的功能需求和性能要求。
在设计阶段,需要绘制详细的系统结构图和流程图,确保系统的各个部分之间能够正常协调运作。
在实现阶段,需要按照设计要求进行编码,确保程序的正确性和可靠性。
在测试阶段,需要对系统进行全面的测试,发现并修正其中的错误、漏洞和不规范操作。
在部署阶段,需要将系统安装到目标机器上,并进行配置和调试。
在维护阶段,需要定期对系统进行检测,发现并修正其中存在的问题,从而保证系统的长期稳定运行。
计算机化系统验证对企业来说是非常重要的,它可以确保系统不会对用户造成不良影响,提高用户的信任度,同时也可以为企业节省成本,提升效益。
对于具有重要的社会功能的系统,如航空、医疗和金融等系统,进行验证显得尤为必要,因为这些系统的故障可能会造成严重的后果。
因此,在计算机化系统开发过程中,验证是一个必不可少的环节。
形式化验证方法浅析

形式化验证方法浅析随着信息技术的不断发展,软件系统已经成为现代社会和经济的基础设施之一。
软件系统的正确性和可靠性越来越受到重视,因为软件错误会带来巨大的经济损失和安全隐患。
为了提高软件系统的质量和可靠性,形式化验证方法逐渐成为了重要的研究领域。
本文将对形式化验证方法进行一定的浅析,介绍其基本概念、原理和应用。
一、形式化验证方法的基本概念形式化验证是一种基于数学逻辑的方法,通过数学语言描述待验证系统的行为规范或性质,然后利用自动化或手工化的技术对系统进行验证。
形式化验证方法主要包括模型检测、定理证明和符号执行等技术,其中模型检测和定理证明是相对常见和成熟的技术。
模型检测是一种自动化验证技术,它通过穷举系统的所有可能状态来检测系统是否满足给定的性质。
模型检测的核心就是构建系统的状态转移模型,然后利用状态空间搜索算法进行验证。
常用的状态空间搜索算法包括符号模型检测、显式状态搜索和隐式状态搜索等。
模型检测方法的优点是自动化程度高,能够发现系统中的错误和性质违反情况,但是其缺点是状态空间爆炸问题,对于大规模的系统往往难以处理。
定理证明是一种手工化验证技术,它通过数学推理和演绎来证明系统是否满足给定的性质。
定理证明的核心是将系统的行为规范或性质转化为逻辑公式,然后利用数学推理规则和定理证明工具来验证系统。
定理证明方法的优点是能够处理复杂的性质和系统,但是其缺点是依赖于人工的推理和分析,效率较低并且受到形式化规约的限制。
1. 系统建模:形式化验证的第一步是对系统进行建模,将系统的行为规范或性质形式化描述。
系统建模可以采用多种形式化语言和工具,如时序逻辑、Petri网、状态机和模型检测工具等。
建模的目的是将系统的行为抽象化和形式化,为后续的验证工作奠定基础。
2. 性质描述:形式化验证的第二步是对系统的性质进行描述,通常包括功能性要求和安全性要求。
功能性要求是描述系统的期望行为,如正确性、完备性和一致性等;安全性要求是描述系统的禁止行为,如死锁、饥饿和冲突等。
计算机系统形式化验证中的模型检测方法综述

计算机系统形式化验证中的模型检测方法综述形式化方法是用数学和规律的方法来描述和验证系统设计是否满意需求。
它将系统属性和系统行为定义在抽象层次上,以形式化的标准语言去描述系统。
形式化的描述语言有多种,如一阶规律,Z 语言,时序规律等。
采纳形式化方法可以有效提高系统的平安性、全都性和正确性,关心分析冗杂系统并且及早觉察错误。
形式化验证是保证系统正确性的重要方法,主要包括以数学、规律推理为根底的演绎验证(deductive verification)和以穷举状态为根底的模型检测(model checking)。
演绎验证是基于人工数学来证明系统模型的正确性。
它利用规律公式来描述系统,通过定理或证明规章来证明系统的某些性质。
演绎验证既可以处理有限状态系统,又可以解决无限状态问题。
但是演绎验证的过程一般为定理证明器帮助,人工参加,无法做到完全自动化,推导过程冗杂,工作量大,效率低,不能适用于大型的冗杂系统,因此适用范围较窄。
常见的演绎验证工具有HOL,ACL2,PVS和TLV等。
模型检测主要应用于验证并发的状态转换系统,通过遍历系统的状态空间,对有限状态系统进展全自动验证,快速高效地验证出系统是否满意其设计期望。
下面将主要介绍模型检测方法的进展历史和讨论现状,以及当前面临的挑战和将来进展方向等问题。
2 模型检测及相关技术模型检测方法最初由Clarke,Emerson等人于1981年提出,因其自动化高效等特点,在过去的几十年里被广泛用于实时系统、概率系统和量子等多个领域。
模型检测根本要素有系统模型和系统需满意的属性,其中属性被描述成时态规律公式Φ。
检测系统模型是否满意时态规律公式Φ,假设满意那么返回“是”,不满意那么返回“否”及其错误路径或反例。
时态规律主要有线性时态规律LTL(Linear TemporalLogic)和计算树规律CTL(Computation Tree Logic)。
2.1 线性时态规律对一个系统进展检测,重要的是对系统状态正确性要求的形式化,其中一个根本维度是时间,同时需要知道检验结果与时间维度的关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面临的挑战和未来发展方向等问题。
2 模型检测及相关技术
模型检测方法最初由Clarke,Emerson等人于1981年提出,因其自动化高效等特点,在过去的几十年里被广泛用于实时系统、概率系统和量子等多个领域。
模型检测基本要素有系统模型和系统需满足的属性,其中属性被描述成时态逻辑公式Φ。
检测系统模型是否满足时态逻辑公式Φ,如果满足则返回“是”,不满足则返回“否”及其错误路径或反例。
时态逻辑主要有线性时态逻辑LTL(Linear TemporalLogic)和计算树逻辑CTL(Computation Tree Logic)。
2.1 线性时态逻辑
对一个系统进行检测,重要的是对系统状态正确性要求的形式化,其中一个基本维度是时间,同时需要知道检验结果与时间维度的关系。
使用线性时态逻辑(LTL)来描述系统,可以使得系统更容易被理解,证明过程更加直截了当。
LTL公式是一种线性时态逻辑。
它在表示授权约束时,定义了无限的未来和过去,这样扩展了常用语义,并且保证了证明中判定的结果在各个时间点中都是成立的。
LTL公式用逻辑连接符和时态算子表达系统运行时状态之间的关系。
LTL的逻辑连接符包括:∧(与),∨(或),—|(非),→(逻辑包含),←→(逻辑对等)。
时态算子包括:G(Globally),U(Until),F(Future),X(neXt-time)。
LTL模型检测验证系统状态转换模型是否满足属性,使用可满足性判定,即为检测系统模型M 中是否存在从某个状态出发的并满足LTL公式—|Φ的路径,如果所有路径都满足LTL公式Φ则不存在有路
径满足—|Φ。
使用LTL公式也有一定的局限性,LTL公式只能包括全称量词,对于混用了全称和存在量词的性质,一般无法用这种方法进行模型检测。
2.2 计算树逻辑
计算树即为通过将迁移系统M 某一状态作为根,将M 用树形结构展开表示出来,CTL使用路径量词(包括:A(All),E(Exist))和时态算子(包括F,G,X,U)对计算树属性进行形式化的描述,表示出系统的状态变化以及状态的分枝情况。
LTL的时间定义是与路径相关的,每个时刻只有唯一的一个后继状态。
LTL可用于有重点的选择感兴趣的路径分析,并且LTL可以表达公平概念而CTL不能。
但是对于一些复杂属性,如每个计算总是可能返回到初始状态,LTL将无法描述,但是CTL可以。
CTL的时间定义是与状态相关的,每个状态都有多个可能的后继状态,从一个给定的状态量化分离出路径,能够断言行为的存在。
CTL可以用路径量词E,而LTL不可以;CTL公式使用路径量词A时与LTL公式表达内容可以相同。
LTL和CTL各有优势,Emerson等人提出扩展的时间逻辑CTL,提供了一种统一的框架,包含了LTL和CTL,但是可满足性判定代价较高。
2.3 模型检测工具
模型检测因其自动化、高效等特点得到广泛应用,各类模型检测工具也层出不穷。
以下是几类典型的模型检测工具。
SPIN 是1980年美国贝尔实验室开发的模型检测工具,主要关心系统进程间的交互问题。
它以promela为建模语言,以LTL为系统属性的逻辑描述语言,支持on-the-fly技术,可以根据用户的需要
生成系统的部分状态,而无需构建完整的状态迁移图。
SPIN验证器无法验证实时系统。
NuSMV是1987年由McMillan提出的开源的符号模型检测工具。
它可以工作于批处理模式,也可以工作于交互模式。
NuSMV采用扩展的SMV语言描述系统,并用CTL和LTL描述需求。
NuSMV结合了以可满足性(SAT)为基础的模型检测和以二叉决策树BDD(Binary Decision Diagram)为基础的模型检测。
它具有健壮性,以模块形式构建,不同模块间无依赖关系,代码易修改。
提供了同步模型和异步模型的分区方法,可以结合可达性分析,验证不变性质。
NuSMV非常灵活,使用者可以控制并且可以改变其系统模块的执行顺序,并且可以检查和修改系统的内部参数来调整验证过程。
普通的有限状态转换图无法模拟动态变化的物理环境,于是出现了由时间自动机与有着一系列变量的状态转换图结合而成的新模型。
UPPAAL就是基于这种模型的成熟的实时系统验证工具。
UPPAAL是1995年由Aallorg大学和Uppsala大学共同提出,具有可视化图形编辑器。
它基于时间自动机并对其进行扩展,引入了坚定位置、初始化程序、紧迫位置和紧迫管道等概念,有助于对真实系统进行建模,并能够有效减少系统内存占用。
它被用于检测不变量和可达性属性,尤其是检测时间自动机的控制节点某些组合以及变量约束是否满足初始配置。
CPN-Tool是由Aarhut大学开发的工具,用于有色petri网CPN(Colored Petri Net)的构造和分析。
有色petri网是用于对系统进行建模并验证其并发、通信和同步的语言,是一种描述离散事件的图形化建模语言。
它基于meta-language,并有强大的可扩展性。
它能够通过仿真分析系统的行为,通过模型检测验证系统属性。
对于状态爆炸问题,CPN-Tool有很多方法来减少状态数量,Christensen等人使用全局时钟和时间戳作为标
记,通过状态等价关系化简状态空间,将无限状态转化为有限状态。
2.4 状态爆炸问题
模型检测使用状态空间检索来进行系统验证。
状态空间检索的主要缺点就是状态空间随着进程数量增CTL使用路径量词(包括:A(All),E(Exist))和时态算子(包括F,G,X,U)对计算树属性进行形式化的描述,表示出系统的状态变化以及状态的分枝情况。
CTL和LTL都有强大的表达能力。
LTL的时间定义是与路径相关的,每个时刻只有唯一的一个后继状态。
LTL可用于有重点的选择感兴趣的路径分析,并且LTL可以表达公平概念而CTL 不能。
但是对于一些复杂属性,如每个计算总是可能返回到初始状态,LTL将无法描述,但是CTL可以。
CTL的时间定义是与状态相关的,每个状态都有多个可能的后继状态,从一个给定的状态量化分离出路径,能够断言行为的存在。
CTL可以用路径量词E,而LTL不可以;CTL公式使用路径量词A时与LTL公式表达内容可以相同。
LTL和CTL各有优势,Emerson等人提出扩展的时间逻辑CTL,提供了一种统一的框架,包含了LTL和CTL,但是可满足性判定代价较高。
3 模型检测的新进展
尽管模型检测验证能力在不断增强,可是对于复杂系统的验证仍然面临许多挑战。
验证混成系统时,由于其状态空间庞大,对于一些基础问题的验证,具有不可判定性。
验证系统的访问控制策略时,一条策略可能包含大量规则,如何对策略建模成为难
点。
验证多智能系统MAS(Multi-Agent System)时,由于MAS出现的目的就是用多个模块来解决单一模块无法解决的复杂问题,因此MAS的使用环境一般较为复杂,行为多样且具有随机性,验证难度较大。
本文针对上述难题,提出一些解决方法如下。
验证混合自动机。
Krishna等人用混合自动机模型化物联网系统,并且用LTL模型检测进行验证。
在使用LTL模型检测混合自动机时,由于LTL具有不可判定性,引入互模拟的概念,并表明一个有限互模拟的存在意味着使得LTL模型检测问题的可判定。
验证访问控制安全策略。
Maarabani等人将组织间模型O2O(Organization to Organization model)与LTL模型相结合,来验证互操作访问控制安全策略。
将每一个O2O策略分别用两个LTL公式表示,进行验证。
Hwang,Tao等人定义了一个新的工具ACPT(Access Control Policy Testing),将策略制定者的安全需求,转化成可执行的策略,并根据需要对访问控制策略进行动态和静态验证验证MAS。
Meski等人用基于SAT的限界模型检测和基于BDD的限界模型检测分别验证多智能系统MAS,并对两种验证方法的时间和内存耗费方面等进行比较。
由于目前对MAS的验证技术不支持主流验证工具,且输入形式单一,Hunter 等人提出扩展验证框架可以支持多种输入,并且提供翻译器将输入翻译为多个主流验证工具的输入语言,利用现有的验证工具对MAS进行验证。
由于MAS的使用环境相对复杂,其行为具有随机性,Song针对MAS行为具有随意性的难题,提出一种概率建模语言对MAS的进行描述,并提出相应的模型检测框架。
4 结束语
形式化验证方法已经被广泛的研究,各种描述语言与验证
工具层出不穷。
相对于演绎验证,模型检测因其全自动并可以提供有数学基础的反例等特点,适用范围更广,可用于验证软件、硬件和协议系统等多个领域。
利用模型检测时需控制好状态数量,进行存储压缩或者使用必要的路径压缩、状态缩减算法非常关键。
同时前期对于保护目标的选取也非常关键,选出关键资产来保护可以大大提高后期的描述与验证效率。
本文工作可为模型检测方法的研究提供借鉴和参考意义。