1、QRDChecker:一个 QRDC 模型检验工具QRDChecker: A Model Checking Tool for QRDCPei Y, Xu QW, Li XD, Zheng GL. QRDChecker: A model checking tool for QRDC. Journal of Software, 2005,16(3):355364. DOI: 10.1360/jos160355Abstract: A reactive system does not terminate and its behaviors are typically defined as a set
2、of infinite sequences of states. In formal verification, a requirement is usually expressed in a logic, and when the models of the logic are also defined as infinite sequences, such as the case for LTL (linear temporal logic), the satisfaction relation is simply defined by the set containment. Howev
3、er, this satisfaction relation does not work for interval temporal logics, where the models are finite sequences. In fact, for different interval based properties, different satisfaction relations are sensible. Two classes of finitary properties are identified, and then two satisfaction relations ar
4、e defined for them, which are unified by a general relation. A model checking algorithm is proposed and implemented in a verification tool for QRDC (quantified RDC (restricted duration calculus), which is an interval temporal logic. The tool QRDChecker can check the validity of QRDC formulae under b
5、oth continuous and discrete interpretations. Moreover, for discrete QRDC, it can also translate the formulae into an automaton in the form accepted by the Spin model checking system, which can be subsequently used to verify a reactive system against properties expressed in the logic.Key words: model
6、 checking; finitary property; reactive system; interval temporal logic摘 要: 反应式系统通常是不终止的,其行为定义为系统状态的无限序列的集合.形式化验证时,检验需求一般使用时序逻辑给出.当使用诸如 LTL(linear temporal logic)这样的逻辑时,由于这类逻辑的模型同样是无限序列,系统与需求之间的满足性关系可以简单定义为集合的包含关系.但是,当使用时段时序逻辑(interval temporal logic)作为说明逻辑时,由于逻辑模型的有限性,使得上面的满足关系不再适用.称这类有限序列集合表达的性质为有限
7、性性质.对于不同的有限性性质,它们对应的满足性关系是有区别的.针对两类有限性定义了它们各自的满足性关系,并将这两种关系统一为一个更一般的满足性关系.在此基础上,提出模型检验这两类性质的算法,并将其实现为一个针对时段时序逻辑 QRDC(quantified RDC (restricted duration calculus)的检验工具 QRDChecker.QRDChecker 可以检验 QRDC 公式在 连续时间模型和离散时间模型下的有效性.在离散时间条件下,它还可以将 QRDC 公式转换成模型检验系统 Spin 能够接受的自动机的形式,从而可以检查反应式系 统是否满足用 QRDC 公式表达的
8、性质.关键词: 模型检验;有限性性质;反应式系统;时段时序逻辑反应式系统是实时系统中的一类,这类系统通常不会终止,它们的语义一般定义为系统状态的无限序列的集合.针对这类系统,目前应用广泛的说明逻辑是线性时序逻辑 LTL(linear temporal logic),LTL 公式的模型是状态的无限序列.在这种情况下,反应式系统与 LTL 公式之间的满足性关系可以简单地定义为集合的包含关系,即系统满足公式描述的性质当且仅当系统的所有行为都是公式的模型.ITL(interval temporal logic)作为一种时段时序逻辑,虽然并不像 LTL 那样应用广泛,但是它可以更方便地表达一些特定的性质
9、 1.在几乎所有的时段时序逻辑及其扩展中,时段都被认为是有限的,逻辑公式的模型因而也都是有限的.时段时序逻辑公式的所有模型构成一个有限状态序列的集合,称为有限性性质.这样,在使用时段时序逻辑来描述反应式系统的性质时,由于系统行为的无限性和性质模型的有限性,满足性关系将不再简单地只是集合的包含关系.一种可能的,也是常用的定义为:一个无限长的行为满足一个有限性性质当且仅当该行为所有的有限前缀都满足该性质.这样的定义对某些性质(例如 safety2性质)是适合的,而对另一些性质(例如 liveness2性质)则并不恰当 3,这与具体的性质有关.经典的 safety 性质和 liveness 性质是针
10、对无限模型提出来的 ,我们给出了这两类性质在有限模型下的版本 3,分别称为 FS 性质和 EP 性质 .我们对这两类有限性性质作了研究,给出了它们各自相应的满足性关系及更为一般的,同时适用于这两类性质的统一定义.针对这两类性质,我们提出了自动检验系统是否满足该性质的方法.检验算法首先由性质出发构造相应的 Bchi 自动机,然后通过检查反应式系统行为模型的集合与这个 Bchi 自动机的语言之间的包含关系来确定系统是否满足该性质.在此基础上,我们采用 QRDC(quantified RDC(restricted duration calculus)作为说明语言,设计并实现了模型检验工具 QRDCh
11、ecker.QRDC 作为一种基于时段的逻辑,其中包括对系统停留在某一状态上的累计时间研究,并引入了作用在状态变量上的量词.QRDC 公式表达的性质由其在离散时间条件下的模型集合来确定.QRDChecker 可以作为 Spin 的前端,将表达有限性性质的 DQRDC 公式转换成时序声明 (temporal claim),然后该声明可以作为 Spin的输入用于模型检验反应式系统是否满足该性质.另外,在文献4工作的基础上,QRDChecker 中还实现了对 QRDC公式在离散及连续时间条件下的有效性检验.本文第 1 节首先回顾 QRDC 的语法、语义及相应的公式模型,然后提出针对表达两类有限性性质
12、的 DQRDC公式的模型检验算法.第 2 节介绍工具 QRDChecker 的设计与实现.第 3 节中使用 QRDChecker 来检验 Peterson 互斥算法的正确性.最后我们对工具的效率、意义等方面进行简要的讨论.1 工具基础1.1 带量词的RDC(quantified RDC )时段演算(duration calculus4,简称 DC)是在 ITL 基础上扩展而来的. 在 DC 中,引入了对系统停留在某一状态上的累计时间的研究.QRDC 是对 DC 的一个可判定子集 RDC(restricted DC)4的扩展.在 QRDC 中我们引进了作用在状态变量上的量词.本文中,我们将使用以
13、下符号: 是一个有限集合, 是由 中元素组成的所有有限序列的集合. *= + ,其中 是空序列.我们用 表示由中元素组成的所有无限序列,或者称其为 序列的集合. =*.给定 上的一个序列 ,| |表示 的长度.具体地,当 是 序列时,| |= ;当 = 时,| |=0.对于两个序列 1*和 2 ,12 表示将 2 连接在 1 的后面得到的新序列; 1 被称作 2 的一个前缀,记作 12,当且仅当3:13=2.P1,P2 是两个有限序列的集合,P 1P2= 1 2| 1 P1 2 P2.1.1.1 语 法我们用 p,p1, ,pn 表示状态变量,SVar 是所有状态变量的集合.状态表达式和公式定
14、义如下:S:=0|1|p| S1|S1 S2,:=S | | 1 2| 1; 2| p. .1.1.2 语 义对状态变量的解释函数 I 定义为I SVar (Time 0,1).上式中的时间域 Time 可以取 R 0,Q 0 或者 N.对任意一个状态变量,I 给出了其在任意一个时间点上的取值.当我们限定时间只可以取值自然数,即 N 时,我们得到定义在离散时间上的 QRDC(DQRDC).类似地,状态表达式 S 的解释函数也定义为从时间到0,1的函数.从 S 的结构出发,该函数归纳定义如下:1. I 0 (t)=0;2. I 1 (t)=1;3. I p (t)=I(p)(t);4. I S
15、(t)=1I S (t);5. I S1 S2 (t)=max(I S1 (t),I S2 (t).在给定 I 的情况下,一个 QRDC 公式 的语义由定义域为时间区间集合的函数给出 :I b,e|b,e Time b e tt,ff.I 的具体定义如下:1. I S (b,e)=tt 当且仅当 在连续时间条件下,bk S k+1 Sk (Sk)S3);待检验公式:关键字“goal”表明检验目标部分的开始 .紧接其后的 QRDC 公式指出将被检验或转换的目标公式,该部分同样以“;”结束.例如:goal (pBOUND req1);表 1 中列出了输入文件中可用操作符、其 ASCII 表示、优先
16、级和结合性,并给出了应用实例.输入文件编辑完成以后,用户可以从工具栏调用所有的功能,包括选择时间模型(连续或者离散) 、检验动作(有效性检查或者模型检验)等.检查或者检验的结果将在新窗口中显示.QRDChecker 是在 MicroSoftTM Visual C+ 6.0 环境下采用 C+语言开发的.在工具中,我们使用了用于操作有限状态机的 C+语言包 Grail+10.另外, 我们还使用了编译器构造程序 Parser Generator 来生成对输入文件的分析代码.Table 1 Operators in QRDChecker表 1 QRDChecker 中可用的操作符Mathematica
17、l sign ASCII Priority Association Meaning Example | 0 Left Or p1|p2 27. : atomicbreq=true;7. bool ain; 28. turn=aturn; 8. bool bin; 29. (areq=false|turn=bturn);9. 30. bin=true;10. proctype a()31. /* critical section*/11. 32. /* assert(ain=false);*/12. do 33. bin=false;13. : atomicareq=true; 34. breq
18、=false;14. turn=bturn; 35. od;15. (breq=false|turn=aturn); 36. 16. ain=true; 37.17. /* critical section cs*/ 38. init18. /* assert(bin=false);*/ 39. 19. ain=false; 40. run a(); run b();20. areq=false; 41. 21. od;Fig.2 Promela model for Peterson algorithm图 2 Peterson 算法的 Promela 模型为了实现互斥,算法中使用了 3 个全局
19、变量 turn,areq 和 breq.第 15 行和第 29 行的语句实现了同步,该语句只有当其中的布尔表达式为真的时候才可以执行.如果仅有一个进程申请访问临界区,该访问可以立即进行.当两个进程同时申请访问时,由变量 turn 决定哪一个进程可以进入临界区 .变量 ain 和 bin 是为了描述性质方便而引入的,分别表示进程 a 或 b 在其临界区内.作为一个解决互斥问题的算法,它必须能够保证互斥性,即在任何时刻,两个进程都不会同时在临界区内.这个性质可以方便地用 DQRDC 公式表示如下,其中 l 表示当前时段的长度:Req1 (l1 (ain bin) ).与之相对应,Promela 时
20、序声明如图 3 所示.其中,接受状态使用以“accept”开头的标号指出.1. never 12. T2:2. T0_init: 13. if3. if 14. :(!ain|!bin)goto T24. : goto T1 15. :(ain 16. fi;6. T1: 17. accept_5:7. if 18. if8. :(true)goto T1 19. :(true)goto accept_59. :(!ain|!bin)goto T2 20. fi;10. :(ain Fig.3 Temporal claim for Req1图 3 用于检验互斥性的时段声明互斥性是较简单的性质,
21、我们可以通过在模型中增加断言(第 18 行和第 32 行) 来进行检验.下面我们考虑一个更为复杂的性质,该性质要求两个进程在竞争访问临界区时遵循某种公平性,具体地,它要求如果一个进程试图访问其临界区,而此时另一个进程正在其临界区内,那么在第 2 个进程再次进入临界区之前,第 1 个进程一定已经进入过临界区.这个性质可以用公式表达如下:Req2 ( areq bin) ; bin ; bin ain ).从这个公式出发,我们可以得到如图 4 所示的时序声明.1. never 16. T6:2. T0_init: 17. if3. if 18. :(!bin 20. fi;6. T0: 21. a
22、ccept_14:7. if 22. ifQRDChecker:一个 QRDC 模型检验工具 3638. :(true)goto T0 23. :(true)goto accept_199. :(areq 25. fi;11. T2: 26. accept_19:12. if 27. if13. :(!bin 15. fi; 30. Fig.4 Temporal claim for Req2图 4 用于检验性质 Req2 的时序声明将上面的系统模型和生成的时段声明作为输入,Spin 显示算法满足该性质 .4 讨 论本文介绍了模型检验工具 QRDChecker 的理论基础及其设计与实现,并针对工
23、具在模型检验方面的具体应用给出了应用实例.相对于在 LTL 方面的大量的研究而言 ,在时段时序逻辑自动检验方面的工作并不多见.QRDChecker 主要面向那些以使用时段时序逻辑为主的研究者 ,但人们可以在主要使用 LTL 的同时,用 DQRDC来表达那些用 LTL 不方便描述的性质 .事实上,Peterson 互斥算法中的性质 Req2,就是这样一个适合使用时段时序逻辑来描述,而用 LTL 表达则很困难的性质 .虽然将时段时序逻辑的公式转换成有限状态自动机的算法并不复杂且已经提出了一段时间,但相关的实现则很少.Skakkebaek 和 Sestoft11的实现作为证明助手的一部分 ,是基于一
24、个不再维护的低版本的 PVS 的.Pandya 5在系统 DCValid 中借助 Mona12系统将时段逻辑转换为 Mona 的语言,进而进行检验.虽然 Mona 的效率非常高,但这也使得它难于使用.另外,在 DCValid 中并没有针对不同的有限性性质进行相应的处理 .在 QRDChecker 中,我们区分不同的有限性性质,检验算法更加适应不同性质描述的实际要求.工具根据不同的性质更好地控制检验过程,并进行相应的优化.例如,由于对有限状态自动机进行确定化的算法的复杂性是非常高的,所以我们在 QRDChecker 中根据公式表达的不同性质,决定是否需要进行相关的确定化运算,尽可能地提高工具的效
25、率.致谢 本文的工作很大一部分是在第一作者作为 fellow 在 UNU/IIST 访问学习期间完成的,在此对 UNU/IIST 提供的资助表示衷心的感谢.References:1 Ramakrishna YS, Melliar-Smith PM, Moser LE, Dillon LK, Kuttys G. Interval logics and their decision procedures, Part I: An interval logic. Theoretical Computer Science, 1996,166(1&2):147.2 Alpern B, Schneider
26、FB. Recognizing safety and liveness. Technical Report TR86-727, New York: Cornell University, 1986.3 Pei Y, Xu QW. Checking interval based properties for reactive systems. In: Steffen B, Levi G, eds. Proc. of the 5th Intl Conf. on Verification, Model Checking, and Abstract Interpretation. Venice: Sp
27、ringer-Verlag, 2004. 122134.4 Hansen MR, Zhou CC. Duration calculus: Logical foundations. Formal Aspects of Computing, 1997,9(3):283330.5 Pandya PK. Specifying and deciding quantified discrete-time duration calculus formulae using DCVALID. Technical Report, No.TCS00-PKP-1, Mumbai: Tata Institute of
28、Fundamental Research, 2000.6 Clarke EM, Grusmberg O, Peled DA. Model Checking. Cambridge: MIT Press, 1999.7 Pei Y, Xu QW. Model checking reactive systems for finitary properties. Technical Report, No. 283, Macau: UNU/IIST, 2003. http:/www.iist.unu.edu/newrh/III/1/page.html8 Holzmann G. The model che
29、cker SPIN. IEEE Trans. on Software Engineering, 1997,23(5):279295.9 Arnold A. Finite Transition Systems: Semantics of Communicating Systems. Hemel Hempstead: Prentice-Hall, 1994.10 The Grail+ Project. Department of Computer Science, University of Western Ontario. 2002. http:/www.csd.uwo.ca/research/
30、grail/11 Skakkebaek JU. A verification assistant for real-time logic Ph.D. Thesis. Department of Computer Science, Technical University of Denmark, 1994.12 Henriksen JG, Jensen J, Jorgensen M, Klarlund N, Paige B, Rauhe T, Sandholm A. Mona: Monadic second-order logic in practice. In: Brinksma E, Cleaveland R, Larsen KG, Margaria T, Steffen B, eds. Proc. of the Tools and Algorithms for the Construction and Analysis of Systems95. Aarhus: Springer-Verlag, 1996. 89110.