符号化模型检测CTL
【计算机科学】_状态模型_期刊发文热词逐年推荐_20140724
科研热词 贝叶斯网络 高斯过程 预测 集群 随机petri网 队列管理 链路性能推断 链路利用率 逆向推理 软件老化 软件再生 误识率 语义 评估 自适应发布 自动小车存取系统 缓存大小 维数灾 粒子滤波 符号模型检测 神经网络 相关电磁分析 目标跟踪 电磁信息泄漏 环路死锁 状态迁移分析 状态图 漏识率 混合系统 流媒体 流体随机petri网 模糊petri网 模型转换规则 模型 概念格 条件独立 机器学习 朴素干预规则 有限状态机 最大鲁棒控制不变集 时态认知逻辑 旁路攻击 数据相关性 数据加密标准 支持向量机 形式背景 形式概念分析 形式化分析 强化学习 异构 序列图像 工作流
工业过程测量和控制系统 实时流协议 安全策略 安全域 安全协议 多特征向量 多智能体系统 多主体系统 基于模型诊断 基于案例的推理 回归 可分解马尔可夫决策过程 变化量 双向联想记忆 动态调节阈值 动态上下文知识 加权采样 分段仿射系统 函数分布 出生缺陷 决策 关联矩阵 入侵检测系统 优先选择算法 人工神经网络 不规则 上下文独立 上下文模型 上下文框架 上下文感知 web服务组合 webservice uml tcp rgvs系统 petri网 nt em算法 eca规则
科研热词 模型检测 角色 安全协议 元胞自动机 高维数据 验证分析 马尔科夫模型 马尔可夫链 风险评估 频繁片断挖掘 项重写 非功能性质验证 非分簇算法 集成干涉矩阵 隐马尔可夫模型 随机过程 陷阱性质 逼近 逻辑分析 通信有限状态自动机 输入/输出 软件验证工具 软件衰退 软件抗衰 语言模型 访问控制 认证性 认知语境 认知-评价理论 装配序列规划 蚁群算法 自由度 自主代理 脆弱性分析 网络安全 网格 结构化检索 线程 粒子滤波 简单网络断层扫描 符号模型验证 秘密性 直线变形模型 电子商务协议 生物信息学 状态空间模型 特征交互 混合逻辑动态模型 混合系统 混合整数二次规划 测试模型 注入攻击序列
基于完备抽象解释的模型检验CTL公式研究 (2)
第32卷 第5期2009年5月计 算 机 学 报C HIN ESE J OU RNAL OF COM PU TERSVol.32No.5May 2009收稿日期:2006211230;最终修改稿收到日期:2009204214.本课题得到国家杰出青年科学基金(60425206)、国家自然科学基金重大研究计划(90818027)与重点项目(60633010)、国家自然科学基金(60663005)、国家“八六三”高技术研究发展计划目标导向类项目(2009AA01Z147)资助.钱俊彦,男,1973年生,博士,教授,主要研究领域为软件工程、形式化验证、嵌入式实时系统.E 2mail :qjy2000@ ;qjy2000@.徐宝文,男,1961年生,教授,博士生导师,研究领域为程序设计语言、软件工程、并行与网络软件等.基于完备抽象解释的模型检验CT L 公式研究钱俊彦1) 徐宝文2),3)1)(桂林电子科技大学计算机与控制学院 广西桂林 541004)2)(南京大学计算机软件新技术国家重点实验室 南京 210093)3)(南京大学计算机科学与技术系 南京 210093)摘 要 在模型检验中,抽象是解决状态空间爆炸问题的重要方法之一.给定具体Kripke 结构和时序描述语言CTL ,基于抽象解释框架以及完备抽象解释和性质强保留之间的关系,抽象模型最小精化使得CTL 性质强保留,可转换为抽象解释中抽象域的最小完备精化,并且总是存在抽象域的最小完备精化.根据状态标签函数确定初始抽象域,然后通过不动点求解,获得对CTL 标准算子完备的最小抽象域,并依据此抽象域求得CTL 性质强保留的最优抽象状态划分,最后构造出CTL 性质强保留且最优的抽象状态转换系统.并指出了抽象域对CTL 标准算子是完备的当且仅当抽象域对补集和标准前向转换是完备的.关键词 抽象解释;抽象模型检验;强保留;完备性;精化中图法分类号TP311 DOI 号:10.3724/SP.J.1016.2009.00992Model Checking CT L B ased on Complete Abstraction InterpretationQ IAN J un 2Yan 1) XU Bao 2Wen 2),3)1)(S chool of Com p uter and Cont rol ,Guilin Uni versit y of Elect ronic Technolog y ,Guilin ,Guang xi 541004)2)(S tate Key L aboratory f or N ovel S of t w are Technolog y ,N anj ing Universit y ,N anj ing 210093)3)(Depart ment of Com p uter Science and Technology ,N anj ing Universit y ,N anj ing 210093)Abstract Abst raction plays a f undamental role in combating state 2space explosion in model checking.In a complete abstract interpretation 2based view ,t he aut hors reduce t he state space of a Krip ke st ruct ure in order to obtain a minimal abst ract state t ranslation system t hat st rongly pre 2serves a given temporal specification language C TL.According to a relation between complete 2ness of abst ract interpretations and st rong p reservation of abst ract model checking ,t he problem of minimally refining abst ract model in order to make it st rongly preserving CTL can be formula 2ted as a minimal abst ract domain refinement in abst raction interpretation in order to get complete 2ness ,and t his refined complete abstract domain always exist s.G iven initial abst ract domain ,we can obtain a minimal abst ract domain which is co mplete for t he standard operators of C TL by t he iterative comp utation of t he fixpoint.Moreover ,t he corresponding partition is t he coarsest parti 2tion which is st rong p reserving for C TL.The aut hors show t hat t he abstract domain is complete for t he standard operators of C TL iff it is complete for complement and standard predecessor t ransformer operators.K eyw ords abst ract interp retation ;abstract model checking ;st rong preservation ;completeness ;refinement1 引 言模型检验[1]是基于有限状态空间搜索来保证软硬件设计正确性的形式化自动验证技术,能在模型不满足规格时给出反例.在模型检验中,抽象是解决状态空间爆炸的一种重要方法,其目标是构造足够小的抽象模型,使之能有效分析与验证.抽象模型检验的主要思想是通过抽象状态近似具体状态的某些性质,并在抽象状态之间定义抽象转换关系,从而构造出抽象模型,然后在抽象模型中检验时序性质,通过时序性质在抽象模型的结果,推导出在具体模型中是否满足.抽象模型检验已经在硬件验证领域取得巨大成功,特定情况下能验证有101300可达状态的AL U电路[2].通常抽象主要有两种方式:弱保留抽象和强保留抽象.对于性质弱保留的抽象,可分为两类:向下近似抽象和向上近似抽象.给定具体模型和抽象模型以及性质<,如果是按照向下近似抽象方式获得的抽象模型,则4/<]4/<,即性质在抽象模型不满足,推导出在具体模型中也不满足;如果是按照向上近似抽象方式获得的抽象模型,则4<]4<,即时序性质在抽象模型满足,推导出在具体模型也满足.Clarke[324]采用向上近似抽象方式,基于反例精化的思想进行抽象模型检验,即通过模型检验自动验证抽象模型是否满足所期望的性质,如果满足,则报告正确;否则给出抽象反例,检查抽象反例是否合理,若合理,则生成具体反例;否则依据不合理反例精化抽象模型;重复迭代精化直到给出满足性质的肯定回答或给出不满足性质的具体反例.对于性质强保留的抽象,时序性质在抽象模型满足当且仅当其在具体模型满足,即性质在抽象模型满足(或不满足),则在具体模型中也满足(或不满足).性质强保留是高期望的,且要获得最优的强保留抽象模型是困难的.本文将基于抽象解释的理论以及完备抽象解释和性质强保留之间的关系(即抽象域对C TL标准算子是完备的,那么相对应的抽象划分强保留C TL性质),通过抽象域的最小完备精化,构造一个抽象状态划分且强保留C TL性质的抽象模型.首先根据状态标签函数确定初始抽象域,然后通过不动点求解,得到对补集和标准前向转换完备的最优抽象域,也就是对C TL标准算子完备的最小抽象域,依据此抽象域求解C TL性质强保留的最优抽象状态划分.在抽象状态划分之间定义抽象转换关系,构造CTL性质强保留的抽象模型.典型的抽象模型检验是基于状态划分和抽象Krip ke结构的,给定具体状态转换系统或Krip ke 结构,通过抽象映射获得抽象模型.而在抽象解释框架下,依据具体状态幂集的抽象解释(Galois连接或闭包操作)导出近似于具体语义的抽象语义.Cousot 首先介绍了用于静态程序分析的抽象解释框架[526],此框架使用Galois连接(或闭包操作)在具体性质域和抽象性质域之间建立联系,且证明对任意具体性质,存在唯一的最优抽象近似.近年来,许多研究人员对抽象模型检验的基础和原则进行了研究,并在许多方面做了改进[2,7219]. Graf和Sa di[20]提出一种特殊的抽象解释形式———谓词抽象,实现了抽象的自动化,然而此方法是不完备的.当前基于谓词抽象的技术已应用到软件系统的模型检验中,诸如验证J ava程序的Bandera[21]和J ava Pat h Finder[22]以及验证C语言的SL AM[23224]、MA GIC[25226]和BLAST[27228].Cousot[7]和G iacobazzi[11,29]的研究表明抽象解释的完备性不依赖抽象语义算子,而仅仅依赖于抽象域,因此是抽象域性质.在此基础上,给出了一个结论,即抽象域的完备核或最小完备精化总是存在,并描述了构造完备抽象解释的方法,也就是抽象解释的完备化可转化为抽象域完备精化.G iacobazzi[10]首先给出了性质强保留和完备抽象解释之间的关系,并指出当抽象缺乏完备性,则产生不合理反例.为了消除不合理反例,可通过最小精化使抽象解释完备.Ranzato和Tapparo[13216]描述了基于抽象解释的性质强保留模型,在完备抽象解释和强保留抽象模型之间建立了精确的一致性原则,并指出抽象域的完备精化可用不动点对其进行刻画.本文在上述工作的基础上,运用一些已有的结论,证明了抽象域对C TL标准算子是完备的当且仅当抽象域对补集和标准前向转换是完备的,并根据完备抽象解释和强保留抽象模型之间的关系以及文献[14]中引理511和512,改进了文献[14]中求解最优的完备精化闭包算法,从而获得CTL性质强保留的最优抽象模型.2 基础知识2.1 基础符号假定X是集合.Fun(X)表示函数f:X n→X的3995期钱俊彦等:基于完备抽象解释的模型检验CTL公式研究499计 算 机 学 报2009年5期钱俊彦等:基于完备抽象解释的模型检验CTL公式研究599699计 算 机 学 报2009年5期钱俊彦等:基于完备抽象解释的模型检验CTL公式研究799899计 算 机 学 报2009年5期钱俊彦等:基于完备抽象解释的模型检验CTL公式研究999对CTL标准算子是完备的当且仅当A对{,p re R}是完备的.下一步工作将主要研究依赖所验证时序公式的抽象模型检验.参考文献[1]Clarke E M,Grumberg O,Peled D A.Model Checking.Massachusett s:MIT Press,1999[2]Clarke E M,Grumberg O,Long D E.Model checking andabstraction.ACM Transactions on Programming Languagesand Systems(TOPLAS),1994,16(5):151221542[3]Clarke E M,Grumberg O,J ha S,Lu Y,Veit h H.Counter2example2guided abstraction refinement//Proceedings of t he12t h International Conference on Computer Aided Verifica2tion(CAV).L NCS1855.Chicago,2000:1542169[4]Clarke E M,J ha S,Lu Y,Veit h H.Tree2like counterexam2ples in model checking//Proceedings of t he IEEE Symposiumon Logic in Computer Science(L ICS).Copenhagen,2002:19229[5]Cousot P,Cousot R.Abst ract interpretation:A unified lat2tice model for static analysis of programs by construction orapproximation of fixpoint s//Proceedings of t he6t h AnnualACM SIGPLAN2SIGACT Symposium on Principles of Pro2gramming Languages(POPL).Los Angeles,California,1977:2382252[6]Cousot P,Cousot R.Abstract interpretation frameworks.Journal of Logic and Computation,1992,2(4):5112547 [7]Cousot P,Cousot R.Temporal abstract interpretation//Pro2ceedings of t he27t h ACM SIGACT2SIGMOD2SIGAR T Sym2posium on Principles of Programming Languages(POPL),Boston,U SA,2000:12225[8]Dams D.Abstract interpretation and partition refinement formodel checking[D].The Net herlands:Eindhoven Universi2ty of Technology,1996[9]Dams D.Flat Fragment s of CTL and CTL3:Separating t heexpressive and distinguishing powers.Logic Journal of t heIGPL,1999,7(1):55278[10]G iacobazzi R,Ranzato F.Incompleteness,counterexamplesand refinement s in abstract model checking//Proceedings oft he8t h International Symposium on Static Analysis(SAS).LNCS2126.Paris,2001:3562373[11]G iacobazzi R,Ranzato F,Scozzari F.Making abstract inter2pretations complete.Journal of t he Association for Compu2ting Machinery(ACM),2000,47(2):3612416[12]Loiseaux C,Graf S,Sifakis J,Bouajjani A,Bensalem S.Property preserving abstractions for t he verification of con2current systems.Formal Met hods in System Design,1995,6(1):11244[13]Ranzato F,Tapparo F.Making abstract model checkingstrongly preserving//Proceedings of t he8t h InternationalSymposium on Static Analysis(SAS).LNCS2477.Madrid,Spain,2002:4112427[14]Ranzato F,Tapparo F.Strong preservation as completenessin abstract interpretation//Proceedings of t he13t h EuropeanSymposium on Programming(ESOP).LNCS2986.Barcelo2na,Spain,2004:18232[15]Ranzato F,Tapparo F.An abst ract interpretation2based re2finement algorit hm for strong preservation//Proceedings oft he11t h International Conference on Tools and Algorit hmsfor t he Construction and Analysis of Systems(TACAS).L NCS3440.Edinburgh,U K,2005:1402156[16]Ranzato F,Tapparo F.Strong preservation of temporal fix2point2based operators by abstract interpretation//Proceedingsof t he7t h International Conference on Verification,ModelChecking,and Abst ract Interpretation(VMCAI).LNCS3855.Charleston,SC,U SA,2006:3322347[17]Schmidt DA.Closed and logical relations for over2and under2approximation of powerset s//Proceedings of t he11t h Inter2national Symposium on Static Analysis(SAS).LNCS3148.Verona,Italy,2004:22237[18]Clarke E M,Grumberg O,J ha S,Lu Y,Veit h H.Progresson t he state explosion problem in model checking//Informat2 ics210Years Back,10Years Ahead,Dagstuhl,2001.LNCS2000,London:Springer2Verlag,2001:1762194[19]Cousot P,Cousot R.Refining Model Checking by AbstractInterpretation.Automated software engineering Journal,1999,6(1):69295[20]Graf S,Sa di H.Construction of abstract state graphs wit hPVS//Proceedings of t he9t h International Conference onComputer Aided Verification(CAV).LNCS1254.Haifa,Israel,1997:72283[21]Corbett J C,Dwyer M B,Hatcliff J,Laubach S,PasareanuC S,Robby,Zheng H.Bandera:Extracting finite2statemodels from java source code//Proceedings of t he22nd Inter2national Conference on on Software Engineering(ICSE).Limerick,Ireland,2000:4392448[22]Havelund K,Pressburger T.Model checking java programsusing J ava Pat hFinder.International Journal on SoftwareTools for Technology Transfer,2000,2(4):3662381 [23]Ball T,Majumdar R,Millstein T D,Rajamani S K.Auto2matic predicate abstraction of C programs//Proceedings oft he ACM SIGPLAN Conference on Programming LanguageDesign and Implementation(PLDI).Snowbird,USA,2001:2032213[24]Ball T,Rajamani S K.Automatically validating temporalsafety properties of interfaces//Proceedings of t he8t h Inter2national SPIN Workshop on Model Checking Software.L NCS2057.Toronto,Canada,2001:1032122[25]Chaki S,Clarke E M,Groce A,J ha S,Veit h H.Modularverification of software component s in C//Proceedings of t he25t h International Conference on Software Engineering(ICSE).Portland,Oregon,2003:3852395[26]Chaki S,Clarke E M,Groce A,Ouaknine J,Strichman O,Y orav K.Efficient verification of sequential and concurrent C0001计 算 机 学 报2009年programs.Formal Met hods inSystem Design ,2004,25(223):1292166[27]Henzinger T A ,J hala R ,Majumdar R ,Sutre G.Software verification wit h BL AST//Proceedings of t he 10t h Interna 2tional SPIN Workshop on Model Checking Software.LNCS 2648.Portland ,Oregon ,2003:2352239[28]Henzinger T A ,J hala R ,Majumdar R ,Sutre zy ab 2straction//Proceedings of t he 29t h SIGPLAN 2SIGACT Sym 2posium on Principles of Programming Languages (POPL ).Portland ,2002:58270[29]G iacobazzi R ,Ranzato pleteness in abstract interpre 2tation :A domain perspective//Proceedings of t he 6t h Inter 2national Conference on Algebraic Met hodology and Software Technology (AMAST ).LNCS 1349.Sydney ,Australia ,1997:2312245QIAN Jun 2Yan ,born in 1973,Ph.D.,professor.His research inter 2ests include software engineering ,for 2mal verification and embedded real 2time system.XU B ao 2Wen ,born in 1961,Ph.D.,professor and Ph.D.supervisor.His research interests include program language ,software engineering ,concurrent and network software ,etc.B ackgroundModel checking is an automatic formal verification tech 2nique for a finite state system ,where all the states of the system are exhaustively enumerated and the correctness con 2dition checked at each state ,and also yields extremely usef ul counter examples if model checking fails.As key issue in model checking ,abstraction is a method for reducing the state space of the checked system.When model checking using abstraction ,the main concern is that the abstractions must be property 2preserving.There are two forms of proper 2ty preservation :Weak Preservation and Strong Preservation.Strong preservation is related to completeness in abstract interpretation by studying the relationship between complete abstract interpretations ,strongly preserving and spurious counterexamples of abstract model checking.In order to eliminate spurious counterexamples ,a method is designed for minimally making abstract interpretations complete.It isshowed that completeness of an abstract interpretation is a property which does not depend on the abstract semantic op 2erations but on the underlying abstract domains only.This opened up the question of making abstract interpretations complete by least refinements of abstract domains.However ,this least refinement always exists and can be constructively characterized as fixed point solution of abstract domain equa 2tions.This work is supported by the National Natural Science Foundations for Distinguished Y oung Scholar under grant No 160425206,the National Natural Science Foundation of China under grant Nos 190818027,60633010,60663005and the National High Technology Research and Develop 2ment Program(863Program )of China under grantNo 12009AA01Z147.10015期钱俊彦等:基于完备抽象解释的模型检验CTL 公式研究。
高速铁路列车运行控制系统的形式化建模与验证方法研究共3篇
高速铁路列车运行控制系统的形式化建模与验证方法研究共3篇高速铁路列车运行控制系统的形式化建模与验证方法研究1高速铁路的安全运行对于乘客的生命财产安全至关重要。
而高速铁路列车运行控制系统作为确保高速铁路安全运行的核心系统,其设计与开发是至关重要的。
为此,需要对该系统进行形式化建模与验证,以保障高速铁路的安全运行。
形式化建模是指将实际系统中的所有行为和任务,通过数学符号和逻辑关系抽象到一个形式化的模型中。
通过形式化建模,可以更加精确地描述系统的行为和特性,从而更好地理解系统的性质和特点。
在高速铁路列车运行控制系统的开发过程中,形式化建模可以帮助开发人员更准确地理解系统的行为和特性,进而快速发现并消除潜在的问题和缺陷。
对于高速铁路列车运行控制系统的形式化建模,通常采用有限状态自动机(Finite State Machine,FSM)模型。
FSM模型是一种常用的形式化建模方法,用于描述一个系统的状态和状态之间的转换关系。
在高速铁路列车运行控制系统的FSM模型中,每一个状态代表着系统的一个具体状态,而状态之间的转换则代表着系统的事件和响应过程。
通过绘制FSM图,可以清晰地描述系统的运行流程和状态变化。
在高速铁路列车运行控制系统的开发过程中,存在很多的潜在隐患和缺陷。
通过FSM模型的形式化建模可以清晰地揭示出系统的特点和行为,进而帮助开发人员及时地发现并解决问题。
例如,可以通过模型检测技术对FSM模型进行验证,以发现系统中的死锁、饥饿等严重问题。
同时,还可以使用模型检测技术对系统的需求规格进行验证,以确保系统的需求规格具有正确性、完备性和一致性等特性。
在高速铁路列车运行控制系统的开发过程中,形式化建模和验证是保障系统安全和可靠性的重要手段。
通过采用FSM模型进行形式化建模和验证,可以更好地理解和描述系统的行为和特性,并及时发现和解决系统中的问题和隐患。
同时,形式化建模和验证可以大幅提高系统开发的效率和质量,从而确保高速铁路列车的安全运行。
多核系统动态温度管理TAPE策略的形式化验证
第44卷第11A期2017年11月计算机科学COMPUTER SCIENCEVol.44 No. 11ANov.2017多核系统动态温度管理TAPE策略的形式化验证屈媛媛洪玫孙琳(四川大学计算机学院成都610025)摘要多核系统中,分布式D T M策略因其良好的可扩展性得到了广泛应用。
在部署分布式D T M策略前,必须验 证其可靠性。
为了克服传统分析方法的局限,模型检测技术被应用于分布式D T M策略的分析中。
提出使用统计模 型检测技术来验证多核系统中分布式D T M策略(以T A P E策略为例)的方案。
使用U P P A A L S M C对T A P E策略的 验证证明了 T A P E策略的安全性、有效性、活性以及稳定性,从而验证D T M策略方案的可靠性。
关键词动态温度管理策略,统计模型检测,多核系统中图法分类号TP306.7 文献标识码AFormal Verification of TAPE Strategy for Dynamic Temperature Management in Multi-core SystemQ U Yuan-yuan H O N G M ei S UN Ning(Department of Computer Science,Sichuan University,Chengdu 610025,China)Abstract Distributed D T M strategy in m ulti-core system is widely used because of its scalability. Before a distributed D T M policy is deployed,its reliab ility m ust be verified. In order to overcome the lim itations of the traditional analytical m ethods,the model checking technique is applied to the analysis of distributed D T M strategies. T his paper analyzed a T A P E policy which is a distributed D T M policy instance in a m ulticore system using statistical model checking techniques. The verification of T A P E strategy by U P P A A L SMC proves the security, validity, activity and stability of T A P E strategy,and proves the reliab ility of D T M scheme.Keywords Dynamic temperature management strategy,Statistical model checking,M ulti-core system1绪论为了维持多核系统的温度在阈值之下并最大化计算机的 性能,近年来出现了多种温度管理技术。
基于模型的自动化测试工具的实现
基于模型的自动化测试工具的实现基于模型的自动化测试工具(Model-based Testing Tool)是一种用于测试软件系统的工具,通过对软件系统建立模型,自动生成测试用例并执行测试,以提高测试效率和测试覆盖率。
本文将介绍基于模型的自动化测试工具的实现过程,包括模型建立、测试用例生成和执行三个主要步骤。
首先,构建软件系统模型是基于模型的自动化测试的关键步骤。
模型是对软件系统的抽象描述,通过对系统关键状态和行为建模,可以帮助理解系统功能和结构,并据此生成测试用例。
模型建立可以使用不同的建模语言和工具,如UML(统一建模语言)、BPMN(业务流程建模和标记语言)等。
根据系统的特点和需求,选择合适的建模语言和工具进行模型构建。
其次,基于模型的自动化测试的核心是测试用例生成。
模型可以为自动生成测试用例提供基础,通过对模型进行逆向分析、系统覆盖分析和路径选择等技术,生成全面且有效的测试用例。
测试用例生成可以使用各种技术和算法,如符号执行、模型检测、遗传算法等。
其中,符号执行是一种常用的测试用例生成技术,它通过对程序路径的符号化计算,自动创建各种输入数据并执行程序,以发现潜在的错误和漏洞。
最后,基于模型的自动化测试还需要执行生成的测试用例,并收集和分析测试结果。
测试用例执行可以使用自动化测试工具完成,通过模拟用户的操作和输入,执行测试用例并记录系统的响应和输出。
在测试用例执行过程中,可以使用断言(assertion)来验证系统的实际行为是否符合预期。
测试结果的收集和分析可以使用各种技术和工具,如测试报告生成工具、测试结果可视化工具等。
这些工具可以帮助开发人员和测试人员更好地理解系统的测试覆盖和测试效果,及时发现和修复问题。
综上所述,基于模型的自动化测试工具的实现主要包括模型建立、测试用例生成和执行三个步骤。
模型建立通过对系统建立抽象描述,帮助理解系统结构和功能;测试用例生成通过对模型进行逆向分析和路径选择,自动生成全面且有效的测试用例;测试用例执行通过模拟用户操作和输入,验证系统的实际行为是否符合预期;同时,测试结果的收集和分析可以帮助开发人员和测试人员更好地理解系统的测试覆盖和测试效果。
基于模型检测的程序验证与形式化验证方法研究
基于模型检测的程序验证与形式化验证方法研究程序验证是软件工程中非常重要的一环,旨在确保软件系统能够以期望的方式运行,避免潜在的错误和安全漏洞。
随着软件规模的增长和复杂性的提高,传统的手工验证方法已经无法满足需求,因此形式化验证方法逐渐被引入。
形式化验证旨在通过形式化方法来验证程序的正确性。
模型检测是其中一种形式化验证的方法,其基本思想是通过构建系统的有限状态模型,然后对该模型应用逻辑规范进行验证。
一、模型检测的基本原理和流程在进行模型检测之前,首先需要明确待验证的属性和系统的规范。
这些规范可以使用时序逻辑等形式化语言来表达,如线性时序逻辑(LTL)或计时时序逻辑(CTL)。
模型检测的基本流程如下:1. 构建系统模型:根据被验证系统的需求和规范,构建一个有限状态模型,以有限状态自动机(Finite State Automaton)的形式进行表示。
2. 编码规范:将系统规范用形式化的语言进行编码,常用的形式化语言有CTL、LTL、Promela等。
3. 开始验证:使用模型检测工具对系统模型和规范进行验证。
模型检测工具会遍历系统的所有可能状态,判断是否满足规范的要求。
4. 结果分析:根据模型检测工具的输出结果,对验证结果进行分析,确定系统是否满足规范。
二、模型检测的优势与局限性相比传统的测试方法,模型检测具有以下优势:1. 全面性:模型检测可以遍历系统的所有可能状态,从而能够全面地检查系统是否满足给定的规范。
2. 高效性:模型检测通过自动化的方式进行验证,相比手工验证工作效率更高。
3. 自动化:模型检测可以通过计算机程序来执行,提高验证的自动化程度。
然而,模型检测也存在一些局限性:1. 状态爆炸:当系统的状态空间非常大时,模型检测可能面临状态爆炸问题,导致验证效率低下。
2. 时序逻辑限制:模型检测的时序逻辑规范通常只能描述单一性质,而对于复合性质的验证较为困难。
3. 完备性问题:模型检测对于未能在验证规范中明确定义的错误无法发现,因此需要谨慎选择验证规范。
命题投影时序逻辑的判定性、复杂性、表达性及模型检测
命题投影时序逻辑的判定性、复杂性、表达性及模型检测命题投影时序逻辑(PCTL)是一种常用于对并发、并行系统进行建模和验证的形式化方法。
本文将就PCTL的判定性、复杂性、表达性及模型检测进行探讨和讨论。
在开始讨论之前,我们首先需要了解PCTL的基本概念。
PCTL是时序逻辑的一种扩展,它引入了概率语义和条件概率的计算。
PCTL的主要特点是可以描述系统的状态转移特性,包括安全性、可达性和稳定性等性质。
首先,我们来探讨PCTL的判定性。
判定性是指给定一个PCTL公式,能否通过某种算法判断该公式是否成立。
在PCTL 中,由于引入了概率语义,判定性问题较为复杂。
事实上,对于一般的PCTL公式,其判定性问题是不可判定的,即不存在通用的算法能够判断该公式的成立性。
然而,对于特定类型的PCTL公式,如安全性和稳定性公式,可以使用模型检测的方法进行有效判定。
模型检测是一种通用的方法,通过在有限状态模型上验证公式是否成立,来判断系统的性质。
接下来,我们来探讨PCTL的复杂性。
复杂性是指判断PCTL公式成立性所需的计算资源的量度。
复杂性问题通常与计算的时间复杂性和空间复杂性相关。
值得注意的是,PCTL 的计算复杂性是与所处理的概率分布相关的。
一般而言,PCTL 公式的计算复杂性是指数级的,这意味着随着系统状态空间的增大,所需要的计算资源呈指数级增长。
这是由于PCTL的计算涉及到对所有可能的状态序列进行穷举计算。
然后,我们来讨论PCTL的表达性。
表达性是指PCTL的能力,即它是否能够描述我们关心的各种性质。
PCTL具有很强的表达性,可以描述多种性质,包括无界性质(如安全性和可达性)和有界性质(如稳定性)。
PCTL允许在性质中引入概率限制,从而可以描述系统状态在不同时间段内满足某种条件的概率。
最后,我们来讨论PCTL的模型检测方法。
模型检测是一种常用的验证方法,用于判断给定的公式是否在给定的系统模型中成立。
模型检测通过穷举系统状态空间进行计算,判断系统模型是否满足公式。
te细胞ctl表面具有鉴定意义的标志
te细胞CTL表面具有鉴定意义的标志引言te细胞CTL(Cytotoxic T Lymphocytes)是一类免疫细胞,主要参与细胞免疫应答。
细胞免疫是机体针对病原体或异常细胞发起的一种免疫应答,其核心是杀伤和清除异常细胞。
鉴定te细胞CTL是重要的,因为它们在多种疾病的发生和发展中起着关键作用。
本文将探讨te细胞CTL表面上具有鉴定意义的标志物,以及它们的功能和临床应用。
1. CD8蛋白CD8蛋白是te细胞CTL表面的标志物之一。
它是一种跨膜蛋白,与MHC I分子的α链紧密结合。
CD8蛋白在细胞免疫中起到重要作用,它能够识别MHC I分子上的抗原肽复合物,并通过其胞内结构的信号传导功能,激活细胞杀伤机制。
CD8蛋白的表达水平在te细胞CTL中较高,因此可以作为鉴定te细胞CTL的重要标志。
2. T细胞受体(TCR)TCR是te细胞CTL表面的另一个重要标志物。
TCR是一种膜结合的受体,由α链和β链组成。
它能够识别抗原与MHC分子结合的复合物,并与该抗原结合,激活te细胞CTL的免疫应答。
TCR的多样性决定了te细胞CTL对不同抗原的识别能力,因此TCR是鉴定te细胞CTL的重要标志之一。
3. CD45RO蛋白CD45RO蛋白是一种膜结合的抗原,主要表达在记忆T细胞(包括te细胞CTL)的表面。
相比于CD45RA蛋白,CD45RO蛋白的表达水平在活化的te细胞CTL中较高。
CD45RO蛋白的高表达提示te细胞CTL经历了免疫应答的活化过程,因此是鉴定活化态te细胞CTL的重要标志。
4. PD-1蛋白PD-1蛋白(Programmed Death 1)是一种抑制性共刺激分子,其表达在很多免疫细胞表面,包括te细胞CTL。
PD-1蛋白的主要功能是通过与其配体PD-L1结合,抑制te细胞CTL的活化,从而调节免疫应答的幅度。
PD-1蛋白的高表达与免疫耐受有关,在某些疾病中具有重要的病理意义。
因此,PD-1蛋白也是鉴定te细胞CTL的重要标志之一。
编程技术中的软件验证与形式化验证方法研究
编程技术中的软件验证与形式化验证方法研究在当今信息技术高速发展的时代,软件在我们的生活中扮演着越来越重要的角色。
然而,软件的复杂性和错误可能性也在不断增加。
为了确保软件的正确性和安全性,软件验证变得越来越重要。
在编程技术中,软件验证和形式化验证方法是两个研究的重点领域。
软件验证是指通过系统化的方法和技术来检查和验证软件的正确性。
它可以帮助开发人员发现和修复软件中的错误,减少软件的故障率,提高软件的可靠性。
软件验证的方法有很多种,其中一种常用的方法是测试。
测试是通过运行软件并输入各种输入数据,观察软件的输出结果来检查软件的正确性。
然而,测试方法存在一定的局限性,无法覆盖所有可能的输入情况,也无法保证软件的正确性。
因此,形式化验证方法应运而生。
形式化验证方法是指使用数学和逻辑的方法来验证软件的正确性。
它通过形式化的规范和证明来验证软件的行为是否符合预期。
形式化验证方法可以提供更高的保证,能够发现软件中的隐藏错误和漏洞。
其中,模型检测是一种常用的形式化验证方法。
模型检测通过对系统的模型进行状态空间的遍历来检查系统是否满足某些性质。
它可以自动化地对系统进行验证,并给出反例来指示错误的发生位置。
另外,定理证明也是一种常用的形式化验证方法。
定理证明通过数学的推理和证明来验证软件是否满足某些性质。
它可以提供严格的证明和保证,但也需要较高的数学和逻辑能力。
随着软件的复杂性不断增加,形式化验证方法也在不断发展和完善。
例如,符号执行是一种新兴的形式化验证方法。
符号执行通过对程序的符号变量进行符号化执行,来探索程序执行路径的所有可能情况。
它可以发现隐藏的错误和漏洞,并生成输入数据来导致错误的发生。
另外,抽象解释也是一种重要的形式化验证方法。
抽象解释通过对程序的抽象和近似来进行验证,从而减少验证的复杂性和开销。
它可以将程序的行为抽象为一些属性,然后通过对这些属性进行验证来判断程序的正确性。
尽管形式化验证方法在软件验证中具有重要的作用,但它们并不是万能的。
细胞毒性T淋巴细胞(CTL)对肿瘤的识别与治疗-最新年精选文档
细胞毒性T淋巴细胞(CTL)对肿瘤的识别与治疗-最新年精选文档细胞毒性T淋巴细胞(CTL)对肿瘤的识别与治疗近年来肿瘤特异性免疫治疗的研究迅速发展,其基本原理是根据细胞毒性T淋巴细胞(CTL)可以特异性识别存在于肿瘤细胞表面的抗原多肽(这种识别受MHC-Ⅰ类分子限制),当肿瘤抗原多肽在抗原提呈细胞(APC)的作用下以MHC-肽分子复合物的形式被呈递于APC表面时被CTL所识别,同时CTL也被激活增生分化为具有杀瘤活性的CTL,从而特异杀伤肿瘤细胞。
基于这一理论基础,肿瘤抗原的发现以及CTL表位鉴定成为特异性免疫治疗及多肽疫苗研制的重要前提。
细胞免疫尤其是CD8+ CTL 细胞亚群在抗胞内寄生菌、病毒、某些真菌感染及抗肿瘤免疫中起着十分重要的作用。
国内外学者结合CTL的这些特点以及CTL 表位的研究情况,以CTL表位为基础进行疫苗设计,希望能够诱导机体产生保护性CTL免疫应答从而预防和治疗疾病。
?多肽疫苗是针对T细胞和某些B细胞的免疫表位而设计的。
T细胞识别抗原是靶细胞或抗原呈递细胞MHC-Ⅰ类或Ⅱ类分子呈递的由8~12个氨基酸组成的多肽。
已知HPV-16E6 E7是HPV 相关肿瘤特异性肿瘤排斥抗原,含多个线性B细胞表位、CD4+ T 细胞表位和CD8+ CTL表位,与MHC分子亲和力高,抗原性强,是HPV疫苗设计公认的靶抗原[1];而且在HPV肿瘤细胞中表达的主要是癌蛋白E6 E7,因此对HPV-16 E6 E7的CTL表位进行预测并制备其相应的多肽疫苗是十分有意义的。
同时由于HPV-16 E6 E7 CTL表位可以被HLA-A2、HLA-A3分子递呈,而我国HLA-A2阳性人群高达53%[2],故预测HPV-16E6 E7 HLA-A2限制性表位就更具有现实意义。
本研究采用超基序法与量化基序方案相结合,拟预测由9个氨基酸残基组成的HLA-A2限制性CTL 表位,为多肽疫苗的研制提供理论基础。
程序中死锁检测的方法和工具
程序中死锁检测的方法和工具翟宇鹏;程雪梅【摘要】死锁一直都是并发系统中最重要的问题之一,对死锁检测的研究一直都在不断地进行着.模型检测方法是一种重要的自动验证技术,越来越多地被用在验证软硬件设计是否规范的工作中.针对死锁检测的问题进行综述,统计已有的死锁检测方法的文献资料并给出统计结果.然后对搜集出来的文献进行分析,介绍许多动态以及静态的死锁检测方法.最后介绍两种常用的模型检测工具,提出使用模型检测工具进行死锁检测的思路与方法,并证实这种方法的可行性.【期刊名称】《现代计算机(专业版)》【年(卷),期】2017(000)003【总页数】5页(P41-44,53)【关键词】死锁检测;模型检测;文献计量分析【作者】翟宇鹏;程雪梅【作者单位】四川大学计算机学院,成都610065;四川大学计算机学院,成都610065【正文语种】中文随着计算机行业的不断发展,软件规模和复杂度也在不断扩大,软件故障已成为计算机系统出错和崩溃的主要因素。
死锁[1]是分布式系统以及集成式系统中的最重要的问题之一,也是影响软件安全的主要因素。
死锁会导致程序无法正常运行或终止,甚至导致系统崩溃,带来不必要的损失。
同时,死锁的运行状态空间过大,难于重现和修正等问题使其成为软件领域的难题之一,因此,如何有效地检测死锁,提高软件的可靠性和安全性,成为急需解决的问题。
本文针对10年内国内外各知名数据库中与死锁检测以及模型检测相关的论文进行查询、筛选、分类、比较、整理等,然后对整理好的论文进行总结,分析出死锁检测的方法并进行罗列比较,以及模型检测的工具以及方法,从而再将二者结合,找出模型检测工具在死锁检测里的应用。
对搜索出来的412篇论文的不同方向进行了计量分析,并对统计的数据进行了描述,以及通过计量分析来找出这方面研究领域的热点。
因为近10年的论文更能体现出研究的正确方向,所以对于论文时间进行分析,得知最近10年每年论文发表量随着时间在平缓地增多,可知对于这方面问题的研究总体保持在增长的状态。
CTAV是时间自动机关于LTL性质的模型检测工具-计算机科学国家
计算机科学国家重点实验室 景丽莎
Why do this about CTAV?
How to do this about CTAV?
扩展实现的技术方案和实施路线
What is CTAV?
CTAV 是时间自动机关于LTL性质的模型检测工具。 ·时间自动机 TA [19] M=(L,l0,Σ,X,I,E) ·线性时序逻辑(linear temporal logic,LTL)性质 [9][10] (1) 如果 p ∈ AP ,则 p 为 LTL 公式; (2) 如果 Φ 、 Ψ 为公式,则 ¬Φ , Φ∧Ψ, Φ∨Ψ , XΦ , ΦUΨ 为 LTL 公式,其中 X(next), U(until), R(release)为时序算子。 ·模型检测[4][5] 模型检测是一种对系统进行形式化验证的算法, 它可以自动地在模型状态空间中搜索不满足规范的路径或 状态,设计者可以根据找到的反例修改系统设计,进而提 高系统的可靠性。
自我介绍
景丽莎 2013级硕士研究生 导师:内敛认真的李广元老师,人超级nice~ 研究方向:实时系统的模型检测 兴趣爱好:游泳、说相声、弹吉他、阅读
报告内容
以下将主要介绍我研究生阶段的两方面工作:
(1)动态污点数据跟踪PIPE工具的设计与实现 -项目概况:avalanche工具是Linux平台上,基于valgrind平台的动态的漏洞 分析与漏洞挖掘工具。它能够不断使用路径取反和STP求解产生新的测试用例, 来试图从多路径触发待检测软件的逻辑漏洞,以提高覆盖率。但是它仅能够根 据valgrind生成的VEX中间代码完成数据流依赖的污点数据分析。 -负责工作:为了弥补avalanche的不足,根据控制流分析,观测多条路径的污 点变量产生情况,标记污点数据,记录污染的版本,完成污点数据的控制流分 析。PIPE工具从进入控制流的污点数据出发,依据其不同控制条件,区分数据 在不同控制路径的版本,判断是否将其标记为污点数据。
一种求解认知难题的模型检测方法
计
算
机
学
报
ቤተ መጻሕፍቲ ባይዱ
Vo 3 No L 3 .3
M a. 2 0 r 01
CH I NES OURNAL OF COM P EJ UTERS
一
种 求解 认 知 难题 的模 型 检 测 方法
骆翔宇”’ 苏开乐 顾 明”
hep t i l s l i s,bu lo v rf e a e e l o fnd a l o uton ta s e iy r l t d t mpo a pit mi o e te .Su h c r c e i— r le s e cpr p r is c ha a t rs tc i o uly s pp r e y t u r n e son ofM CK ,M CM AS nd DEM O.Th ut r m— i s n tf l u o t d b he c r e tv r i a e a ho s i p e n e he p o s d me ho n t e s mb i l me t d t r po e t d i h y olcmod lc e ke CTK a OBDD n e iid t e e h c r M vi a d v rfe h s um nd pr d trdd e The e a o uc i l . xpe i n a e u t ho t tt op s d m e ho s c r e ta d rme t lr s ls s w ha he pr o e t d i o r c n e fce t fii n .
进 行 建 模 和验 证 , 实验 结 果 说 明 了文 中方 法 的 正确 性 和 高 效 性 .
一种求解认知难题的模型检测方法
A Model Checking Approach f or Solving Epistemic Riddles
(1) P 说 “: 我不知道这两个数”; (2) S 说 “: 我早已知道你不知道这两个数”; (3) P 说 “: 我现在知道这两个数了”; (4) S 说 “: 我现在也知道这两个数了”. 请问这两个数 ( x , y) 是什么 ? 由于主体只是公告了他们关于这两个数的知识 或无知 ,并没有这两个数的具体描述 ,因此初看起来 这些公告对于主体推测这两个具体的数是没有价值 的. 然而事实并非如此 ,主体可通过其他主体的公告 逐步推断出这两个数的实际值. 例如 ,这两个数不是 2 和 4 ,因为只有 2 和 4 的积是 8 ,这样 P 可推断出 这两个数是 2 和 4. 这两个数也不是素数 ,因为两个 素数的积是唯一的 ,因此 P 也可根据积推断出这两 个素数. 此外 ,这两个数也不是 14 和 16 ,因为素数 7 和 23 的和同样是 30 ,而素数 7 和 23 可被 P 推断 出 ,因此如果和是 30 ,那么 S 应该认为 P 可能知道 这两个数. 然而 S 却说他知道 P 不知道这两个数. 因此这两个数不可能是 14 和 16. 通过此类推断 , S 和 P 可逐步排除那些不可能的数对 ,最终得到该问 题的唯一解是 (4 ,13) .
第 33 卷 第 3 期 2010 年 3 月
计 算 机 学 报 C H IN ESE J OU RNAL O F COM PU T ERS
Vol. 33 No . 3
计算机软件的安全漏洞检测方法
计算机软件的安全漏洞检测方法计算机软件的安全漏洞检测方法是指一系列技术和方法,通过对计算机软件进行静态分析、动态分析、漏洞扫描和漏洞验证等手段,发现并修复软件中的安全漏洞。
安全漏洞检测是保障软件系统安全的重要环节,下面将介绍几种常用的安全漏洞检测方法。
1.静态分析:静态分析是指在不运行软件的情况下对源代码或二进制文件进行分析,以发现潜在的安全漏洞。
静态分析工具可以通过对代码的控制流、数据流和语义信息进行分析,找出代码中的安全漏洞。
静态分析技术主要包括符号执行、模型检测和代码审查等方法。
- 符号执行(Symbolic Execution):符号执行是一种自动化测试方法,通过对程序的输入进行符号化,以符号的形式执行程序,路径条件约束和符号化输入数据来推导输入的约束条件,从而找到能让程序进入不正常分支的输入,即潜在的安全漏洞点。
- 模型检测(Model Checking):模型检测是一种形式化验证方法,将软件系统建模为有限状态自动机,利用模型检测工具自动系统模型的状态空间,以发现系统中的安全漏洞。
模型检测技术主要包括LTL模型检测和CTL模型检测。
- 代码审查(Code Review):代码审查是一种人工的安全漏洞检测方法,通过人工对代码进行仔细分析,查找代码中的安全漏洞。
代码审查可以通过手动审查和自动审查工具结合使用,提高审查效率与准确性。
2.动态分析:动态分析是指在运行时对软件进行分析,以检测软件中的安全漏洞。
动态分析主要通过对软件的输入和执行状态进行监测和分析,来发现潜在的安全问题。
常用的动态分析技术包括模糊测试、漏洞挖掘和运行时监测。
- 模糊测试(Fuzz Testing):模糊测试是一种输入驱动的测试方法,通过随机生成或修改软件的输入数据,将错误的或异常的输入传递给软件,以触发软件中的异常行为和漏洞。
模糊测试可以发现软件中的缓冲区溢出、格式化字符串漏洞等常见安全问题。
- 漏洞挖掘(Vulnerability Discovery):漏洞挖掘是一种主动探索软件中的安全漏洞的方法,通过对软件的运行过程进行跟踪和分析,发现软件运行时的异常行为和非预期状态,从而发现软件中的安全漏洞。
基于ATL的公平交换协议的形式化验证
基于ATL的公平交换协议的形式化验证李群;陈清亮【摘要】如何对电子商务协议进行分析与验证一直是研究的热点,基于ATL(交替时态逻辑)对电子商务协议中的公平交换协议(Fair Exchange Protocols)进行形式化分析与验证,并选取了其中的一个电子合同签署协议进行形式化验证。
用ATL语言来形式化描述公平交换协议,并使用ATS(Alternating Transition Systems,交替转移系统)来为公平交换协议进行形式化建模,再用形式化验证工具MOCHA对公平交换协议的公平性(Fairness)、及时性(Timeli-ness)和不可滥用性(Abuse-Freeness)进行有效的验证;对验证结果进行分析与讨论,发现了该协议不满足公平性和不可滥用性,不符合设计的要求。
%How to analyze and verify the e-commerce protocols has been a hot research. This paper bases on ATL(Alter-nating-Time Temporal Logic)to formal analyze and verify the fair exchange protocol, and chooses a electronic contract signing protocol for formal verification. It describes the fair exchange protocol by using the ATL language, and formal model of the fair exchange protocol by using ATS(Alternating Transition Systems), and verifies the fairness, timeliness and abuse-freeness of the fair exchange protocol effective by using the formal verification tool MOCHA. The paper analyzes and discusses the result of the verification in the end, and finds that this protocol does not satisfy the fairness and abuse-freeness.【期刊名称】《计算机工程与应用》【年(卷),期】2015(000)019【总页数】5页(P32-36)【关键词】形式化验证;交替时态逻辑(ATL);MOCHA工具;公平交换协议【作者】李群;陈清亮【作者单位】暨南大学计算机科学系,广州 510632;暨南大学计算机科学系,广州 510632【正文语种】中文【中图分类】TP301.21 引言电子商务是一种各个参与者通过计算机和Internet技术来实现交易的业务,人们可以通过电子商务的形式,实现商品或服务的交换。
用bnf范式给出ctl公式的定义
用bnf范式给出ctl公式的定义CTL公式的定义CTL(计算树逻辑)是一种用于描述计算机系统中的属性和行为的逻辑形式。
它是一种模型检测的形式化语言,用于验证计算机系统的性质。
使用BNF(巴科斯-诺尔范式)来定义CTL公式,可以帮助我们理解和使用这种逻辑语言。
BNF是一种用于描述形式语言的语法的元语言。
它使用产生式规则来定义语法结构,其中包含终结符和非终结符。
在这里,我们使用BNF范式来定义CTL公式的语法结构。
CTL公式由以下几个部分组成:1. 原子命题:原子命题是指具有真值的基本命题,用于描述系统状态的属性。
例如,p表示命题p为真。
原子命题可以是系统中的任何属性,如“系统状态为s”或“系统中存在路径满足某个性质”。
2. 逻辑运算符:逻辑运算符用于组合和操作CTL公式。
常见的逻辑运算符包括与(∧)、或(∨)、非(¬)和蕴含(→)。
例如,p∧q 表示p和q都为真,¬p表示p为假。
3. 路径量词:路径量词用于描述路径上的性质。
CTL公式中有两种路径量词:全称量词(A)和存在量词(E)。
全称量词表示路径上的所有状态都满足某个性质,存在量词表示路径上存在一个状态满足某个性质。
4. 时间量词:时间量词用于描述时间性质。
在CTL公式中,时间量词包括下一个(X)、直到(U)、全局(G)和存在(F)。
下一个(X)表示下一个状态满足某个性质,直到(U)表示从当前状态到某个状态一直都满足某个性质,全局(G)表示路径上的所有状态都满足某个性质,存在(F)表示路径上存在一个状态满足某个性质。
CTL公式的结构可以表示为:CTL公式 ::= 原子命题 | 逻辑运算符 | 路径量词 CTL公式 | 时间量词 CTL公式其中,原子命题、逻辑运算符、路径量词和时间量词都是非终结符,表示CTL公式的不同部分。
通过使用这些非终结符,我们可以构建出各种复杂的CTL公式来描述系统中的属性和行为。
例如,我们可以使用CTL公式来描述一个系统是否满足以下属性:在任何路径上,存在一个状态满足“系统状态为s1”,并且下一个状态满足“系统状态为s2”。
软件测试中的模型检测方法分析
软件测试中的模型检测方法分析在软件开发中,测试是至关重要的一环。
软件测试可以保证软件的质量,以及减少软件产生的错误和bug。
软件测试的方法有很多,其中一种比较新颖的测试方法就是模型检测(Model Checking)。
模型检测是一种形式化验证方法,它通过将软件的状态表示为有限状态自动机(Finite State Machine)或有限状态转换系统(Finite State Transition System),并通过计算机算法对它们进行验证。
这种方法不仅可以用来检测软件系统的正确性,也可以用来检测通信协议、硬件电路等各种不同的系统。
软件测试中的模型检测方法可以分为静态模型检测和动态模型检测两种方式。
静态模型检测静态模型检测是指通过在编译时对软件的源代码进行分析,来发现可能导致错误的代码段。
静态模型检测不需要程序运行过程中的输入数据,因此可以节省软件测试过程中的时间和人力成本。
静态模型检测的方法有很多,其中比较常见的方式是通过数据流分析(Data Flow Analysis)或控制流分析(Control Flow Analysis)来进行。
数据流分析是指通过分析程序中的数据流和变量的使用情况,来判断程序的潜在缺陷。
例如,如果一个变量在某个分支中没有被初始化,但却在其它判断下被使用了,那么就可能出现未定义的行为。
通过数据流分析,就可以发现这类问题。
控制流分析是指通过分析程序的执行流程,来判断程序中可能存在的错误。
例如,在一个变量使用之前,如果没有对其进行初始化或赋值,那么就可能出现未定义的行为。
通过控制流分析,就可以发现这类问题。
动态模型检测动态模型检测是指在程序运行时,通过模拟程序的行为路径,来检测软件系统中的错误。
动态模型检测需要输入一组合适的测试用例,来模拟程序的运行流程。
动态模型检测的方法包括基于符号执行(Symbolic Execution)的方法和基于模拟(Simulation)的方法。
基于模型检测的审计方法逻辑正确性验证
基于模型检测的审计方法逻辑正确性验证李雅;黄少滨;关晓康;李艳梅;朱璧如【摘要】利用模型检测的建模方法,对审计方法及其计算过程和期望的计算结果进行建模,并在模型检测器上对逻辑性较强的凭证断号检查审计方法进行验证,提出一个利用模型检测方法对审计方法逻辑正确性验证的框架.利用模型检测器给出的反例,对验证的审计方法进行修正.实验结果表明,模型检测方法能验证审计方法逻辑的正确性.%Using the modeling method in model checking,the audit method,its calculation process and the expected calculation results were built to a model,and the audit method of voucher number checking which had strong logic was verified using model checker,we proposed a framework of using model checking method to verify the logic correctness of the audit method.The verification of the audit method was modified by using the counterexample of the model checker.The experimental results show that model checking method can verify the logical correctness of audit methods.【期刊名称】《吉林大学学报(理学版)》【年(卷),期】2017(055)005【总页数】8页(P1261-1268)【关键词】形式化验证;模型检测;审计方法【作者】李雅;黄少滨;关晓康;李艳梅;朱璧如【作者单位】哈尔滨工程大学计算机科学与技术学院,哈尔滨150001;哈尔滨工程大学计算机科学与技术学院,哈尔滨150001;哈尔滨工程大学计算机科学与技术学院,哈尔滨150001;哈尔滨工程大学计算机科学与技术学院,哈尔滨150001;吉林大学计算机科学与技术学院,长春130012【正文语种】中文【中图分类】TP311.5计算机审计是审计工作的重要方法, 可有效提高审计效率, 并扩大了审计范围, 但目前尚未见对审计方法逻辑正确性验证研究的报道. 对审计方法进行正确性验证, 需要解决验证SQL语句的逻辑正确性问题. 由于和SQL语句直接对应的是相对于流程更静态的集合操作, 验证SQL语句的逻辑正确性与验证程序正确性有较大区别, 不能直接套用验证程序正确性的方法. 文献[1]针对流程性较强的存储过程进行了逻辑正确性验证, 核心思想是用模块表示关系, 模块属性表示属性, 离散化表示数型变量. 通过对现有审计方法的分析, 本文利用模型检测对审计方法的逻辑正确性进行验证.模型检测是一种验证有限状态并发系统(模型)是否满足给定性质的方法. 它需要将系统构建为一个模型, 同时给出期望系统具有的性质, 提交给模型检测器, 通过穷尽搜索整个模型自动判定模型是否满足此性质. 模型检测适用于有穷系统, 是自动验证的过程, 当验证的模型不满足给定性质时给出反例是模型检测的显著特点. 模型检测虽然利用数学归纳法和规约可以验证无穷系统, 但需要一定技巧使有穷系统表示出无穷系统. 相对于演绎推理, 模型检测可以完全自动化验证, 且目前已经提出很多方法降低模型检测算法的时间和空间复杂度, 能验证更复杂的系统. 反例是证明模型违反给定性质的执行轨迹, 可作为改进系统或精化模型的重要参考. 目前, 模型检测已经广泛应用于通讯协议、安全协议、控制系统以及部分软件的验证[2-3]. 本文利用模型检测的相关知识, 提出一种可用于审计方法逻辑正确性验证的框架, 并在实际财务审计方法上进行验证, 尝试修正错误的审计方法.1.1 模型检测为采用模型检测的方法对审计方法逻辑性进行验证, 必须使用模型检测器的描述性语言对系统进行建模, 用模型检测器的规范语言对待验证性质进行编码. 在模型检测中可以用迁移系统建模.定义1[4] 一个迁移系统M=(S,→,L)是一个状态集合S, 带有迁移关系→(S上的二元关系, ∀s∈S, ∃s′∈S, s→s′)及一个标记函数L:s→P(Atom).对于待验证性质的编码, 除了逻辑运算中常用的与(&,∧)、或(|,∨)、非(!,)和推导出(→)算符外, 模型检测还用到时态逻辑、引入线性时态逻辑(linear temporal logic, LTL)和计算树逻辑(computation tree logic, CTL)的算子[4]. LTL引入了下一个(X)、未来(F)、全部(G)、释放(R)、直到(U)、弱直到(W)算子, 而CTL引入了类似量词的存在(E)和全部(A).定义2[4] 线性时态逻辑递归地用Backus-Naur范式[5]给出的语法为其中: p表示某原子命题集合Atom中的任意命题原子; φ表示时态逻辑公式.定义3[4] 通过Backus-Naur范式归纳定义CTL语法:(EXφ)|(EFφ)|(EGφ)|E(φUφ)|(AXφ)|(AFφ)|(AGφ)|A(φUφ),其中: p表示某原子命题集合Atom中的任意命题原子; φ表示时态逻辑公式.由上述语法可知: T、⊥和原子命题是LTL、CTL公式;如果φ是公式, 则φ,φ∧φ,φ∨φ,φ→φ,Xφ,Fφ,Gφ,φUφ,φRφ,φWφ是LTL公式; CTL公式有类似的递归定义, 且在CTL公式中算子X,F,G,U在前面没有A或E的情况下不能单独出现. 类似地, 每个A或E必须伴随着X,F,G或U之一出现.π=s1s2……是模型M中的一条路径. π是否满足一个时态逻辑公式, 由满足关系定义如下:1) 通用逻辑算子:① πT;② π|≠⊥;③ πp↔p∈L(s0);④ πφ↔π|≠φ;⑤ πφ1∧φ2↔πφ1∧πφ2;⑥ πφ1∨φ2↔πφ1∨πφ2;⑦ πφ1→φ2↔πφ1→πφ2;2) 时态逻辑引入的算子, LTL算子:⑧ πXφ↔π2φ;⑨ πGφ↔∀i≥1, πiφ;⑩ πFφ↔∃i≥1, πiφ;πφUφ↔(∃i≥1, πiφ)∧(∀1≤j≤i-1, πjφ);πφWφ↔((∃i≥1, πiφ)∧(∀1≤j≤i-1, πjφ))∨(∀k≥1, πkφ);πφRφ↔((∃i≥1, πiφ)∧(∀1≤j≤i, πjφ))∨(∀k≥1, πkφ);3) CTL算子:πEφ↔∃π1′=π1, π′φ;πAφ↔∀π1′=π1, π′φ.非形式化的不精确描述可以理解各定义的重点, 其中①,②中的T表示恒为真, ⊥恒为假;由③知对于路径π, 检验其第一个状态s0;⑤~⑦分别说明了对∧,∨和→的类似分配律的规律;⑧~⑩ 分别强调了在路径上第二个状态、所有状态、某个状态, 其中πi表示从si开始的后缀;~可分别不精确地理解为先φ后φ、先φ后φ或全φ、先φ后φ或全φ; ,中的E和A针对从当前状态出发的路径, E与A 对偶, Eφ↔Aφ, 同谓词逻辑中∃与∀对偶同理. 一些常用的时态逻辑公式列于表1和表2.1.2 符号化模型检测器目前, 模型检测工具已经较成熟. 例如, 基于自动机理论的SPIN[6]、符号化模型检测器SMV(symbolic model verifier)[7]和面向软件模型检测的工具VeriSoft[8]、JPF(Java PathFinder)[9]和CPAChecker[10]. SMV最初是作为符号化模型检测的技术验证而出现的, 使用符号化模型检测可缓解状态空间爆炸问题, 主要是面向硬件的验证, 由C语言编写, 是开源软件. SMV有自己特定的输入语法, 该语法较易描述有限状态系统, 并以模块的形式支持输入内容的复用, SMV输入语言学习曲线相对平缓. 此外, SMV还利用了二叉决策图, 通过更快判定某组取值是否能满足状态, 减少状态的开销, 提高检测效率.NuSMV[11]是在符号化模型检测器SMV的基础上重新设计、扩展并实现的. NuSMV是一个开放、可组装定制、低耦合的系统. NuSMV提供了文字形式的交互界面, 通过控制台标准输入、输出进行程序和用户的交互, 同时保留了SMV的批处理运行方式, 通过文字交互界面, 用户可以输入各种系统命令进行各种预制和自定义的操作, 支持CTL规约, 支持SAT为基础的有界模型检测, 允许在指明的路径上检查变量取值和变化情况, 分区方法则允许通过特定方式将大模型划分为小模型后进行模型检测.由定义1可知, 模型检测中的模型是迁移系统, 由状态和迁移关系共同组成, 而待验证的性质是时态逻辑公式, 为了验证一个系统是否满足一个性质, 必须满足以下3点: 1) 需要使用模型检测器的描述性语言对系统进行建模, 得到一个模型; 2) 用模型检测器的规范语言对性质进行编码, 产生一个时态逻辑公式; 3) 以上述的模型和公式作为输入, 运行模型检测器. 将模型检测应用于检验审计方法的逻辑正确性, 同样需要对审计方法进行建模, 并对“逻辑正确”这一待验证的性质进行编码. 但审计方法不同于模型检测所验证的模型, 无明显流程, 不能构建反映审计方法运行状况的模型. 因此, 要用模型检测方法验证审计方法的逻辑正确性, 就要做出改进, 将模型检测的模型和性质对应到审计方法逻辑正确性验证中. 表3列出了本文提出的模型检测与审计方法逻辑正确性验证中概念的对应关系.由表3可见, 模型要对应程序在不同数据上的行为. 而模型是迁移系统, 由定义1可知, 迁移系统包括状态集合、迁移关系和标签函数, 因此要对审计方法的逻辑进行验证就需明确审计方法中模型相对应的这几个元素. 整个迁移系统中的状态集合需包含程序全部行为, 其中一条路径是在一种输入上的行为状态序列. 具体到采用SQL语句审计方法的逻辑正确性验证, 每条路径是在一种数据集上执行SQL语句并生成的结果. 每个状态记录了程序在当时路径上的行为, 显然初始状态集合是空集. 由于迁移系统无终止状态, 需单独用一个状态模拟, 类似于经典迁移系统结构中表示死锁状态的处理方法, 在关键指标外, 额外引入一个变量, 表示集合结束, 在定义迁移关系时额外处理该变量即可.考察是否符合期望的性质才能反映出待检测SQL语句的正确与否, 将该思路应用到上述迁移系统中, 每条路径满足与否相同, 即相当于对于每个数据集上SQL语句的行为, 考察SQL语句的查询结果和期望得到的结果是否一致. 若待检测的SQL语句逻辑正确, 模型检测输出满足, 对每条路径, 待检测SQL语句和期望公式或者同时满足, 或者同时不满足. 相应地, 模型检测给出的反例意义也十分明确, 或者路径满足SQL计算过程具有的性质, 但不满足期望SQL结果的性质;或者路径满足后者性质, 但不满足前者性质, 即用“计算过程具有的性质↔计算结果具有的性质”的写法保证了模型检测器给出的反例输出即为直观上需要已知的反例. “前提条件→……”的写法保证了类似“过滤”的效果, 若给出反例, 则反例一定满足前提条件, 从而排除了不满足前提条件的路径对反例的干扰.3.1 问题描述基于上述验证框架, 下面用一个实例说明模型检测在审计方法逻辑正确性验证上的应用, 并根据反例修正审计方法.行政事业单位和企业共用一部分审计方法, 进行财务基础分析, 其中包括凭证重号检查、凭证断号检查、凭证号与凭证日期比较、凭证无附件、会计人员相关性、财务数据平衡性、凭证金额合规性及利用Benford法则的审计方法等. 本文以对凭证断号检查这一审计方法的逻辑正确性验证为例. 通用的会计准则中规定, 同一期间、同一类型, 凭证号不能有中断, 例如123合规, 124断号.目前某机构使用的审计方法, 对凭证号进行max和count取值, 若max=count,则没有问题;若max>count, 则说明存在断号. 例如: 123的情形, max=3,count=3, max=count, 没有问题; 124的情形, max=4, count=3, max>count, 存在断号. 该断号检查对应的SQL语句如下:SELECT电子账簿编号, 会计年度, 会计期间号, 记账凭证类型编号, max(int(记账凭证编号))最大凭证号, count(*)凭证总数, (CASE WHEN max(int(记账凭证编号))-count(*)>0 THEN‘是’ELSE ‘否’ END) AS是否存在断号.FROM记账凭证表GROUP BY电子账簿编号, 会计年度, 会计期间号, 记账凭证类型编号.3.2 模型的构建对上述实例建模的前提是凭证号有序. 在一条路径上, 表示的凭证号是非递减的, 类似在SQL语句中有order by. 建模需要关注max和count两个变量的变化规律, 而序列变化借助加数变化, 最后借助自指模拟出终止, 下面从状态和迁移两方面介绍建模思路.1) 对于状态, 有3个变量pnum,mmc和isTer. 前两个变量反映了该建模方法的核心思想, 第三个变量则是为了用无限的序列模拟有限集合. int型pnum表示当前加数(范围, 0..2), 即在有序的结果集中, 从上一行到当前行的加数; int型mmc表示max-count(*)(范围, -11..11), 即若结果集到此为止, 则max-count(*)的取值;boolean型isTer表示当前集合是否已经结束.2) 对于迁移, 需要借助3个变量的变化规则说明. 对于初始值, 很明显相当于从空集合开始, pnum的初始值为0, mmc的初始值为0, isTer的初始值不做限制, 可取TRUE也可取FALSE. isTer变量有最大“决定权”, 如果isTer=TRUE, 则表示集合已经结束, 余下路径即为自指带来的无限单一状态循环, 此时isTer一直为TRUE, 即next(isTer)∶=TRUE, 余下两个变量值不变, 即next(pnum)={0,1,2},next(mmc)∶=mmc. 由于NuSMV支持的变量类型都是有限大且可列的, 于是认为限定了模型大小, 规定了pnum的范围是0~2, mmc的范围是-11~11, 从而稍小的“决定权”就是考虑超界的情形, 即当(mmc+next(pnum)-1)>10或(mmc+next(pnum)-1)<-10时, 强制集合结束, 指向mmc=11且isTer=TRUE的状态, next(mmc)∶=mmc, next(isTer)∶=TRUE. 变量mmc的迁移规则体现了该建模方式的核心思想, 集合中每多一个数元素, 无论这个数与上一个数一样(pnum=0), 还是比上一个数大(pnum>0), max均为新增的数, 而count一定加1, 由此得到变量mmc的迁移规则. 此外, 在其余情况下, pnum可指向pnum=0,1,2的状态, mmc指向mmc=mmc+next(pnum)-1的状态, isTer指向isTer=TRUE,FALSE的状态, 即next(pnum)={0,1,2},next(mmc)∶=mmc+next(pnum)-1, next(isTer)={TRUE,FALSE}. 由s→s′, 需要s′中的pnum变量参与计算, 反映在SMV语法中即利用next.以next为基准, 观察每个变量的变化. 对于变量pnum的迁移, 需要有个判断, 利用case, 先判断终止再正常迁移, 如果路径需要模拟出“结束”, 即isTer成立, 则pnum的下个取值不变, 为pnum;其他情况即TRUE, pnum的下个取值可取pnum的所有值, 不确定赋值为{0,1,2}. 对于变量mmc的迁移, 同样需要判断, 利用case, 先判断终止, 再判断超界, 最后正常迁移. 如果路径需要模拟出“结束”即isTer成立, 则mmc的下个取值不变, 为mmc;如果mmc要指向的下一个状态的mmc已经超界, 即(mmc+next(pnum)-1)>10或(mmc+next(pnum)-1)<-10, 则mmc的下个取值分别为11或-11;其他情况即TRUE, mmc的下个取值为mmc+next(pnum)-1. 对于变量isTer的迁移, 同样需要判断, 利用case, 先判断超界, 再判断终止, 最后正常迁移, 如果已经超界, 形式化条件略, 则isTer的下个取值为TRUE;如果还未终止, 则isTer的下个取值可取isTer所有值, 不确定赋值为{TRUE,FALSE};其他情况即TRUE, isTer的下个状态为TRUE.综上所述, 待验证模型可使用定义1的形式化定义, 其中原子命题集合为0≤i≤2, -11≤j≤11, b∈{TRUE,FALSE}};状态集合为迁移关系→⊂S×S为{(S,S′)|}.标签函数L:S→2AP.上述模型的构建, 展示了如何利用本文建模框架对审计方法进行建模, 即用模型表示出SQL语句在不同数据上的行为, 用一条路径表示一个行为及最终的计算结果. 表4列出几个路径和结果集对应的实例, 其中每条路径最后2个状态相同, 即一个自指的状态通过类似“死锁”的方式模拟结束, 使每个状态都有指出迁移, 满足迁移系统的定义.3.3 待验证性质表1表明, 模型检测的时态逻辑公式对应了审计方法逻辑正确性验证中的“(前提条件)→(SQL语句的计算过程具有的性质↔期望SQL语句的计算结果具有的性质)”. 而对于断号, SQL计算过程性质的命题是“在计算结束时mmc>0” , 期望SQL结果性质的命题是“结束前存在pnum>1”.前半部分可用时态逻辑命题LTL形式化为“F((mmc>0)&(isTer))”;后半部分为“F((pnum>1)&F(isTer))”;此外, 这里并不需要前提条件“过滤”路径. 因此完整待检测时态逻辑命题为4.1 实验结果程序运行环境为双核*************************,2.40GHz处理器, 内存为4 GB, 操作系统为64位的Windows 7. 为了验证本文针对审计方法逻辑正确性验证的形式化框架, 采用SMV语言实现上述的模型和待验证性质如下:MODULE main//定义主模块VAR//定义变量pnum: 0..2;//加数mmc: -11..11;//max-countisTer: boolean;//结束标志ASSIGN//赋值部分, 定义出初始状态和迁移关系init(pnum)∶= 0;//初值init(mmc)∶= 0;next(pnum)∶= //迁移关系caseisTer∶pnum;TRUE∶{0,1,2};esac;next(mmc)∶=caseisTer∶mmc;(mmc+next(pnum)-1)>10∶11;(mmc+next(pnum)-1)<-10∶-11;TRUE∶ mmc+next(pnum) - 1;esac;next(isTer)∶=case(mmc+next(pnum)-1)>10|(mmc+next(pnum)-1)<-10∶TRUE;!isTer∶{TRUE,FALSE};TRUE∶TRUE;esac;LTLSPEC F((pnum>1) & F(isTer))↔F((mmc>0) & (isTer))//待检测性质使用NuSMV模型检测器进行验证, 执行结果如下:NuSMV检测出该模型不满足时态逻辑命题, 同时给出反例, 以路径表示. 路径由状态组成, 不同状态变量取值不同. 在反例中, NuSMV会用两个“Loop starts here”表示循环部分, 它们之间的部分为循环体. 下一个状态中未列明取值的变量和上一个状态中的此变量取值相同. 因此, 给出的反例路径为:(0,0,false)→(2,1,false)→(0,0,true)→(0,0,true), 其对应的结果集是{2,2}. 按照待检测SQL语句的思路: max=2, count=2, max=count, 没有问题. 但显然它是一个有问题的凭证号, 存在重号并且有断号, 可以证明待检测的SQL语句存在逻辑错误.4.2 对审计方法的修正模型检测在模型不满足验证性质时给出反例的特点, 不仅可被用于找到一个反例,还可以利用该反例路径探寻模型不满足性质的本质原因, 并对模型和性质做出修正. 继续说明断号的例子, 首先理解{2,2}这个反例产生的原因, 是max和count比较这一思路没有考虑既有断号又有重号的情形. 据此还可以想到更多反例, 如{3,3,3}和{1,2,2,4}等. 其次, 修正审计方法, 破坏反例产生的前提条件, 重号相对容易查出, 在没有重号的前提下, 验证max>count和存在断号是否等价.对于模型, 不用修改, 这也正是用模型表示程序在不同数据集合上行为, 而不是直观上完全反映系统的初衷. 当修正使用SQL语句表现审计方法时, 不用修正模型, 只需修正性质. 对于性质, 需要考虑“在没有重号这一前提下”如何形式化. “在……前提”下是典型的逻辑蕴含, 使用→, 主要作用是“过滤”需要搜索的路径, 只考虑表示没有重号的路径, 并且其在“↔”两边一定保持真假相同, 以期不对最终结果带来干扰, 类似条件模型检测中的第二步. 而没有重号的形式化描述前提是pnum 在这条路径上没有0取值, LTL公式为“XGpnum!=0”. 在该前提下, 只需考虑断号的检测方法即可;前提条件后的部分不用变动, 与之前相同. 完整的待检测性质为:引入“前提”这一写法可以保持后半部分与之前相同, 以供二者相比可更充分说明问题. 执行前, 只需更改SMV输入文件的LTLSPEC部分即可, 执行结果为可满足的. 该结果表示在模型表示的范围内, 模型满足性质. 上述实例中, 在没有重号的前提下, 是否存在断号和max>count是否成立等价. 综合上述两个结果, 在使用max和count思路判断有无断号时, 应该首先判断有无重号. 若无重号, 再使用max>count判断是否存在断号. 不能跳过重号的判断直接使用max>count判断. 综上所述, 本文提出了一种利用模型检测技术保证审计方法逻辑正确性的方法. 给出了通过模型检测进行审计方法正确性验证的形式化框架, 即用模型表示SQL语句在不同数据上的行为, 用一条路径表示一个行为及最终的计算结果, 用待验证性质表示“SQL语句计算过程具有的性质↔期望计算结果具有的性质”. 结合财务审计中凭证断号审查的实例说明了如何将模型检测应用到审计方法的逻辑验证上, 并使用NuSMV模型检测器对该示例进行了验证, 证实该凭证断号审查方法存在逻辑错误, 利用模型检测器给出的反例对该审计方法进行了修正. 结果表明, 本文提出的审计方法逻辑正确性验证的形式化框架可行并且有效.【相关文献】[1] Diana R, Marques-Neto H, Zarate L, et al. A Symbolic Model Checking Appproach to Verifying Transact-SQL [C]//IEEE International Conference on Systems, Man, and Cybernetics. Piscataway, NJ: IEEE, 2012: 1735-1741.[2] Armando A, Compagna L. SAT-Based Model-Checking for Security Protocols Analysis [J]. International Journal of Information Security, 2008, 7(1): 3-32.[3] Eshuis R. Symbolic Model Checking of UML Activity Diagrams [J]. ACM Transactions on Software Engineering & Methodology, 2006, 15(1): 1-38.[4] Huth M, Ryan M. Logic in Computer Science: Modeling and Reasoning about System [M]. 2nd ed. Cambridge: Cambridge University Press, 2004: 175-208.[5] Rohl J S. A Note on Backus Naur Form [J]. Computer Journal, 1968, 10(4): 336-337.[6] 陈平, 王德成. 模型检测器SPIN图形化工具的研究与应用 [J]. 软件工程与应用, 2014, 3(3): 70-77. (CHEN Ping, WANG Decheng. Research and Application of the SPIN Model Checker Graphical Tools [J]. Software Engineering and Applications, 2014, 3(3): 70-77.)[7] Mcmillan K L. Symbolic Model Checking [J]. Verification of Digital and Hybrid Systerms, 2000, 170: 117-137.[8] Godefroid P. Software Model Checking: The VeriSoft Approach [J]. Formal Methods in System Design, 2005, 26(2): 77-101.[9] Havelund K, Pressburger T. Model Checking JAVA Programs Using JAVA PathFinder [J]. International Journal on Software Tools for Technology Transfer, 2000, 2(4): 366-381.[10] Beyer D, Keremoglu M E. CPAchecker: A Tool for Configurable Software Verification[C]//International Conference on Computer Aided Verification. Berlin: Springer, 2011: 184-190.[11] Cimatti A, Clarke E, Giunchiglia F, et al. NUSMV: A New Symbolic Model Checker [J]. International Journal on Softwave Tools for Technology Transfer, 2000, 2(4): 410-425.。
基于LTL语义的可达性控制器合成工具
基于LTL语义的可达性控制器合成工具景丽莎;项周坤【摘要】控制器合成是针对给定的获胜目标,在开放的实时系统环境中,自动地寻找获胜策略的过程.这个策略可以表述为一系列的符号化状态和动作的映射关系.在本文中,我们主要针对以线性时序逻辑(LTL)描述的可达性作为获胜目标,进行合成策略的发现.文中介绍了一种采用on-the-fly思路的合成算法,以规避状态数目太多带来的内存溢出问题.文中算法是对文献[1]的一种扩展,该算法主要用于解决基于分支时序逻辑(CTL)的控制器合成.另外,我们实现了相关的控制器合成工具CTAV/TGA(Timed Gamed Automata),在实现的过程中,使用on-the-fly的方式,避免了穷尽状态空间,同时,通过使用zone和抽象,大大缩减了状态数目,使时空效率控制在可接受的范围内.【期刊名称】《计算机系统应用》【年(卷),期】2016(025)011【总页数】7页(P22-28)【关键词】时间博弈自动机;控制器合成;线性时序逻辑(LTL);on-the-fly;符号化方法【作者】景丽莎;项周坤【作者单位】中国科学院软件研究所计算机科学国家重点实验室,北京100190;中国科学院研究生院,北京100049;中国科学院软件研究所计算机科学国家重点实验室,北京100190;苏州大学计算机学院,苏州215000【正文语种】中文实时系统所描述的是一种可以短时间内迅速响应外部发生的事件, 并可在一定的时间范围内做出应答、给予处理的应用系统. 保证实时系统设计和运行的正确性和可靠性至关重要, 在20世纪90年代前后, 模型检测等相关的形式化理论被广泛应用在实时系统可靠性和正确性的检测上[4,11]. 但是通常来说, 模型检测所针对的实时系统, 其运行状态只由系统内部迁移决定. 而实际生活中, 实时系统往往并不是封闭的, 其运行状态不仅仅取决于自身运行的结果, 环境因素往往也直接或间接地影响着系统的整体状况. 因此,如何在外界环境因素的作用下, 依然保证系统的可靠性和正确性成为值得探究的问题.控制器合成问题, 就是为了在开放的实时系统中, 寻找获胜目标的合成策略而产生的. 它可以被形式化地表述成两个选手的博弈问题[2,3,6,7]. 其中, 系统的控制器本身, 是一个迁移系统, 用来代表一个参赛选手, 而环境, 也是一个迁移系统, 用来代表另一个参赛选手. 控制器合成就是在这样的前提下, 寻找一个策略f使得环境无论如何变化迁移, 控制器总可以满足给定的性质.我们的工作是在开放的实时系统中上, 针对LTL描述语言所描述的系统性质进行控制器合成算法和相关工具的研究. LTL相较于CTL而言, 在描述与活性相关的性质方面具有一定的优势. 为了针对LTL性质表述的获胜目实现标控制器合成的过程, 需要将LTL性质转化为Rabin自动机, 并通过自动机的复合来达成验证的目标. 当前, 已有工具可使我们从复杂的LTL公式中通过计算得到它对应的Rabin自动机[13]. 我们知道, 假设有命题p, 对于Rabin自动机来说, 其接收条件将<>[]p和[]<>p作为复杂性质基础. 这两种性质则是以<>p和[]p为实现基础的. 为了在之后的工作中, 完善工具对于性质的表达能力, 使其所能表达的各种复杂性质均得以描述, 应首先着手对<>p、[]p、<>[]p和[]<>p这四种最为基本的性质内容予以研究和讨论. 而<>p则是全部四种性质研究的起点.因此, 在本文中, 我们主要讨论的是控制器合成针对于以<>p为合成目标的合成算法及对应的工具. 对于可达性而言, 合成算法就是总可以在系统的形式化模型中, 找到一个策略, 使得LTL所描述的目标可以被到达[1].时间自动机常被用作刻画实时系统的形式化模型. 时间博弈自动机, 在其基础上增加了对环境因素的描述, 通过对系统可控因素和环境不可控因素的描述, 可用来刻画开放的实时系统. 对于系统的获胜目标, 可使用逻辑语言描述, 主要有分支时序逻辑CTL和线性时序逻辑LTL. Uppaal-Tiga[12]就是一个时间博弈自动机的合成工具, 它是对UPPAAL工具的扩展, 对获胜目标主要是针对分支时序逻辑CTL作为描述语言描述的. 本文的算法也是在其基础上进行的扩展与改进.本文的第一部分介绍控制器合成理论的一些基础的概念原理和符号, 第二部分介绍了控制器合成工具的实现过程, 合成算法的详细介绍和实现思路在第三部分提及, 第四部分是相应的实验结果, 最后在文章的结尾给出了全文的总结, 并提出今后的工作方向.1 基本概念和相关原理1.1 开放的实时系统和时间博弈自动机时间自动机常常被用作实时系统的抽象模型, 它可以看做是一个拥有节点和迁移的有向图. 而开放的实时系统其运行的正确性和可靠性会受到外界环境因素的影响, 为了对其进行形式化建模, 将时间自动机的迁移引入可控因素和不可控因素, 这也就是时间博弈自动机.图1所示表示了工厂机器一次加工的过程. 工厂中的机器在加工一件产品完毕后若不及时取出, 将很可能造成机器卡死的情况. 图中, 机器加工完毕一件成品后, 若在固定时间内没有被取出, 则可能面临崩溃的危险, 这一点是不可控的, 因而在图中使用虚线来表示.图1 机器Machine加工一次成品的过程若此时, 工人可以及时取出产品, 则机器正常运转不会故障. 工人的行为同样可以形式化为图2的自动机.图2 工人Worker活动的自动机时间博弈自动机可以形式化的用一个六元组M=(L, l0, Inv, Act, X, E)来表示[5,6], 其中:(1) L是一个有限集合, 它包含了时间博弈自动机M的所有位置节点.(2) X也是一个有限集合, 它包含了所有的为时钟变量.(3) l0∈L是时间博弈自动机M的初始位置节点.(4) Inv是一个映射函数, 为每个位置节点指明了时钟约束, 称为位置的不变式.(5) Act = Actc∪Actu, 是动作集合, 包含了可控动作集合Actc和不可控动作集合Actu.(6)是迁移的集合. 其中, g = x⊙ c | x1 - x2 ⊙ c | g1 ∧ g2 , 均为时钟变量, c∈N 为一个常量, ⊙∈{<,>,≥,≤}为逻辑运算符, g1和g2都是时钟约束. Reset表示时钟重置集. 迁移e∈E表示节点在满足条件g的约束下, 通过将时钟重置的条件, 迁移至它的后继状态, 与此同时, 对应的Reset集合中的时钟被重置.1.2 时间博弈自动机的获胜策略及获胜目标开放的实时系统的行为可以描述在时间博弈自动机的节点位置上进行迁移. 系统运行的状态既包括了系统的位置节点信息, 也包括有运行的时间信息, 即S=L×Rn≥0[1,7,10], 其中n为时钟变量的个数. 环境因素所采取的动作可表示为迁移集合Actu, 系统本身可控的动作表示为迁移集合Actc. 在t∈Rn≥0这个时刻, 将环境和控制器看做是博弈的双方选手, 那么这个选手P所可能采取的动作具体而言有两种可选择的方案:(1) 设v为时钟变量到实数向量的映射, 记为v: X-> Rn≥0, 在满足v |= g并且对于迁移e = (l, α, g, Reset, l’)中所涉及的动作, 有α∈αP. 并且, t [Reset] |=Inv(l’), 即在经过时钟重置后时钟条件满足节点位置l’的时钟约束, 则发生e所指示的迁移.(2) 不发生任何动作, 只是等待, 此时所有的时钟变量的值将会以相同速度不断增长. 上文所提到的P可以是外部环境也可以是系统控制器自身. 但是相较于后者, 环境具有发生迁移的优先权, 也就是说, 当外部环境和系统控制器同时有可能执行迁移的时候, 外部环境的迁移可以优先发生[8,9].对于开放的实时系统, 其控制器获胜, 在本文中可以表述为无论外界的环境因素如何变化, 系统运行的状态会改变, 但系统始终满足给定的LTL性质这个结论却不会因此而改变.系统运行的状态既包括了系统的位置节点信息, 也包括有运行的时间信息, 即S=L×Rn≥0, 其中时间约束使用Zone表示. 对于一个没有记忆能力的获胜策略而言, 合成策略的制定应仅与当前系统所处的状态S=L×Rn≥0有关. 对选手P所采取的策略可以描述为右边的偏函数: fP : S=L×Rn≥0 -> ActP∪{ λ }, 即:(1) 对P来说, 当处于系统状态s∈S时, 由s出发的迁移e上有α∈ActP动作, 若P必须要进行迁移的话, 则有fP(s) = α, 即P在s状态上, 采取了动作α.(2) 或者与上述不同, P在这一时刻, 可以选择不去迁移. 那么此时的策略将制定为: 任由时间发生延迟迁移, 但是P保持在此状态, 即fP(s) = λ.本文中主要研究的是使用LTL表示的可达性问题, 因而使用Goal来描述自动机中的节点位置集合, 则有系统控制器可通过一系列的策略, 令系统最终到达Goal集合, 即令<>Goal为真则可说明控制器获胜. 对于上述的工厂问题, 其最终目标是要到达Recover的状态, 可以使用LTL性质将其描述为: <>Machine.Recover.2 控制器合成工具的实现原理控制器合成工具就是基于上述两点, 在针对开放的实时系统所构建的时间博弈自动机模型上, 通过不断对时间博弈自动机的状态空间进行探索的同时, 以不同的算法规则对满足条件的路径回溯, 从而最终判断对获胜目标是否可以到达. 整个过程包含了前向和后向的两个过程.利用控制器合成工具进行合成策略的寻找, 一般而言需要经过以下的几个阶段: (1) 模型建立阶段. 对所有待检测的开放实时系统进行深入地分析, 形式化地抽象并为之建立对应的时间博弈自动机模型.(2) 描述获胜目标. 使用特定的逻辑描述语言, 对获胜目标进行刻画. 获胜目标实际上就是一个命题, 为真的话则说明性质得以满足.(3) 合成阶段. 合成算法是整个工具的核心, 依据不同的获胜目标, 工具将执行不同的算法过程, 从而验证待检验的实时系统是否可以满足获胜目标.图3 控制器合成过程图3中详细说明了本文中进行控制器合成的各个阶段及其所对应的产物.3 基于LTL可达性的控制器合成算法系统运行的每个符号化状态包含有位置信息和时钟信息两部分, 对于每一个状态S, 可以定义其结构为表1中包含位置和时钟信息的节点结构.表1 符号化状态节点结构typedef struct SymbolicState{LocIndexVec; //当前位置的索引向量ClockInfo; //时钟信息, Zone}除了上述的时钟信息, 对于系统运行中的每个状态S, 为之设定一个对应的DBM: S_reach_dbm, 用来表示状态所在的位置S.LocIndexVec, 只有处于时间变量满足S_reach_dbm约束的前提下, 才能够到达获胜目标. 在实现时, 为方便查找, 使用哈希结构来存储这样的映射关系.算法的整个过程可以简单的描述为状态空间展开和状态空间回溯两个部分, 这两个部分交替进行. 每当遇到已经访问过的状态时, 则会引发一次回溯, 回溯的过程, 会修改状态所对应的reach_dbm.只有当初始状态的reach_dbm包含起始时刻时, 才表明由初始状态出发, 可以到达给定的获胜目标.同样地, 当所有可用状态都已穷尽而reach_dbm依旧不包含起始状态时, 算法过程也会结束, 此时说明系统无法通过控制器的控制到达获胜目标, 也就间接说明, 控制策略并不存在.需要注意的是以下图中的几种情况, 考虑图4中六种情况的时间博弈自动机, 可以很容易的判断出, 对于获胜目标“<>Good”:(a)在当系统处于Working位置的时候, 控制系统在t<=3时经可控迁移至Good位置; (b)、(c)和(e)与(a)的控制策略相同, 只是(b)(e)Working位置没有不变式约束, 当其处于Working位置时由控制器在t<=3时间范围内, 控制可控迁移发生, 而(c)Start位置的不变式约束则保证了系统运行过程中只能停留于此5个时间单位, 则必须经由不可控迁移至Working 位置, 在迁移的同时将时钟变量置0, 此时可由控制器确保进入Good状态. 而(d)以Start为源位置状态的迁移其发生是不可控的, 即若在3<t<=5时此迁移发生, 则不能保证会到达Good位置, 所以(d)不满足获胜目标.对于图5中的三个例子, (f)在处于Working位置时, 因不可控迁移优先发生, 所以不满足<>Good的获胜目标. (h)Working位置因没有不变式约束, 则即使控制通往Bad的迁移不发生, 也可能会导致系统一直停留在Working位置而不能到达Good, 故而也不满足获胜目标. (g)在处于Working位置时, 因不变式约束, 至多可以停留三个时间单位, 我们令控制器控制系统通往Bad的迁移不发生, 则不可控迁移必须发生, 到达Good.图4 几个简单的时间博弈自动机的例子图5 几个简单的时间博弈自动机的例子(续)在上述的例子中, 若不可控迁移的源状态没有不变式限制, 将可能导致系统运行停滞在此状态, 当有不变式约束存在时, 可以通过合成策略令系统控制器在这一时刻始终处于等待的状态, 一旦条件满足, 则不得不发生迁移, 从而强制不可控迁移发生, 进而到达获胜目标. 这一点在实现上与UPPAAL-TIGA的思路有所不同, 我们补充了在回溯过程中对前驱的计算内容, 补充了Predt算子的第一个参数值的内容. 文献[1]中有关于这个算子的介绍, 对于Predt(X, Y), 其运算的结果可以描述为: 求得在δ时间范围内可以迁移到集合X中所有状态的前驱集合, 并在这些前驱中删除掉可以在δ时间范围内可以迁移到集合Y所包含的状态的那些状态, 经过这些运算后所剩余的状态, 即为结果状态集.以下, 将具体说明算法中补充的内容. 对状态S, 所有可以经由不可控迁移到达的状态T, 将计算与之相对应的Preu(T_reach_dbm). 其中, T_reach_dbm指的是当系统处于在状态T所对应的位置向量时, 若时间变量满足此约束时, 系统可以由当前位置到达获胜目标. 这样我们可以通过控制可控迁移始终不发生来强迫不可控迁移发生. 但并非所有的通过不可控迁移计算而来的Preu(T_reach_dbm)都有效, 必须满足下面的两个条件, 才可以补充至Predt中:(1) 对应于这个不可控迁移的源位置状态S上, 必须具有不变式约束, 否则系统存在停滞在这个位置的可能性;(2) 经过计算后的Preu(T_reach_dbm)其时钟范围需包含这个不可控迁移的源位置状态S不变式约束的临界值.实际上, 大多系统并不如图4和图5所示进程中只包含一个进程的运行, 所以这里这里所提到的每一个可控和不可控迁移都对应于所有进程中的某一个位置出发的一条迁移.为了清晰地展示扩展后的算法过程, 除了上面提到的State外, 我们还将使用到如下的数据结构:(1) VisitedStates: 已经被遍历过的状态集合;(2) SymbolTrans: 这是一个存储符号化迁移的边, SymbolTransStack表示所有待遍历的边, 以栈的方式存储, 也是借助这个栈不断地入栈和出栈, 从而实现状态空间的遍历. SymbolTransSet为待遍历的边的集合, 它是后文中EnterTrans的辅助数据结构.(3) Hash: 其元素为(State,reach_dbm)的哈希表, 这里State所对应的reach_dbm, 事实上是一个dbm类型的联合, 在计算过程中, 它可能是多个dbm 的并集.(4) EnterTrans: 是元素为(State,SymbolTransSet)的哈希表, 对应地记录了所有以State状态为目标节点的符号化迁移, 为集合形式, 在遍历的过程中, 这个集合被不断的扩大.另外, 算法中我们使用了DBM库的一些函数, 下面对其中最主要是Prec(S)和Preu(S), 分别表示能够通过可控迁移到达状态S的前驱状态的DBM集合和通过不可控迁移到达状态S的前驱状态的DBM集合. Predt(X,Y)的含义在上文已经解释过, 它在DBM库里也有对应的函数实现, 可以直接使用.算法的伪代码列在如下的表2和表3中, 其中, 前者为整个合成算法的初始化阶段, 后者是合成算法的整个执行过程. 表4是算法过程终止后的处理方案.表 2 合成算法的初始化阶段VisitedStates.add(S0);对所有由S0出发的符号化迁移(SymbolTransst){SymbolTransStack.push_back(st); }EnterTrans(S’).setEmpty();if(S0 ∈ Goal)return; //找到策略else Hash(S0) = dbm.setEmpty();//将初始状态的reach_dbm置空表3 算法向前探索状态空间和向后回溯的过程最后, 该合成算法将在遇到以下的条件后终止, (1)初始状态的reach_dbm包含了初始时刻;(2)所有待检测的边已经穷尽.伪代码如表4中所示.表4 合成算法结束的条件if(Hash(S0).intersect(dbm.setZero())){return; //获胜策略存在}if(SymbolTransStack.isEmpty() ){return; //遍历完毕, 未到达获胜目标}4 实验研究本文中实现了一个基于LTL性质的可达性控制器合成工具CTAV/TGA. 可达性作为LTL语言所能描述的基础性质, 是实现以LTL性质为获胜目标的控制器合成工具的基础. 在模型描述语言的选择上, 为了更加方便合成算法和系统方案的实现, 本工具选取了UPPAAL的模型描述语言, 并使用UTAP库对系统模型予以解析.以下将使用文章开头的工厂的例子来予以测试和比较. 其中factory01即为开头的例子,factory02将工人模型从Sleeping到Working的迁移和加工零件模型的Working到Finish的迁移变更为不可控的迁移类型. 下划线后的数字表示当前进程中加工零件模型的实例. 如: factory01_5表明当前的实验结果针对的是factory01这个例子, 当前有5个加工零件的实例.表5 实验运行结果比较例子CTAV/TGAUppaal-Tiga 检验结果运行时间检验结果运行时间 factory01_1.xmlYes0.003sYes0.004sfactory01_2.xmlYes0.005sYes0.006s factory01_3.xmlYes0.64sYes0.014s factory02_1.xmlNo0.002sNo0.008s factory02_2.xmlNo0.336sNo0.018s factory02_3.xmlNo0.83sNo0.034s从以上实验结果的对比中可以看出, CTAV/TGA的对于文中的测试用例所给出的检验结果与Uppaal-Tiga的检验结果相吻合. 在对算法执行的过程进行分析时, 我们发现, 可达性合成算法主要的运行时间集中在空间展开和对已经遍历过的状态进行回溯这两部分. 算法过程中, 每增加一个状态, 其回溯所带来的时间耗费就相当可观, 可导致整个算法出现指数级别的计算量的增加. 因而如何避免减少无用状态数目的增加可以作为优化的一个思路. 可以看出, CTAV/TGA的合成算法在进程数目到达3的时候, 运行时间有所增加, 相较于Uppaal-Tiga, 我们在回溯过程中对算子的修改的确会带来一定程度的时间效率的降低. 但这并不是导致算法时间增加的主要原因. 考虑到对于时间博弈自动机而言, 符号化状态是显示状态的集合, 这些集合之间蕴含着包含关系, 可以借鉴Uppaal-Tiga的思路在判断是否需要继续展开状态时, 进行一些比较, 从文献[1]的结果中可以看出, 这种优化的方法是很有效的, 这也将是后续要进行讨论和研究的地方.5 总结本文中描述了一个将LTL表达的可达性作为获胜目标的控制器合成工具CTAV/TGA, 讨论并实现了可达性的控制器合成算法, 其中, 依据时间博弈自动机的概念, 对算法的一些情况给予补充. 通过使用借助DBM表示的符号化状态和on-the-fly的检测思路, 对工具的合成算法的效率提升有很大的帮助. 需要指出的是, 目前CTAV/TGA所能够合成的获胜目标性质种类还比较有限, 其中算法的改进仍有空间. 所以未来我们的工作还很多, 下一步将需要对更为复杂的LTL性质进行分析, 来进一步完善这个工具.1 Cassez F, David A, Fleury E, et al. Efficient on-the-fly algorithms for the analysis of timed games. CONCUR 2005-Concurrency Theory. Springer Berlin Heidelberg, 2005: 66–80.2 Bulychev P, David A, Larsen KG, et al. Efficient controller synthesis for a frag ment of MTL0,∞. Acta Informatica, 2013, 51(34): 165–192.3 Peter H, Ehlers R, Mattmüller R. Synthia: Verification and synthesis for timed automata. Computer Aided Verification. Springer Berlin Heidelberg, 2011: 649–655.4 David A, Behrmann G, Bulychev P, et al. Tools for model- checking timed systems. London, UK: ISTE. Hoboken, NJ: Wiley, 2013: 165–225.5 Altisen K, Tripakis S. Tools for controller synthesis of timed systems. Proc. Work. on Real, 2002.6 Alur R, Dill DL. A theory of timed automata. Theoretical Computer Science, 1994, 126(94): 183–235.7 Maler O, Pnueli A, Sifakis J. On the synthesis of discrete controllers for timed systems. Lecture Notes in Computer Science, 1995, 900(6): 229–242.8 Asarin E, Maler O. As soon as possible: Time optimal control for timed automata. Proc. of the Second International Workshop on Hybrid Systems: Computation and Control. Springer-Verlag. 1999. 19–30.9 Alur R, Torre SL, Pappas GJ. Optimal paths in weighted timed automata. Theoretical Computer Science, 2004, 318(3): 297–322.10 Asarin E, Maler O, Pnueli A. Symbolic controller synthesis for discrete and timed systems. Hybrid Systems II. Springer Berlin Heidelberg, 1999: 1–20.11 David A, Hakansson J, Larsen K G, et al. Model checking timed automata with priorities using DBM subtraction. Lecture Notes in Computer Science, 2006, 4202: 128–142.12 Jessen JJ, Rasmussen JI, Larsen KG, et al. Guided controller synthesis for climate controller using uppaal tiga. Lecture Notes in Computer Science,2007, 4763: 227–240.13 ltl2dstar-LTL to deterministic Streett and Rabin automata,http://www.ltl2dstar.de/.Tool for Controller Synthesis Based on LTL ReachabilityJING Li-Sha1,2, XIANG Zhou-Kun1,31(State Key Lab of Computer Science, Institute of Software, Chinese Academy of Sciences, Beijing 100190, China)2(Graduate University, Chinese Academy of Sciences, Beijing 100190, China)3(School of Computer Science, Soochow University, Suzhou 215000, China)Abstract:Controller synthesis is the automatic process of searching for a winning strategy in an open real-time system on the basis of a given winning goal. This strategy can be expressed as a series of mapping relations of the symbolic states and the symbolic actions. In this paper, we focus on the reachability target which is described by Linear Temporal Logic(LTL) to discover if there is a synthetic strategy. This paper introduces a synthesis algorithm using on-the-fly method to avoid too many states. The algorithm is an extension of Ref. [1], which is mainly used to solve the problem based on branching temporal logic (CTL) for controller synthesis. Through the use of zone, our algorithm is greatly reducing the number of states, and the efficiency is acceptable.Key words:timed game automata; controller synthesis; linear temporal logic (LTL); on-the-fly; symbolic method① 收稿时间:2016-03-11;收到修改稿时间:2016-04-05[doi:10.15888/ki.csa.005434]1.1 开放的实时系统和时间博弈自动机时间自动机常常被用作实时系统的抽象模型, 它可以看做是一个拥有节点和迁移的有向图. 而开放的实时系统其运行的正确性和可靠性会受到外界环境因素的影响, 为了对其进行形式化建模, 将时间自动机的迁移引入可控因素和不可控因素, 这也就是时间博弈自动机.图1所示表示了工厂机器一次加工的过程. 工厂中的机器在加工一件产品完毕后若不及时取出, 将很可能造成机器卡死的情况. 图中, 机器加工完毕一件成品后, 若在固定时间内没有被取出, 则可能面临崩溃的危险, 这一点是不可控的, 因而在图中使用虚线来表示.若此时, 工人可以及时取出产品, 则机器正常运转不会故障. 工人的行为同样可以形式化为图2的自动机.时间博弈自动机可以形式化的用一个六元组M=(L, l0, Inv, Act, X, E)来表示[5,6], 其中:(1) L是一个有限集合, 它包含了时间博弈自动机M的所有位置节点.(2) X也是一个有限集合, 它包含了所有的为时钟变量.(3) l0∈L是时间博弈自动机M的初始位置节点.(4) Inv是一个映射函数, 为每个位置节点指明了时钟约束, 称为位置的不变式.(5) Act = Actc∪Actu, 是动作集合, 包含了可控动作集合Actc和不可控动作集合Actu.(6)是迁移的集合. 其中, g = x⊙ c | x1 - x2 ⊙ c | g1 ∧ g2 , 均为时钟变量, c∈N 为一个常量, ⊙∈{<,>,≥,≤}为逻辑运算符, g1和g2都是时钟约束. Reset表示时钟重置集. 迁移e∈E表示节点在满足条件g的约束下, 通过将时钟重置的条件, 迁移至它的后继状态, 与此同时, 对应的Reset集合中的时钟被重置.1.2 时间博弈自动机的获胜策略及获胜目标开放的实时系统的行为可以描述在时间博弈自动机的节点位置上进行迁移. 系统运行的状态既包括了系统的位置节点信息, 也包括有运行的时间信息, 即S=L×Rn≥0[1,7,10], 其中n为时钟变量的个数. 环境因素所采取的动作可表示为迁移集合Actu, 系统本身可控的动作表示为迁移集合Actc. 在t∈Rn≥0这个时刻, 将环境和控制器看做是博弈的双方选手, 那么这个选手P所可能采取的动作具体而言有两种可选择的方案:(1) 设v为时钟变量到实数向量的映射, 记为v: X-> Rn≥0, 在满足v |= g并且对于迁移e = (l, α, g, Reset, l’)中所涉及的动作, 有α∈αP. 并且, t [Reset] |=Inv(l’), 即在经过时钟重置后时钟条件满足节点位置l’的时钟约束, 则发生e所指示的迁移.(2) 不发生任何动作, 只是等待, 此时所有的时钟变量的值将会以相同速度不断增长. 上文所提到的P可以是外部环境也可以是系统控制器自身. 但是相较于后者, 环境具有发生迁移的优先权, 也就是说, 当外部环境和系统控制器同时有可能执行迁移的时候, 外部环境的迁移可以优先发生[8,9].对于开放的实时系统, 其控制器获胜, 在本文中可以表述为无论外界的环境因素如何变化, 系统运行的状态会改变, 但系统始终满足给定的LTL性质这个结论却不会因此而改变.系统运行的状态既包括了系统的位置节点信息, 也包括有运行的时间信息, 即S=L×Rn≥0, 其中时间约束使用Zone表示. 对于一个没有记忆能力的获胜策略而言, 合成策略的制定应仅与当前系统所处的状态S=L×Rn≥0有关. 对选手P所采取的策略可以描述为右边的偏函数: fP : S=L×Rn≥0 -> ActP∪{ λ }, 即:(1) 对P来说, 当处于系统状态s∈S时, 由s出发的迁移e上有α∈ActP动作, 若P必须要进行迁移的话, 则有fP(s) = α, 即P在s状态上, 采取了动作α.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第28卷 第11期2005年11月计 算 机 学 报CH INESE JOURNA L OF COM PU TERSV ol.28N o.11No v.2005收稿日期:2004-08-29;修改稿收到日期:2005-07-14.本课题得到国家自然科学基金(60496327,10410638,60473004)、广东省自然科学基金团队项目(04205407)与教育部留学回国人员科研启动基金以及上海市智能信息处理重点实验室(筹)开放课题资助.苏开乐,男,1964年生,教授,博士生导师,研究兴趣包括模型检测、知识推理、非单调推理、多智能体系统、模态逻辑、时态逻辑、概率推理、安全协议验证和逻辑程序设计等.E -mail:issraymond@.骆翔宇,男,1974年生,博士研究生,研究兴趣包括模型检测、时态逻辑、模态逻辑、知识推理、多智能体系统、安全协议验证和逻辑程序设计等.吕关锋,男,1973年出生,博士研究生,研究兴趣包括模型检测、知识推理、多智能体系统、模态逻辑、时态逻辑、概率推理、安全协议验证和逻辑程序设计等.符号化模型检测CTL*苏开乐1),2)骆翔宇1) 吕关锋3)1)(中山大学计算机科学系 广州 510275)2)(河南科技大学电子信息工程学院 洛阳 471003)3)(北京工业大学计算机科学与技术学院 北京 100022)摘 要 提出了一个关于时态逻辑CT L *的符号化模型检测算法.该算法通过所谓的tableau 构造方法来判定一个有限状态系统是否满足CT L *规范.根据该理论,作者已实现了一个基于O BDD 技术的CT L *符号化模型检测工具M CT K ,并完成了相当数量的实验.到目前为止,已知有名的符号化模型检测工具,如SM V 和N uSM V 等,都只能对CT L *的子集逻辑(如CT L ,L T L )进行检测,而文中算法的结果是令人满意的,并且当规范不是特别复杂时,高效的CT L *符号化模型检测是可能的.关键词 模型检测;时态逻辑;有序二值判定图(O BDD)中图法分类号T P 301Symbolic Model Checking for CTL *SU Ka-i Le 1),2) LUO Xiang -Yu 1) LU Guan -Feng 1)1)(Dep artment of Comp ute r Sc ienc e ,S un Yat -S en Univ er sity ,Guang z hou 510275)2)(I nstitu te of E le ctr onics and I nf ormation Eng ine ering ,H enan Univ e rsity of S cie nce and T echnolog y ,L uoy ang 471003)3)(Colle geof Comp ute r Science and Tec hnology ,Be ij ing Univ er sity of T echnolog y ,B eij ing 100022)Abstract T his paper gives a symbolic m odel checking algo rithm for the temporal lo gic CT L *.The algo rithm determ ines w hether a finite state sy stem satisfies a form ula in CTL *using the method of sy mbolic tableau construction.According to our algor ithm,w e had implem ented a new CT L *sym bo lic m odel checker (M CTK)by m eans of OBDD and o btained so me ex perimental re -sults.U p to now ,the w el-l kno w n sy mbolic model checking tools (SM V,N uSM V etc.)have been implem ented only for the sublo gics of CT L *,such as CTL and LTL.T he results that w e have obtained in this paper are quite sur prising and show that efficient CT L *model checking is possible w hen the specifications are not ex cessiv ely complicated.Keywords model checking;tem poral log ic;Or dered Binary Decision Diagram s (OBDD)1 引 言1.1 概述模型检测是一种被广泛使用的验证有限状态系统满足规范的自动化技术.在这里,形式化规范被描述为时态逻辑公式,如工具SPIN [1]及FORSPEC [2]使用的LT L (线性时态逻辑)、SMV 中使用的CT L (分支时态逻辑)[3].这些验证技术被称为时态逻辑模型检测,是由Clarke 和Em erson [4]及Queille 和Sifakis[5]在20世纪80年代最先发展的.在这种方法中,规范被描述成命题时态逻辑公式,系统(如电路设计、协议)被模型化为状态转换系统,使用高效的搜索算法来判定规范是否在系统中成立.对于描述状态转换系统的性质来说,时态逻辑CT L*是一种表达力很强的规范描述逻辑[6].它用时态算子描述沿计算路径的状态变化,用路径算子解释时间分支性质.很多系统性质可以用CTL或LT L表达,但有些性质只能用CT L*表达.例如, CT L*公式A(FG p) AG(EF p),表示沿着所有的计算路径,要么命题p从某一状态开始一直成立下去;要么始终存在另一计算路径,使得命题p在这条路径的某一状态上成立.可以看出CTL和LTL 均不能表达该公式.所以一个功能全面的模型检测工具应能检测CT L*公式.大体上,有两种基本的模型检测方法.第一种方法是构造出系统的所有可达状态(例如文献[4,7]对于CTL及文献[8,9]对于LTL).但这种方法面临着状态爆炸问题,特别当系统转换关系很复杂时.使用偏序归约(partial o rder reduction)[10~12]可一定程度上减轻该问题.另一种更好的方法就是所谓的符号化方法(sy mbolic method)[13],该方法使得系统的规模得以大幅度地提高,这种提高得益于有序二值判定图(Order ed Binary Decision Diagrams,OB-DDs)[14]的使用,OBDDs是一种用来表示布尔函数的数据结构.目前已有关于CT L[3,13]及LT L[15,16]的符号化模型检测方法.这自然导致一个问题:是否同样技术可用于CTL*的模型检测?Emerson等在文献[6,17]里表明,CT L*模型检测有LT L模型检测一样的复杂度.Emerso n和Lei[6]已给出如何把CTL*模型检测问题转化为LT L模型检测问题的方法.考虑到这一点,Clarke 等在文献[15]中给出了将LT L检测转化为CTL模型检测的方法,同时希望通过这两种方法的结合,来解决CT L*的符号化模型检测问题.但是,从CTL*模型检测到LTL模型检测[6]不是基于OBDDs的,而LTL到CT L的转化是基于OBDDs.所以集成这两种方法是困难的.在本文中,我们给出一个CTL*符号化模型检测算法.该算法时间复杂度和已知的CT L*算法(非符号化)相一致.同时我们指出如何构造出在实际应用中高效的CTL*模型检测工具.对于CT L规范,我们的CTL*模型检测工具和CT L符号化模型检测工具在空间和时间的花费上是相同的.另外,我们也验证了复杂的CT L*(非CTL或LTL)公式.1.2 相关工作在过去的15年中,在CT L*的子逻辑(CT L, LT L)的符号化模型检测方面研究者们做了很多工作.对于分支时态逻辑CT L,Em erson等基于OB-DDs实现了CTL模型检测算法[4,7],该算法能够验证超过1020个状态[3,13],甚至10120个状态的系统[18,19].对于线性时态逻辑LT L的符号化模型检测, Clarke,Grumberg和H amaguchi[15]给出一种把LT L模型检测问题转化为带有公平性约束(fair-ness constraints)的CTL模型检测问题,从而可应用现有的CTL符号化模型检测工具(SM V)来对LT L公式进行检测.Kesten,Pnueli和Raviv[16]给出了一个一致且自包含的LTL符号化模型检测方法,不需要把LT L检测转化为CTL检测或自动机.关于CT L*模型检测,研究者们也提出了一些算法. Bhat,Cleaveland和Grum berg在文献[20]中给出了一个o n-the-fly算法.Bernholtz,Vardi和Wolper 在文献[21]中提出了另一个CTL*模型检测算法.但是,这些算法都不是符号化模型检测算法.最近, Kesten和Pnueli在文献[22]中给出了一个包含符号化模型检测和演绎验证技术的组合方法验证CT L*规范,其中的符号化模型检测算法与本文给出的比较相似,然而文献[22]中没有给出详细的证明和实验结果.第2节给出OBDDs的扼要介绍;第3节给出时态逻辑CTL*的语法和语义;第4节给出我们的主要贡献,即CT L*的符号化模型检测算法;第5节给出算法的试验结果.第6节总结全文.2 二值判定图(Binary DecisionDiagrams,BDDs)BDDs是一种表示布尔函数的高效方法.它首先是作为一种简单的形式,即Binary Decision T rees被提出的.在Binary Decision Trees中每个非终结节点被布尔变量x,y,z, 标注(记为v ar(v), v为节点),终结节点用1或0标注,每个非终结节点v有两个后继节点,记为low(v)(当v赋值0时)和high(v)(当v赋值1时).BDDs通常包含有冗余,所以不是一种高效简洁的布尔函数的表达方法,因为它有和真值表一样的大小.Bry ant在文献[14]179911期苏开乐等:符号化模型检测CT L*中阐明如何通过使用两个限制来得到BDDs的规范表达:首先,变量出现的顺序要保持一致;其次,不存在同构的子树和多余的节点.概括起来,有三种方法可得到BDD的简洁规范形式:(1)删除多余终结节点:只留下一个(1或0,或两者)终结节点,删除其余的并使指向被删除终结节点的连接指向剩下的相应节点.(2)删除多余的非终结节点:如果二个不同节点n和m是结构上相同的子BDDs的根,则删除其中一个,并且把指向它的所有连接指向另一个.(3)如果二非终结节点u和v有v ar(u)=var(v), low(u)=low(v)并且high(u)=high(v),则删除u 或v,并且重定向所有指向它的连接指向另一节点.重复上述方法,直到BDD的大小不再改变,则得到BDD的唯一规范表示(OBDD).Bryant指出这可通过一从底向上的过程得到,并且是线性时间[14].另外,在OBDD中,变量赋值运算和逻辑运算都是线性时间复杂度.3 计算树逻辑(C omputationTree Logic)CT L*[4,17,23]可以表示分支时间和线性时间性质,CT L*公式由路径算子和时态算子组成.有两种路径算子,分别是A(对于所有的路径)和E(存在某些路径).时态算子用来描述沿着路径所具有的性质:X(下一状态),F(将来某些状态),G(总是)和U (直到 为止).LTL和CTL都包含于CTL*之内.(1)如果p A P,则p是一个状态公式.(2)如果f和g是状态公式,则 f和f g是状态公式.(3)如果f是一个路径公式,则E(f)和A(f)是状态公式.路径公式的语法为:(1)如果f是一状态公式,则f也是一路径公式.(2)如果f和g是路径公式,则 f,f g,X f,F f,G f及f U g是路径公式.CT L*的子逻辑CT L和LT L定义如下:CT L:CTL(Branching T ime Log ic)[17]公式是那些每个时态算子前必须紧跟有一路径算子的CT L*公式.LT L:LTL(Linear Temporal Lo gic)[9]公式是那些不含有路径算子A,E的CT L*公式.一个符号化的Kripke结构[16]是一个系统M=〈x,I,R〉,其包含如下组成部分:(1)x={x1,x2, ,x n}是一布尔变量的有限集.每个状态都被编码为对x的一个赋值,或者是x的一个子集(为了方便,我们有时候不区分一个集合和它的特征函数).所有状态组成的集合记为S.(2)I是系统的初始状态集合.(3)R表示转换关系,其为一断言,把一个状态s S和其后继状态s S联系起来.令x 为x的后继版本,则状态s 是状态s的后继当且仅当〈s,s 〉 R(x,x ),在这里〈s,s 〉是一联合解释,其中把x x解释为s[x],把x 解释为s [x].我们假设转换关系R是完全的:对于每个s S 有一个s s使得〈s,s 〉 R(x,x ).有时候,我们把〈s,s 〉 R(x,x )表示为〈s,s 〉 R.定义1. 假设M=〈x,I,R〉是一Kripke结构.①M的一条路径是一无限的状态序列〈s0,s1, 〉,使得对于每个i 0,有〈s i,s i+1〉 R和s0 I.②如果r=〈s0,s1, 〉是M的一条路径,则用r(i)表示s i,r i表示〈s i,s i+1, 〉.定义2. 给定一个Kripke结构M,A P是原子命题集,r是一计算路径, 是CT L*公式,定义 在r的第i步的可满足性(记为M,r,i )如下:M,r,i p,如果p r(i).M,r,i g1,如果M,r,i /g1.M,r,i g1 g2,如果M,r,i g1并且M,r,i g2. M,r,i E g1,如果存在一路径r 和自然数j,使得r (j)=r(i)并且M,r ,j g1. M,r,i A g1,如果对于所有的路径r ,存在自然数j,使得r (j)=r(i),有M,r ,jg1.M,r,i X g1,如果M,r,(i+1) g1.M,r,i g1U g2,如果存在k i,使得M,r,k g2且对于所有i j<k,M,r,j g1. M,r,i F g1,如果存在k i,使得M,r,k g1. M,r,i G g1,如果对于所有k i,M,r,k g1.为方便起见,我们有时把M,r,i 记为M, r(i) .显然,算子X,U及E足以表示CT L*中所有路径及时态算子.给定一个Kripke结构M和一用来表示规范的状态公式f,则模型检测问题就是计算出M中那些满足公式f的所有状态,即集合:1800计 算 机 学 报2005年{r(i)|r 是M 中的路径并且M ,r ,i f },这是一个x 上的布尔公式.4 关于CTL *的符号化模型检测设 是一可能包含时态算子的CT L *公式.我们采用文献[9,15]中的所谓tableau 构造的方法,对于一个公式 ,用 表示 是 的一个子(可能等于)公式.公式 被称为主时态的如果它的主要算子是时态算子,即 是如下形式:X 或 U .给定一个Kripke 结构M =〈x ,I ,R 〉和一个公式 ,我们定义另一个Kripke 结构M =〈X ,I ,R 〉如下:状态变量.M 的状态变量X 包括x 及附加的布尔变量集x :{x | 是 的一个主时态子公式},即X=x x.附加变量x在路径上某个状态为真当且仅当公式 在该状态成立.方便起见,我们定义一函数 ,它是把 的每一个子公式映射到x x上的一个布尔函数:( )=,是x 中的一个变量.( ), = . ( ) ( ), = .x ,是主时态公式.令x 是x 的后继版本(primed version ).对于x x 上的公式 ,我们用 ( )来表示公式 x Xx X,即 的后继版本.初始条件.M 的初始条件I 和M 的初始条件I 一样.转换关系.M 的转换关系R 为RX(x X ( ))U(x U ( ( ) ( ( ) x U ))).注1.我们关于公式 的tableau 构造与文献[15,16]中的有点不同.M 的初始状态不一定要满足 ,但是文献[15,16]中的tableau 构造使得初始状态满足 .方便起见,我们引进文献[24]中关于CT L 的一些记号.令 为x x 上的公式,EX 为一算子,使得:EX (x,x )= (x x )( (x ,x ) R ).算子EF 和EU 分别定义为某个单调算子的最小不动点:EF f =lfp Z(f EX Z)和EU (f ,g)=lfp Z(g (f EX Z)).令J 为公式 x U ( )的集合,这里 U 是 的一个子公式.我们考察如下公平性约束(fair nessconstraints ):C :存在一条路径,使得J 中的每个公式在该路径上成立无限多次.我们假设J 是一非空集,此假设不失一般性,因为我们可以把tr ue 加入J .约束条件C 可以被定义为一个最大不动点函数:C =gfp ZJ JEX(EU (true ,Z J )).我们称M 中的路径r 是公平的,如果J 中的每个J 沿着路径r 被满足无限多次.由文献[24]可知一状态满足约束条件C 当且仅当该状态在某条公平路径上,该路径使得每个J J 成立无限多次.可得如下引理.引理1. 设M =〈x ,I ,R 〉为一Kripke 结构, 为一可能含有时态算子的公式.M =〈X ,I ,R 〉,s 是M 的一状态.则s 满足C 当且仅当s 在M 中的公平路径上.引理2. 令M =〈x ,I ,R 〉是一Kripke 结构, 为一可能包含时态算子的公式,M =〈X ,I ,R 〉.则对于M 中的每条路径r ,存在M 中的一条公平路径r ,使得对于每个自然数u 和 中的每个子公式 ,有①r(u)=r (u) x .②M,r (u) 当且仅当M ,r (u) ( ).证明. 令r 为M 中的路径.我们定义M 中相应的公平路径r 如下:对于每个状态r(u),令r (u)=r (u) {x : 是 的主时态子公式并且M ,r (u) }.则我们可立即得到r(u)=r (u) x ,并且对于 中的主时态子公式 ,有M ,r (u) 当且仅当M ,r (u) ( ).对于 中别的子公式 ,我们可以通过归纳法证明.显然,r 是一公平路径.证毕.引理3. 令M =〈x ,I ,R 〉是一Kripke 结构, 是一可能包含时态算子的公式,M =〈X ,I ,R 〉.则对于M 中的任一公平路径r ,存在M 中的路径r 使得对于每个自然数u 和 中的每个子公式 有①r(u)=r (u) x .②M,r (u) 当且仅当M ,r (u) ( ).180111期苏开乐等:符号化模型检测CT L *证明. 令r 为M 中的一公平路径.我们定义M中的一路径r为:对于每个状态r (u),r(u)=r (u) x.给定 的一个子公式 ,我们对 的结构使用归纳法证明:M,r(u) 当且仅当M ,r (u) ( ).①当 x.根据事实r(u)=r (u) x,结论立即可得.②当 = 1或 = 1 2.根据归纳假设,及 和 的定义,易证结论.③当 =X 1.根据X语义定义,我们有M,r(u) 当且仅当M,r(u+1) 1,由归纳假设可得M,r(u+1) 1当且仅当M ,r (u+1) ( 1),再根据X的语义定义,有M ,r (u+1) ( 1)当且仅当M ,r (u) X ( 1),由转换关系R 的定义,可得M ,r (u) X ( 1)当且仅当M ,r (u) ( ).④当 = 1U 2.( )假设M,r(u) 1U 2.则对于v u, M,r(v) 2,并且对于所有的u m<v,M,r(m) 1.所以,根据归纳假设,有M ,r (v) ( 2),并且对于所有的u m<v,M ,r (m) ( 1).下一步我们对m使用递减归纳法证明:对于所有的u m v,有M ,r (m) ( ).首先,根据转换关系R 的定义及M ,r (v) ( 2),可得M ,r (v) ( ).假设对于u<m F v,有MU,r U(m)4V(W).则根据转换关系RU的定义及事实M U,r U(m-1)4V(W1),可得M U,r U(m-1)4V(W).这就完成了(])的证明.(a)假设M U,r U(u)4V(W),但并非M,r(u)4 W1U W2.有两种情况:(a)v是一自然数,且v E u使得M,r(v)4 ?W1,并且对于所有的u F m F v,有M,r(m)4 ?W2.(b)对于所有的m E u,有M,r(m)4W1C?W2.对于情况(a),根据归纳假设,对于v E u,有MU,r U(v)4/V(W1),并且对于所有的u F m F v,有MU,r U(m)4/V(W2).现对m使用递减归纳法证明:对于所有的u F m F v,有MU,r U(m)4/V(W).首先,根据转换关系R U和M U,r U(v)4/V(W1)及M U,r U(v)4/ V(W2),有MU,rU(v)4/V(W).假设对于所有u<m F v,有M U,r U(m)4/V(W).则根据转换关系RU和M U, rU(m-1)4/V(W2)及MU,r U(m)4/V(W),有M U, rU(m-1)4/V(W).所以MU,rU(u)4/V(W),矛盾.对于情况(b),根据归纳假设,对于所有的m E u,有M U,r U(m)4V(W1)并且MU,r U(m)4/V(W2).所以,再根据转换关系,可得:对于所有m E u,有M U,r U(m)4V(W)当且仅当MU,r U(m+1)4V(W).所以,对于所有m E u,有M U,r U(m)4V(W)和M U,r U (m)4/V(W2).这导致矛盾,因为r U的公平性保证有无限多个m使得r U(m)满足?x W D W2.证毕.下面的定理给出基于OBDDs的符号化验证CT L*公式的方法.定理1.令M=〈x,I,R〉为一Kripke结构,U 为一可能包含时态算子的公式,M U=〈XU,I U,R U〉.则对于M中的每条计算路径r及每个自然数u,有M,r(u)4E UZ v xU(CUC V(U)).证明.(])假设M,r(u)4E U.有一路径r c和一自然数v使得rc(v)=r(u)并且M,rc(v)4U.根据引理2,M U中存在一公平路径r U,使得M U,r U(v)4 V(U).并且,因为r U是一公平路径,则在其上的每个状态都必须满足CU.所以rU(v)满足CUC V(U).又因为r(u)=rc(v)=r U(v)H x,我们有r(u)G(rU(v) H xU)=r U(v).所以,可得r(u)G(r U(v)H xU)满足CUC V(U).即M,r(u)4v xU(CUC V(U)).(a)假设M,r(u)4v xU(CUC V(U)).则r(u)满足v xU(CUC V(U)),并且存在M U中的一状态s U 使得r(u)=sUH x,并且sU满足((CU)C V(U)).根据事实s U满足C U以及引理1,可得s U在M U中的某个公平路径r U上,并且存在一自然数v使得s U= r U(v).根据引理3,M中存在一路径rc使得rc(v)= r U(v)H x,并且M,rc,v4U当且仅当r U(v)满足V(U).又因为rU(v)=s U且r(u)=s UH x,可得rc(v)= r(u).另外,根据事实r U(v)满足V(U),可得M,rc, v4U.所以M,r,u4E U.证毕.现在我们给出CT L*的符号化模型检测算法.首先,我们给出EX,EF和EU的算法,它们分别记为CheckEX,CheckEF和CheckEU.CheckEX可根据下列方程计算:CheckEX(f(x,xU))=v(xc Gxc U)(f(xc,xc U)C RU).令BDD_And(f,g)和BDD_Or(f,g)分别表示公式f和g的BDDs的并及或运算,则给出Check-EU的伪代码如下:pro cedure CheckEU(f,g)beginBDD a##=F alse;BDD b##=T r ue;while a!=b do1802计算机学报2005年beginb##=a;a##=CheckEX(a);a##=BDD_A nd(f,a);a##=BDD_O r(g,a);end;r et ur n(a);end;CheckEF则可根据下式得到:CheckEF(f)=CheckEU(T rue,f).通过CheckEX和CheckEU及计算最大不动点的算法(参见文献[24]),可得到计算公平性约束CU 的算法,下面给出其伪代码:pr ocedure G etCo nstr aints()/*输入:J是公平性公式集合J U;输出:表示C U的BD D*/beg inBDD a##=T rue;BDD b##=F alse;BDD c;integ er i;w hile a!=b dobeginb##=a;a##=T rue;for i##=1to count of J dobeg inc##=CheckEU(T r ue,BDD_A nd(b,J[i]));a##=BDD_A nd(a,CheckEX(c));end;end;r et ur n(a);end;定义3.令g和gc为CT L*公式,称gc为g的最大子公式,如果有以下条件成立:①gc是g的子公式;②gc的形式为E g1或gc是一原子命题;③gc至少有一次不出现在g中的E的作用范围内.例如,对于公式E(f D E(g C EF h)),则EF h是E(g C EF h)的最大子公式,但不是E(f D E(g C EF h))的最大子公式.令M=〈x,I,R〉为一Kripke结构,g是一CT L*状态公式(如果g不是一状态公式,则验证它等于验证A g).算法1.Check函数.输入:Kr ipke结构M=〈x,I,R〉和CT L*状态公式g输出:布尔函数Check(g)返回M中g在其上成立的所有状态的集合(由BD D表示)1.把g转化为一个除算子E,X和U外,不包含别的模态算子的CT L*公式,这一步可根据下列公式得到:(a)A f S?E?f.(b)F f S T rueU f.(c)G f S?F?f.2.归纳地构造一个BDD来表示g:(a)当g为原子命题,则返回表示g的BDD.(b)当g=?g1,构造g1的BDD,并且返回该BDD的否定.(c)当g=g1C g2,则构造出表示g1的BDD和表示g2的BDD,然后返回它们的并.(d)当g=E g1,这里g1是一L T L公式,则返回BDD:v X g1(C g1C V(g1)).(e)当g=E g1,这里g1不是LT L公式.令f1,f2,,,f n是g1中最大子公式的序列,并且g1=g2(f1,f2,,,f n),则返回BDD:Check(g2(Check(f1),Check(f2),,,Check(f n))).注2.在算法1步2的(d)中,如果g是形式为EX g1或E(g1U g2)的CTL公式,我们可简单地在Kripke结构〈x,I,R〉上直接调用CheckEX或CheckEU来得到相应的BDD:显然,这样使得效率更高,因为此时不需要构造Kripke结构M g=〈X g, I g,R g〉.我们把经过这种修改后得到的算法称为算法2.5实验结果我们已经在N uSMV2.1.2[25]的开放源码中实现了本文给出的CTL*的符号化模型检测算法.其中使用的OBDDs是由美国科罗拉多大学Somenzi 开发的CUDD.得到的模型检测工具我们称之为M CTK.M CTK向下兼容N uSM V,在NuSMV的输入语言中扩展了对CT L*规范的支持.这使得我们可以利用MCT K同时验证CT L,LT L和CT L*规范(NuSMV仅支持CT L和LTL).我们在NuSM V软件包的一些实例中加入了若干CT L*规范并用M CTK加以验证,实验结果如表1所示.其中第4,6列给出验证每个规范所用BDD 的最大节点数.为便于分析实验结果,我们设计一简单的实验用例,即文献[24]中给出的微波炉例子,如图1所示.其中每个状态被原子命题标注,如果命题在该状态中为假,则用其否定标注;状态间的有向弧表示转换关系.在该例子中有4个原子命题:S tar t表示/微波180311期苏开乐等:符号化模型检测CT L*图1微波炉例子炉开始加热0;H eat表示/微波炉加热0;Close表示/微波炉门被关闭0;Er ror表示/出现错误0.我们验证了该例中的一些CT L*规范,下面列出3个具有代表性的CTL*规范(实验结果列于表1中实例o v-en所处的3行).1.X H eat.即验证微波炉在下一状态将被加热.等价于验证A X H eat.2.?H eat U Close.即验证微波炉门没关加热是不可能的.等价于验证A(?H eat U Clos e).3.A G((?Close C Star t)→A(G?H eat D F?Er r or)).验证:无论何时有错误出现,则微波炉要么不会加热,要么重启.从表1可以看出,如果一个CT L*规范的整体或部分子公式是CT L公式,则用算法2计算时,所用BDD节点数和计算时间通常比算法1要少;否则算法2退化为算法1,使得两算法的时空效率相同.规范1,2,4,5,9的实验结果属于前一种情况,而规范3,6,7,8,11的属于后一种情况.另外,用算法2验证规范10所需的时间比算法1少很多,但是所用BDD节点数比算法1的要多.我们认为主要是由于BDD变量的排列顺序不够优化所导致的.实际上,如果一个规范是CT L公式,用算法2得到的BDD 和用文献[24]中的CT L算法得到的BDD是一样的.我们通过验证表1中的实例证实了这一点.表1 实验结果实例CT L*规范结果算法1BDD的节点数时间(s)算法2BDD的节点数时间(s)oven 1X H eat Fals e3030.012470.01 2?H eat U Close T rue4030.012530.01 3AG((?Close C Start)→A(G?H eat D F?E rr or))T rue6440.016440.01gigamax 4?F(p0.w ritable C p1.w ritable)T rue166660.04105710.03 5(G?(p0.w rita ble C p1.w ritable))CAGEF(p0.rea dable|p0.w r itable))T rue640720.13245880.06 6GE(F p0.rea dable D F p0.w ritable)T rue3834790.803834790.80production-cell7AG((s.F BM=on C?s.d eliv)→A(F(s.F BM=on Cs.d eliv)C F(s.botP os C s.minRotC s.T EM=id le Cs.T R M=id le)))T rue1262870.461262870.46guidance 8AGA(?cg.idle→F cg.f inished)T rue3295344.023295344.02 9AG((cg.idle D cg.f inished)→E F(?(c g.id le Cc g.f inishe d)D EF cg.f inished))T rue2893704.322562100.58msi_w tran 10AGEF n0.c.inv alid T rue18708185.321955754.24 11AGE(F n0.c.inv alid D F n0.c.shared)T rue485774393.05485774393.056结论在本文中,我们给出了一个基于OBDD的CT L*符号化模型检测算法,实现了相应的符号化模型检测工具M CTK,并验证了N uSM V软件包中的若干实例.直到目前,已知的符号化模型检测工具,如SM V和NuSMV等,都只能对CT L*的子集(CTL,LT L等)进行验证.在本文中我们得到的结果表明,当系统规范不是非常复杂时,高效的CTL*模型检测是可能的.关于将来的工作,我们将对该算法进行扩展,使其能够处理公平性约束(fairness constraints)和过去时态算子以及区间演算(dura-tion calculus)[26].参考文献1H olzmann G.J..The model ch eck er SPIN.IE EE Transactions on Softw are Engineerin g,1997,23(5):279~2952Vardi M.Y..Branching vs.linear tim e:Fin al sh ow dow n.In: Proceedings of the7th International Conferen ce on Tools an d Algorithm s for the Construction and Analy sis of Systems,L on-don,U K,2001,1~223M cM illan K.L..Symbolic M odel C hecking.Boston:Kluw er Academic Pub lisher,19934Clarke E.M.,E mer son E.A..Design and synthesis of syn-1804计算机学报2005年chronization sk eletons u sing b ranching-time temporal logic.In: Proceedin gs of Logic of Programs,W orksh op,Yorktow nH eights,New York,1981,52~715Qu eille J.P.,Sifak is J..S pecification and verification of con-cu rren t system s in CESAR.In:Proceedin gs of International S ymposium on Programm ing,T orin o,Italy,1982,337~351 6Em ers on E.A.,Lei Ch in-Laung.M odalities for m odel chec-kin g(extend ed abstract):Bran ching tim e strik es back.In: Proceedin gs of the12th ACM SIGACT-SIGPLAN Symp os ium on Prin ciples of Programm ing Languages,New York,1985,84 ~967Em ers on E.A..Branch ing time temporal logic and th e design of correct con current pr ograms[Ph.D.dis sertation].H ar vard U nivers ity,Cambridge,M A,19818S istla A.P.,Clark e plexity of propositional tem-poral logics.Journ al of the ACM,1986,32(3):733~7499Lichten stein O.,Pnueli A..Ch ecking th at finite s tate concur-rent programs satisfy their lin ear s pecification.In:Pr oceedings of th e12th ACM SIGAC T-SIGPLAN Symposiu m on Prin ciples of Programmin g Languages,New York,1985,97~10710Godefroid P.,Pirottin D..Refin ing depen dencies impr oves partia-l order verification m ethods(exten ded abstract).In: Cou rcoubetis C.ed..C AV,Lectu re Notes in Compu ter S c-i ence697.Spring er,1993,438~44911Peled b ining partial order redu ctions w ith on-the-fly m od e-l checkin g.Formal M eth ods in System Design,1996,8(1):39~6412Valmari A..A s tu bborn attack on state ex plosion.Formal M ethods in System Des ign,1992,1(4):297~32213Bur ch J.R.,Clark e E.M.,M cM illan K.L.,Dill D.L.,H w an g L.J..S ymbolic m odel ch eck ing:1020states an d b e-yond.In:Proceedin gs of the5th An nual IE EE Sympos ium on Logic in Computer S cience,W as hington,D.C.,1990,1~33 14Bryant R.E..Symb olic Boolean man ipulation w ith ordered b-i nary-decision diagram s.ACM Computing Su rveys,1992,24(3):293~31815Clark e E.M.,Grum berg O.,Hamaguchi K..Another look at ltl m odel checking.In:Pr oceedings of th e6th Conference on Com puter Aided Verification,S tanford,Californ ia,U SA, 1994,415~42716Kesten Y.,Pn ueli A.,Raviv L..Algor ith mic verification oflinear tem poral logic specifications.In:Lar sen K.G.,Skyum S.,Winskel G.eds..ICALP,Lecture Notes in Computer Sc-i ence1443.S pringer,1998,1~1617Clarke E.M.,Em erson E.A.,Sistla A.P..Automatic verif-i cation of finite state con current s ystem s using tem poral logic specification s:A practical approach.In:Proceedin gs of the 10th Annual ACM Symposiu m on Principles of Programmin g Language,Austin,Texas,1983,117~12618Burch J.R.,Clarke E.M.,Long D.E..Symbolic model ch ec-king w ith partition ed tran sition relations.In:Proceedings of the Intern ational Conferen ce on Very Large Scale Integration, Edinbu rgh,S cotland,1991,49~5819Burch J.R.,Clark e E.M.,Lon g D.E.,M acM illan K.L., Dill D.L..S ymbolic model checking for sequential circu it ver-i fication.IEEE Trans actions on Computer-Aided Design of Inte-grated Cir cuits and Sys tems,1994,13(4):401~42420Bhat G.,Cleavelan d R.,Gru mberg O..Efficient on-th e-fly model checking for ctl*.In:Proceedings of the10th Ann ual IEEE Symp os ium on Logic in Computer S cien ce,San Diego, Californ ia,USA,1995,388~39721Bern holtz O.,Vardi M.Y.,W olper P..An automata-theoret-ic approach to branching-time model checking(extended ab-stract).In:Dill D.L.ed..CAV,Lecture Notes in Computer Science818.Sp ringer,1994,142~15522Kes ten Y.,Pnueli A..A compositional approach to ctl*ver-i fication.Th eoretical Compu ter Science,2005,331(2,3):397 ~42823Emerson E.A.,H alpern J.Y../sometimes0and/n ot n ever0 revis ited:On branching versus linear time tem por al logic.Jour-nal of th e ACM,1986,33(1):151~17824Grumberg O.,Clarke E.M.,Peled D.A..M odel Checkin g.Cambridge,M A:T he M IT Press,200025Cimatti A.,Clark e E.M.,Giunch iglia E.,Giun chiglia F., Pistore M.,Roveri M.,Sebastiani R.,Tacchella A..NuSM V Ver sion2:An OpenS ou rce tool for symbolic model checkin g.In:Proceedin gs of the In ternation al Conference on Compu ter-Aided Verification(CAV2002),Copenhagen,Denm ark, 2002,359~36426Zhou C hao-Chen,H oare C.A.R.,Ravn An ders P..A calcu-lus of du rations.In formation Processing L etters,1991,40(5): 269~276SU Kai-Le,bor n in1964,pr ofes-sor,P h.D.super viso r.H is r esear ch in-terests include mo del checking,r eason-ing abo ut kno wledg e,no n-monotonicr easo ning,mult-i agent system,modallog ic,tempor al log ic,pro bability r ea-soning,verificatio n o f security pro tocol,log ic pro gr amming.LUO Xiang-Yu,bo rn in1974,Ph.D.candidate.H isr esear ch interests include model checking,tem po ral lo gic,modal log ic,r easo ning about know ledg e,mult-i ag ent sys-tem,v erificat ion of secur ity proto col,lo gic pr og ramming.LU Guan-Feng,bo rn in1973,Ph.D.candidate.H isr esear ch interests include model checking,reasoning aboutknow ledg e,mult-i ag ent sy stem,moda l log ic,tempor al lo g-ic,pr obability r easo ning,v erificat ion of secur ity pr oto co l,log ic pr og ramming.1805 11期苏开乐等:符号化模型检测CT L*BackgroundIn t he past15year s,ther e w as many w or ks on symbolic model checking fo r the sublo gics of CT L*.Fo r t he br anch-ing-time tempor al log ic CT L,M cM illan et al.r ealized the o-r ig inal CT L mo del checking alg or ithm of Clarke and Emer son with the OBDDs representat ion for state tr ansition g raphs, and thus it is po ssible to verify some examples that had mor e than1020states,even10120stat es by using v arious refine-ments of the OBDD-based techniques by o ther researchers.Fo r sy mbo lic L T L model checking,Clarke,G rumberg and Hamag uchi gave a wa y to r educe L T L model checking to CT L model checking with fairness const raints,co nstr ucted asy mbo lic L T L model checker using the r eduction,and also show ed ho w SM V can be ex tended to per mit L T L specifica-t ions.K esten,P nueli and Raviv gav e an interesting frame-w or k for sy mbo lic model checking specificatio ns of linear-t ime tempo ral log ic L T L w ith full fa irness into consider ation,and it was self-contained ex po sition of full L T L symbolic mo del checking w ithout resor ting to r eductions to either CT L or au-to mata.T here was also some model checking algo rithms for the full CT L*.Bhat,Cleav e land and G rumber g presented an ef-ficient o n-t he-fly algo rit hm fo r mo del checking CT L*.Bern-ho ltz,V ardi and Wo lper sugg ested another mode-l checking alg or ithm fo r the full CT L*,w hich allo ws the on-the-fly con-str uction of the state space of a system.H owev er,these a-l g or ithms ar e not symbolic ones for CT L*mo del checking. Recently,K est en and Pnueli pr esented a compositional a p-pr oach to t he v erif ication o f CT L*pr operties o ver reactiv e systems.Bo th sy mbo lic mo de-l checking and deductiv e ver if-i cation ar e consider ed.T he mode-l checking part is similar to the sy mbo lic model checking alg or ithm of this paper.But they didn.t present the pr oofs and ex perimental r esults in de-ta il.T his paper g iv es a symbolic model checking alg or ithm for CT L*.T he t ime co mplexity of the alg or ithm matches that of the exist ing algo rithms for model checking CT L*,or its sublog ics CT L and LT L.A ut ho rs also describe how to co nstr uct a new CT L*sy mbo lic model checker(M CT K)that appears to be efficient in practice.Fo r the specificat ions which are CT L,the CT L*model checker g et the same re-sults as the CT L mo del checker.第一届Agent理论与应用学术会议(Agent.2006)征文通知由中国计算机学会模式识别与人工智能专业委员会主办、烟台大学承办的第一届Ag ent理论与应用学术会议定于2006年8月中旬在山东烟台举行.本次会议将聚集国内从事A gent理论与应用的研究人员和工程技术人员,广泛开展学术交流,研究发展战略,共同促进Ag ent理论与技术的发展和应用.本次会议录用的论文将在《计算机研究与发展》增刊上发表,部分录用论文推荐到三大刊发表.一、征文范围(包括但不限于)Ag ent和多A g ent结构;A gent和多Ag ent系统的形式模型;基于A gent的软件工程与方法学;A gent协商与协调;Ag ent 拍卖与电子市场;A g ent组织与联盟;A gent通信和语言;A g ent学习与规划;A gent系统的计算复杂性;多A gent系统环境与性能评价;A g ent仿真;人工社会系统;移动Ag ent;A g ent与网格计算;A gent与数据挖掘;A gent和多Ag ent系统应用;其他Ag ent理论与技术方面的内容.二、论文要求论文未被其它会议或期刊发表;论文包括题目、中英文摘要、关键词、正文、参考文献等,论文参照《计算机研究与发展》的格式,发电子邮件至agent2006@,并请注明作者姓名、单位、通信地址、邮政编码、联系电话、电子邮件地址.三、重要日期征文截止日期:2006年4月30日录用通知日期:2006年5月30日四、联系方式通信地址:山东烟台大学计算机学院邮政编码:264005联系人:童向荣,娄跃荣,贺利坚联系电话:(0535)6902538转8621;6902209转8621;6191281会议网址:;电子邮件:agent2006@1806计算机学报2005年。