nusmv: a new symbolic model checker · this paper describes a new symbolic model checker, called...

25
N U SMV: a new symbolic model checker A. Cimatti E. Clarke F. Giunchiglia M. Roveri ITC-IRST, Via Sommarive 18, 38055 Povo, Trento, Italy cimatti,fausto,roveri @irst.itc.it SCS, Carnegie-Mellon University, 5000 Forbes Avenue, Pittsburgh, PA 15213-3891, USA [email protected] DSI, University of Milano, Via Comelico 39, 20135 Milano, Italy Abstract This paper describes a new symbolic model checker, called NUSMV, developed as part of a joint project between CMU and IRST. NUSMV is the result of the reengineering, reimplementation, and, to a limited extent, extension of the CMU SMV model checker. The core of this paper consists of a detailed description of the NUSMV functionali- ties, architecture, and implementation. Key words Symbolic Model Checking – Temporal Logics – Automatic verification – Tools for technology trans- fer. 1 Introduction This paper describes the results of a joint project between Carnegie Mellon University (CMU) and Istituto per la Ricerca Scientifica e Tecnologica (IRST) whose goal is the development of a new symbolic model checker. 1 The new model checker, called NUSMV, is designed to be a well structured, open, flexible and documented platform for model checking. To be usable in technology transfer projects, NUSMV was designed to be very robust, easy to modify, and close to the standards required by industry. NUSMV is the result of the reengineering and reimplementation of the CMU SMV [47, 26] symbolic model checker. With respect to CMU SMV, NUSMV has been upgraded along three dimensions. From the point of view of the system functionalities, NUSMV has some features (e.g., multiple interfaces, LTL specifications) that enhance the user ability to interact with the system, and provide more heuristics for, e.g., achieving efficiency or partially controlling the state explosion. The system architecture of NUSMV is highly modular (thus allowing for the substitution or elimination of certain modules) and open (thus allowing for the addition of new modules). A further feature is that in NUSMV the user can control, and possibly change, the order of execution of some system modules. The quality of the implementation is much enhanced. NUSMV is a very robust and well documented system, whose code is (relatively) easy to modify. The paper is organized as follows: in Section 2 we briefly introduce the logical framework below symbolic model checking; Section 3 describes the interaction with the system; Section 4 explains the functionalities provided by the system; Section 5 describes the NUSMV system architecture; Section 6 describes the NUSMV implementation features. Finally, Section 7 describes the results of some tests and future development directions. NUSMV is available at the url “http://sra.itc.it/tools/nusmv ”. 1 The material presented in this paper is self-contained. This paper is readable with ordinary efforts for someone with some background in formal methods. 1

Upload: truongtuyen

Post on 29-Sep-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

NUSMV: a new symbolicmodelchecker

A. Cimatti�

E. Clarke�

F. Giunchiglia�

M. Roveri� � �

�ITC-IRST, Via Sommarive 18,38055Povo, Trento,Italy�

cimatti,fausto,roveri � @irst.itc.it�SCS,Carnegie-MellonUniversity, 5000ForbesAvenue,Pittsburgh,PA 15213-3891,USA

[email protected]�DSI, Universityof Milano, Via Comelico39,20135Milano, Italy

Abstract

Thispaperdescribesanew symbolicmodelchecker, calledNUSMV, developedaspartof a joint projectbetweenCMU andIRST. NUSMV is theresultof thereengineering,reimplementation,and,to a limited extent,extensionoftheCMU SMV modelchecker. Thecoreof this paperconsistsof a detaileddescriptionof theNUSMV functionali-ties,architecture,andimplementation.

Keywords SymbolicModel Checking– TemporalLogics– Automaticverification– Toolsfor technologytrans-fer.

1 Intr oduction

This paperdescribesthe resultsof a joint project betweenCarnegie Mellon University (CMU) and Istituto per laRicercaScientificae Tecnologica(IRST) whosegoalis thedevelopmentof a new symbolicmodelchecker.1 Thenewmodelchecker, calledNUSMV, is designedto beawell structured,open,flexible anddocumentedplatformfor modelchecking.To beusablein technologytransferprojects,NUSMV wasdesignedto bevery robust,easyto modify, andcloseto thestandardsrequiredby industry.

NUSMV is the resultof the reengineeringandreimplementationof the CMU SMV [47, 26] symbolicmodelchecker. With respectto CMU SMV, NUSMV hasbeenupgradedalongthreedimensions.

Fromthepointof view of thesystemfunctionalities,NUSMV hassomefeatures(e.g.,multiple interfaces,LTLspecifications)that enhancethe userability to interactwith the system,andprovide moreheuristicsfor, e.g.,achieving efficiency or partiallycontrollingthestateexplosion.

The systemarchitectureof NUSMV is highly modular(thus allowing for the substitutionor elimination ofcertainmodules)andopen(thusallowing for theadditionof new modules).A furtherfeatureis thatin NUSMVtheusercancontrol,andpossiblychange,theorderof executionof somesystemmodules.

Thequality of the implementationis muchenhanced.NUSMV is a very robustandwell documentedsystem,whosecodeis (relatively) easyto modify.

Thepaperis organizedasfollows: in Section2 we briefly introducethelogical framework below symbolicmodelchecking;Section3 describesthe interactionwith the system;Section4 explains the functionalitiesprovided bythe system;Section5 describesthe NUSMV systemarchitecture;Section6 describesthe NUSMV implementationfeatures.Finally, Section7 describestheresultsof sometestsandfuturedevelopmentdirections.

NUSMV is availableat theurl “http://sra.itc.it/tools/nusmv ”.1Thematerialpresentedin thispaperis self-contained.Thispaperis readablewith ordinaryefforts for someonewith somebackgroundin formal

methods.

1

B C

A

A

C

CC

B

A

Figure1: A StateTransitionGraphandits unwinding.

2 Symbolic Model Checking

Themostwidely usedverificationtechniquesaretestingandsimulation. In thecaseof complex, asynchronoussys-tems,however, thesetechniquescancoveronly a limited portionof possiblebehaviors. A complementaryverificationtechniqueis TemporalLogic Model Checking[23, 28, 51]. In thisapproach,theverifiedsystemis modeledasafinitestatetransitionsystem,andthespecificationsareexpressedin a propositionaltemporallogic. Then,by exhaustivelyexploring the statespaceof the statetransitionsystem,it is possibleto checkautomaticallyif the specificationsaresatisfied.Theterminationof modelcheckingis guaranteedby thefinitenessof themodel.Oneof themostimportantfeaturesof modelcheckingis that,whena specificationis foundnot to hold, a counterexample(i.e., a witnessof theoffendingbehavior of thesystem)is produced.

2.1 Temporal Logic

A finite statesystemcanbedescribedasa tuple:

��� ���� ��� ��� ���where

�is a finite setof states,

�����is thesetof initial states,and

���������is thetransitionrelation,specifying

thepossibletransitionsfrom stateto state.�

is a functionthatlabelsstateswith theatomicpropositionsfrom a givenlanguage.Sucha tupleis calledstatetransitiongraphor Kripke structure [44].

Temporallogics areusedto predicateover the behavior definedby Kripke structures.A behavior in a Kripkestructureis obtainedstartingfrom a state �� � , and then repeatedlyappendingstatesreachablethrough

�. We

requirethat thetransitionrelation�

betotal.2 As a consequenceall thebehaviors of thesystemareinfinite. Sinceastatecanhavemorethanonesuccessor, thestructurecanbethoughtof asunwindinginto aninfinite tree,representingall thepossibleexecutionsof thesystemstartingfrom theinitial states.Figure1 showsa statetransitiongraphanditsunwindingfrom thestatelabeledwith “A”.

Two usefultemporallogicsareComputationTreeLogic (calledCTL) andLinear Temporal Logic (calledLTL).They differ in how they handlebranchingin theunderlyingcomputationtree.In CTL temporaloperatorsit is possibleto quantify over the pathsdepartingfrom a given state. In LTL operatorsareintendedto describepropertiesof allpossiblecomputationpaths.

Thesyntaxof CTL formulasis givenby thefollowing rules:

1. any atomicpropositionis a CTL formula;

2. if ! and " are CTL formulas, then !�#�" and $%! are CTL formulas,where # is any booleanconnective( & � '�� ( ( ( );

3. if ! and " areCTL formulas,then )�*+! , )-,�! , )/. !102"43 areCTL formulas.

Figure2 describesthe intuitive meaningof CTL formulas. )-*+! meansthat thereexists ( )-5 a pathstartingfrom astate� 6� � in which in thenext ( * ) state! holds. )�,+! meansthat thereexistsa pathstartingfrom a state� 6 inwhich globally ( , ) ! holds. )�. !40+"73 thereexistsa pathstartingfrom a state� 6 in which ! holdsuntil ( 0 ) " holds.TheotherCTL operators(e.g., 8+9:! , meaningfor all pathseventually ! ) canbederivedfrom thesethreeaccordingto theruleslistedin Table1.

2

;+<�=?>A@1B-<�C @1=1DFor all paths,in thenext state

=B-E:=?>AB�F G�H�=7IThereexistsa pathin which eventually

=;+J�=?>A@1B-E-C @1=1DInvariantly

=;�F =4H+K7I4>A@%B�F @4K1H+@%=+L�@1K7I L�@%B-J�@4KFor all paths,

=untilK;+E�=?>A;�F G-H+=4I

For all paths,eventually=

Table1: Definition of CTL operators.

B-<�M B�J�M B%MNH�Os0

ps0

p

p

p

s0

p

p

q

Figure2: Themeaningof temporalmodalities.

Thesyntaxof LTL formulasis thefollowing:

1. any atomicpropositionis anLTL formula;

2. if=

andK

areLTL formulas,then=�P K

and@%=

areLTL formulas,whereP

is any booleanconnective(L�Q R�Q S S S

);

3. if=

andK

areLTL formulas,then<+=

,J�=

,F =4H+K7I

areLTL formulas.

Themodelcheckingproblemcanbeformally formulatedasfollows. Givena Kripke structureT anda temporallogic formula U , find thesetof all statesthatsatisfy U , namelythesetof statesV W�X+Y�Z T Q W/Z > U%[ (1)

We saythatthesystemsatisfiesthespecificationprovidedthatall theinitial statesarein thesetV W�X+Y�Z T Q W/Z > U%[ :

\�] V W-X+Y�Z T Q W/Z > U%[ (2)

EachCTL formula U is identifiedby thesetof stateswhereit holds,V W�X�Y-Z T Q W2Z > U%[ . CTL operatorsmaybe

characterizedasa leastor agreatestfixpoint of anappropriatepredicatetransformer[12]:P�B-J+=^>�_N` a1b�F =+L�B�<�c:IP�B�F =4H+K7I4>�d ` a%b�F K+R?C =+L�B�<�c�D I

Thissuggestsanalgorithmfor symbolicmodelcheckingwhich is drivenby thestructureof theformula.For example,thecomputationof

B�F =4H+K7I4>Ad ` a1b�F K+R?C =+L�B-<+c�D Icorrespondsto thefollowing iterations:W e >�f

W g >�K+R�C =�L+B-<ih jk l m nfoD%>�KW p >�K+R�C =�L+B-< h qk l m nKrDW s >�K+R�C =�L+B-< h tk l m nC K+R?C =+L�B�<2K1D D DS S S

IterationscontinueuntilW u v1g > W u

. Theexistenceof leastandgreatestfixpoints is guaranteedby themonotonicityofthepredicatetransformersandby thefinitenessof thedomain[12].

2A transitionrelation w�x+y2z-y is total if andonly if for eachstate{%|�} thereexistsastate{ ~ |�} suchthat � { � { ~ �N|�w .

3

2 b2

b1

a2

a1

a2

0

b

1

Figure3: A BDD for theformula“(a1 if f a2)and(b1 iff b2)”.

2.2 Symbolic Representationof Kripk eStructures

The first model checkingalgorithmsusedan explicit representationof the Kripke structureas a labeled,directedgraph[23, 28, 51].3A majorimprovementwasachievedwith theuseof symbolicrepresentations[29, 49, 59, 12, 47],basedon theuseof OrderedBinary DecisionDiagrams[7, 8] (BDDs for short).BDDsarea representationfor booleanformulas,which is canonicaloncean orderon the variableshasbeenestablished.Figure3 depictsthe BDDfor thebooleanformula � � �?��� � �%�A� � �?��� � � , using the variableordering � � � � � � � � � � � . Solid lines represent“then”arcs(thecorrespondingvariablehasto beconsideredpositive),dashedlinesrepresent“else” arcs(thecorrespondingvariablehasto be considerednegative). Pathsfrom the root to the nodelabeledwith “1” representthe satisfyingassignmentsof the representedbooleanformula (e.g., � ����� � � �?��� � � ����� � � �?��� ). Intuitively, a stateofthe systemis symbolicallyrepresentedby an assignmentof booleanvaluesto thesetof statevariables.4 A booleanformula (andthusits BDD) is a compactrepresentationof thesetof thestatesrepresentedby theassignmentswhichmaketheformulatrue.Similarly, thetransitionrelationcanbeexpressedasabooleanformulain two setsof variables,onerelative to thecurrentstateandtheotherrelative to thenext state.

Thismakesit possibleto representpredicatetransformersandfixpointsasBDDs. Thebasicbooleanoperationsarehandledby meansof standardalgorithmsfor computingbooleanconnectiveswith BDDs[7, 8], andfix-point algorithmscanbeeasilyimplementedin termsof basicBDDoperations[12, 47].

The basiccomputationstepin the previously describedpredicatetransformersis the computationof the statessatisfying ���+� . Let ��� � � be a booleanformula on the booleanvariables� , where � is a vectorof booleanstatevariables,representingthesetof statessatisfying� . Thesetof statessatisfying���+� canbecomputedas:

� �-�+�4� � � �%�A� � � � � ��� � � � � � � � � �+��� � � � � � �Wherewith ��� � � � � � � � � wemeanthesimultaneoussubstitutionin �%� � � of variables� with thecorrespondingvariables� � . This operation,calledRelationalProduct[47], is performedasanatomicoperationon BDDs.

The set � �^�� �¡1¢r� ��¡ ��£%¤ canbe computedusingbasicBDDs operationsplus fixpoint characterizationofthe CTL operators.Formally, thecheckwhich determineswhetherthemodelverifiesa property £ (seeEquation2)reducesto thefollowing checkbetweenBDDs: ¥ £��2¦^��§2.3 Fields of Application

Theuseof BDDs(i.e. theimplicit representationof thetransitionsystem)makesit possibleto verify very largesystems(larger than � � � ¨ states[12, 47, 11]). Symbolicmodelcheckinghasbeensuccessfulin variousfields, allowing thediscoveryof designbugsthatwereverydifficult to highlightwith traditionaltechniques.Someof themostsignificantresultsaregivenbelow (anextensivediscussionof theapplicationsof symbolicmodelcheckingcanbefoundin [27]):

3This is almosttrue.However, theveryfirst implementationof theCESAR tool wasasymbolicmodelchecker. See[52] for moredetails.4For nonbooleanstatevariablesabooleanencodingcanbeperformed.

4

© in [22] theauthorsappliedthis techniqueto verify thecachecoherenceprotocoldescribedin theIEEE Future-bus+Standard896.1.1991.They founda numberof previouslyundetectedandpotentialerrorsin thedesignoftheprotocol.

© in [47, 46] the authorsverified the cacheconsistency protocoldevelopedat EncoreComputeCorporationfortheirGigamaxdistributedmultiprocessor.

© in [31] thecachecoherenceprotocolof theScalableCoherentInterface,IEEEStandard1596-1992wasverified,andseveralerrorswerefound.

© in [1] the authorsverified part of a preliminaryversionof the systemrequirementspecificationsof TCAS II(Traffic Alert andCollision AvoidanceSystemII). TCAS II is an aircraft collision avoidancesystemrequiredonmostcommercialaircraft in UnitedStates.

© in [18, 39] modelcheckingtechniquesareusedin theverificationof a railway interlockingsystem.

3 NUSM V: Look and Feel

3.1 The SMV specificationlanguage

The currentNUSMV input language[19] is essentiallythe sameasthe CMU SMV input language[47, 26]. TheNUSMV input languageis designedto allow for thedescriptionof finite statesystems.Theonly datatypesprovidedby thelanguagearebooleans,boundedintegersubranges,andsymbolicenumeratedtypes.Moreover, NUSMV allowsfor thedefinitionsof boundedarraysof basicdatatypes.

Thedescriptionof acomplex systemcanbedecomposedinto modules,andeachof themcanbeinstantiatedmanytimes. This providesthe userwith a modularandhierarchicaldescription,andsupportsthe definition of reusablecomponents.Eachmoduledefinesa finite statemachine.Modulescanbe composedeithersynchronouslyor asyn-chronouslyusinginterleaving. In synchronouscompositiona singlestepin thecompositioncorrespondsto a singlestepin eachof the components.In asynchronouscompositionwith interleaving a single stepof the compositioncorrespondsto a singlestepperformedby exactly onecomponent.The NUSMV input languageallows to describedeterministicandnondeterministicsystems.

A NUSMV programcandescribeboththemodelandthespecification.Figure4 givesa smallexampleof a NU-SMV program. The examplein Figure4 is a modelof a 3 bit binary countercircuit. It illustratesthe definition ofreusablemodulesandexpressions.

The modulecounter cell is instantiatedthree times, with namesbit0 , bit1 and bit2 . The modulecounter cell hasa formal parametercarry in . In theinstantiationof themodule,actualsignals(1 for the in-stancebit0 , bit0.carry out for theinstancebit1 andbit1.carry out for theinstancebit2 ) arepluggedin for theformal parameters,thuslinking themoduleinstanceto theprogram(a modulecanbeseenasa subroutine).Thepropertythatwewantto checkis “invariantlyeventuallythecountercounttill 8” whichis expressedin CTL usingthedesignstatevariablesas“AG AF bit2.carry out ”.

It is alsopossibleto specifythetransitionrelationandthesetof initial statesof amoduleby meansof propositionalformulas,usingthekeywordsTRANS, andINIT respectively. Thisprovidestheuserwith alot of freedomin designingsystems.In Figure5 thereis anequivalentdefinitionof modulecounter cell usingpropositionalformulas.

With respectto CMU SMV, the input languageof NUSMV hasbeenextendedto allow for thespecificationofpropertiesexpressedin LTL andthespecificationsof invariants[19].

3.2 The interaction with NUSM V

NUSMV hasboth a batchandan interactive mode. The batchmodeoffers a built-in methodfor dealingwith thesystemin which computationsareactivatedaccordingto a fixedpredefinedalgorithm. Thebatchmodeprovidesaninteractionwith thesystemthatis essentiallythesameprovidedby CMU SMV.In the interactive modecomputationstepsareactivatedby commandsexecutedby a commandline interpreter, thusallowing for the modificationof the predefinedmodel checkingalgorithm. The definition of the interactive shellrequiredthedecompositionof themodelcheckingalgorithminto smallbasiccomputationsteps(e.g.,parsing,model

5

MODULEmainVAR

bit0 : counter cell(1);bit1 : counter cell(bit0.carry out);bit2 : counter cell(bit1.carry out);

SPECAG AF bit2.carry out

MODULEcounter cell(carry in)VAR

value : boolean;ASSIGN

init(value) := 0;next(value) := value + carry in mod 2;

DEFINEcarry out := value & carry in;

Figure4: A simpleNuSMV program.

MODULEcounter cell(carry in)VAR

value : boolean;INIT

value = 0TRANS

next(value) <-> ((!value & carry in) | ( value & !carry in))DEFINE

carry out := value & carry in;

Figure5: An equivalentdefinitionof modulecounter cell of theexampledescribedin Figure4.

6

construction,reachabilityanalysis,modelchecking).In thecurrentversionof thesystem,eachof themcorrespondsto a commandthatimplementsadifferentfunctionality.

The threemodesof interactionwith the NUSMV system,namely, the interactive shell, the batchmodeandthegraphicaluserinterfacearedescribedbelow.

3.2.1 The NUSM V interactiveshell

In thismodethesystementersa read-eval-print loop. TheusercanactivatethevariousNUSMV computationstepsassystemcommandswith differentoptions.Thesestepscanthereforebeinvokedseparately, possiblyundoneor repeated.Thesestepsincludetheconstructionof themodelin differentwaysandthemodelcheckingof specifications.

TheNUSMV interactiveshellallowsfor thefull configurationof theBDDoptions.For instance,severalautomaticvariableorderingmethodsandcacheconfigurationmechanismscanbesuitablytunedaccordingto theapplication.

Moreover, the NUSMV interactive shellprovidestheuserwith a script languagethatmakesit possibleto definedifferentmodelcheckingalgorithmsthatcanbeinvokedasmodelcheckingtactics.Thesealgorithmsareprovidedviaparameterizedscripts.

Theinteractiveshellof NUSMV is activatedfrom thesystempromptasfollows(“NuSMV>” is thedefaultpromptthatNUSMV printsout to indicatethatit is readyto evaluatecommands):

system_prompt> NuSMV -intNuSMV release 1.0 (compiled 11-Nov-98 at 8:28 PM)NuSMV >

In Figure 6 we can seea typical interactionwith NUSMV throughthe interactive shell.5 The file “counter.smv”containstheexampledepictedin Figure4. Theverificationprocessin NUSMV canbedecomposedinto thefollowingsequenceof basicsteps.

1. The first steptowardsverificationis readingthe model. This is performedby typing the NUSMV commandread model . This commandtakesasargumenta file namecontainingthe modelspecification. After thecorrectexecutionof thiscommandaninternalrepresentationof thereadfile is built andstored.

2. The secondstepconsistsin transformingthe hierarchicaldescriptioninto a flatteneddescription.This is per-formedby typing thecommandflatten hierarchy . After thecorrectexecutionof this commandall theinformationneededto build the automatonis separatedout (e.g., the variablenames,their range,a symbolicrepresentationof theinitial statesandof thetransitionrelationof theflattenedsystem).

3. Thethird stepconsistsin theencodingof thescalarvariablesinto booleanvariables. The NUSMV commandbuild variables is responsiblefor this task. It takesan optionalargumentspecifyinga file containingthe orderingin which the variableshave to be built.6 As a default, the orderof variablesusedby NUSMVcorrespondsto theorderin which thevariablesappearin a depthfirst traversalof thehierarchy[19].

4. The fourth stepconsistsof the compilationof the structuresbuilt by the flatten hierarchy into BDDsusingtheencodingperformedby build variables . During thisstepsomechecksareperformedthatavoidcircular dependenciesin assignmentsandmultiple definitions[19]. The NUSMV commandthat implementsthis stepis build model . This commandhasan option specifyingthe partitioningmethodto be used,i.e.monolithic, conjunctive, or disjunctive (seeSection4). It is possibleto build first the transitionrelation indifferentformatsandthenchoosethemostappropriateto thespecificproblem.

5. Thefifth stepdealswith thefairnessconstraints[12]. This commandcanbeexecutedonly whenall theprevi-ouscommandshave beenexecuted.This is dueto the fact that fairnessconstraintsareCTL formulaswhoseevaluationusesapreviouslycomputedtransitionrelation.

After thesefivesteps,theinternalrepresentationof theautomatonis availableto performmodelchecking.5Theoutputwasslightly modifiedto make it morereadable.6Thisfile canbegeneratedby handby theuseror automaticallyby activating theautomaticvariableorderingto reducethesizeof theBDDsand

saving theresultswith thewrite order command.

7

system prompt > NuSMV -intNuSMV release 1.0 (compiled 11-Nov-98 at 8:28 PM)

1) NuSMV > read model -i counter.smv2) NuSMV > flatten hierarchy3) NuSMV > build variables

Building variables.....bit0.value:

BDD variable 1, next BDD variable 2bit1.value:

BDD variable 3, next BDD variable 4bit2.value:

BDD variable 5, next BDD variable 64) NuSMV > build model

checking for multiple assignments...checking for circular assignments...evaluating INIT statements...evaluating init() assignments...

evaluating value:size of value = 3 ADD nodesevaluating value:size of value = 3 ADD nodesevaluating value:size of value = 3 ADD nodes

size of global initial set = 1 states, 5 ADD nodesevaluating TRANS statements...evaluating next() assignments...

evaluating next(value):size of next(value) = 5 ADD nodesevaluating next(value):

evaluating bit0.carry out:size of bit0.carry out = 3 ADD nodes

size of next(value) = 7 ADD nodesevaluating next(value):

evaluating bit1.carry out:size of bit1.carry out = 4 ADD nodes

size of next(value) = 8 ADD nodessize of transition relation = 14 BDD nodesevaluating normal assignments...evaluating INVAR statements...size of invariant set = 8 states, 1 BDD nodesThe model has been built from file counter.smv.

5) NuSMV > compute fairness6) NuSMV > compute reachable

Starting computation of reachable states....iteration 0: BDD size = 4, frontier size = 4, states = 1new frontier computed, size = 4......iteration 7: BDD size = 1, frontier size = 4, states = 8new frontier computed, size = 1done.

7) NuSMV > check spec-- specification AG AF bit2.carry out is true

7) NuSMV > check spec AG AX bit2.carry out-- specification AG AX bit2.carry out is false-- as demonstrated by the following execution sequencestate 3.1:bit0.carry out = 0bit0.value = 0bit1.carry out = 0bit1.value = 0bit2.carry out = 0bit2.value = 0

state 3.2:bit0.carry out = 1bit0.value = 1NuSMV >

Figure6: A typical interactionwith NuSMV via theinteractiveshell.NuSMV commandsarein boldface.8

6. It is possibleto computethesetof reachablestates,via thecompute reachable command.Thisallows theuserto simplify theevaluationof all thespecificationsby restrictingthesearchonly to reachablestates.

7. It is possibleto start the verificationof CTL specifications(via the check spec command),of LTL spec-ifications (via the check ltlspec command),and of invariants(via the check invar command). Allthesecommands,if calledwith no arguments,apply to the specificationsof the respective type, if any, listedin thesourcefile. Optionallya CTL, LTL or propositionalformulacanbegivenasanargument.In the tran-script of Figure 6 first we checkthe propertyAG AF bit2.carry out (the executionof check specwithout arguments,thusverifying the propertieslisted in the input file). Thenwe checkthe propertyAG AXbit2.carry out (invariantly in the next statebit2.carry out is 1). This propertyappearto be falseanda counterexampleexploiting why theformulais not verifiedis computedandprintedout.

3.2.2 The NUSM V batch mode

In thismodalitythesystembehavesmostlyliketheoriginalCMU SMV. It performssomeof thestepsdescribedprevi-ouslyin afixedsequence.Thesequencecanbemodifiedvia commandline optionsthatenabledifferentcomputationsat fixedpositions.

In thebatchmodethesystemexecutesthefirst five stepspreviously described.Thecomputationof thereachablestatescanbe enabledbeforethe computationof fairnessconstraintsvia the “ -f ” commandline options. After thefirst five steps,the systemlooks for specificationsin the sourcefile, following the verification of CTL formulas,quantitative characteristics,LTL formulasandfinally the invariants,if any. If the reorderingof variableshasbeenenabledvia the-reorder commandline optionat theendof thecomputation,thereorderingof variablesstartsandthegeneratedorderingis savedinto afile.

3.2.3 The NUSM V graphical user interface

On top of the interactive shell a graphicaluserinterface(GUI from now on) wasdeveloped.The GUI is a separateprocessandcommunicateswith NUSMV via theinteractiveshell.FromtheGUI it is possibleto editandto modify thefile containingthemodeldescription.Theeditorwindow providestheuserwith basicediting functionalities,suchascopy andpasteof blocksof text. Figure7 givesa snapshotof theeditor window. The NUSMV GUI allows for the modificationof the optionsin a menudrivenway. A snapshotofthe window for settingsystemoptionsis the small window in Figure9. Moreover, the GUI offers a formula editorthathelpstheuserin writing new specifications(seeFigure8). Dependingon thekind of formula to verify, variousbuttonscorrespondingto temporalmodalitiesand/orbooleanconnectivesareactivated. For instancein Figure8 aCTL specificationwaschosen(theradio-buttonrelativeto CTL formulasis selected),andall thebooleanconnectivesandtheCTL operatorbuttonsareactive.

4 SystemFunctionalities

The functionalitiesprovided by NUSMV are describedbelow. They are groupedin standard,advancedand userfunctionalities.

4.1 Standard Functionalities

NUSMV offersall thestandardmodelcheckingfunctionalities.A brief summaryis reportedbelow.

Encoding. In generalit is very usefulto representsystemsusingenumeratedtypes.As symbolicalgorithmsworkon booleanvariables,thereis the needto encodepropositionsaboutnon-booleanvariablesin the spaceof booleanvariables.Therearedifferentwaysto performthis task.At themomentNUSMV providestheencodingusedin CMUSMV, which representsa finite rangevariablewith a sequenceof booleanvariables.Considera statevariableª « thatcanassumethevalues¬ ­N® ¯7® ° ® ±N® ² ³ . Thepropositionsonthepossiblevaluesof ª « canbeencodedwith threebooleanvariablesª « ´ , ª «Nµ and ª « ¶ , asshown in Table2.

9

Figure7: TheNuSMV GUI editorwindow.

Figure8: TheNuSMV GUI formulaeditorwindow.

10

Figure9: TheNuSMV GUI andtheoptionssettingwindow.

SymbolicValue BooleanEncoding· ¸2¹Aº · ¸ »�¹A¼�½�· ¸N¾%¹A¼�½�· ¸ ¿:¹�¼· ¸2¹�À · ¸ »�¹ÂÁ%½�· ¸N¾%¹A÷ ¸2¹�Ä · ¸ »�¹AÃ:½�· ¸N¾%¹ÂÁ· ¸2¹AÅ · ¸ »�¹ÂÁ%½�· ¸N¾%¹ÂÁ· ¸2¹AÆ · ¸ »�¹AÃ:½�· ¸N¾%¹AÃ:½�· ¸ ¿�¹ÂÁ

Table2: Theencodingof a variable“st” thatcanassumethevalues“a”, “b”, “c”, “d” and“e”.

11

Noticethat thevalueassignedto thebooleanvariable Ç È É , in thecaseof Ç È�Ê�Ë Ì7Í Î Í Ï Ð , is indifferent,andit canbe either Ñ or Ò .7 The booleanvariablesusedto encodea scalarvariablearegroupedtogether, andareconsideredasa singleblock of variablesin the BDDpackage.Otherencodingpoliciescanbe moreappropriatefor variablesof differentkind. For example,word level encodingsareuseful for the analysisof datapaths[25]. Moreover, theconstraintof groupingthebooleanvariablestogethercanberelaxed.Someof thesepolicieswill becodifiedin furtherreleasesof NUSMV.

Reachability Analysis. NUSMV, (similarly to CMU SMV), offersanenhancedalgorithmfor reachabilityanalysis.Thestandardway to performthecomputationof thereachablestatesÓ+Ô Õ Ö ×1Õ Ø1Ù ÔNÚ Û1Ü , startingfrom the initial statesÛ , is: Ó+Ô Õ Ö ×4Õ Ø%Ù ÔNÚ Û%Ü�ÝAÞ�ß Ú à Üwhereá is theminimumintegersuchthat Þ�ß Ú à Ü%ÝAÞ-ß â4ã Ú à Ü , and Þ-ß Ú à Ü is recursively definedas:

Þ�ä Ú à ÜåÝæÛÞ-ß â4ã Ú à ÜçÝèÚ é à ê Ú Þ�ß Ú à Ü7ë+ì/Ú à Í à í Ü Ü Ü î à ï à í ð ñ�Þ-ß Ú à Üà is thevectorof statevariables,ì�Ú ò Í ò Ü is thetransitionrelationand Þ�ß Ú à Ü is thesetof statesreachedin á or fewersteps.Thecomputationof thestatesreachablein á�ó�ô stepscanbeperformedby consideringonly thefrontierset õ4ß Ú à Ü%ÝÞ�ß Ú à Ü7ë Þ�ß ö4ã Ú à Ü 8: Þ�ß â1ã Ú à ÜçÝ÷Ú é à ê Ú õ1ß Ú à Ü4ë+ì�Ú à Í à í Ü Ü Ü î à ï à í ð ñ�Þ�ß Ú à ÜWe areplanningto introducenew optimizationsto thecomputationof the setof reachablestates,suchasthe useofdon’t caresets.Thesetof reachablestatescanbeusedto simplify thefollowing modelcheckingcomputations.

Fair CTL model checking. NUSMV, similarly to CMU SMV, usesthealgorithmspresentedin [12] asthebasisfor fair CTL model checking. Thesealgorithmsare essentiallybasedon a fix-point characterizationof temporalmodalitiesandthey work quitewell in practice. If the setof reachablestateshasalreadybeencomputed,the setofreachablestatesis usedin the evaluationof CTL formulas. This allows us to restrict the searchto reachablestatesonly.

Check for Transition Relation Totality. In NUSMV it is possibleto checkthe totality of the transitionrelation.Thecheckis performedby meansof basicmodelcheckingoperations:

ì�Ú ò Í ò Ü is total if andonly if ø-ù�Ú ú�Ü�Ý�ûThis functionalityis veryusefulif thekeywordsTRANSor INVAR9 areusedto specifythetransitionrelation.In thesecasesit is in factpossibleto introducedeadlockstates.

CounterexamplesGeneration. Oneof themostimportantfunctionalitiesof symbolicmodelcheckingis theabilityto generatea counterexamplefor unsatisfiedproperties.The algorithmsusedin NUSMV asa basisto performthecomputationof counterexamplesarethesameasthoseimplementedin CMU SMV andarethosepresentedin [24].

4.2 AdvancedFunctionalities

NUSMV providesadvancedmodelcheckingfunctionalities,including specializedalgorithmsfor the verificationofinvariants,andheuristicsaimingat thereductionof thestateexplosionproblem.In thefollowing thesefunctionalitiesarebriefly explained.

7Thishastheeffect thatfor examplestheBDDrepresentingtheencodingof ü ý%þ�ÿ is only in termsof thebooleanvariablesü ý � and ü ý � .8If�

is aset,thenwith�

wemeanthecomplementset.9INVAR specifiestime invariantsusingpropositionalformulas.

12

Bounded CTL . NUSMV allows expressingspecificationsin real-timeCTL (RTCTL) [33]. For example,it ispossibleto expressthat � alwaysleadsto � in � to � timeunitswith theRTCTL specification10:��� ��� � �� � � � ���It is assumedthata time unit correspondsto astep.This functionalityis thesameasin CMU SMV.

Invariant checking. An importantclassof CTL formulasis invariants, i.e., formulasof theform�� � , where� is

propositionalformula.Thesemanticsof thiskind of formulasis that � is truein all reachablestates.Thecomputationof this kind of formulasis basedon afix-point characterization[12]:�� ������� ����� �� �� ��!This approachis not very direct, and can be quite inefficient. If the set of reachablestateshasbeenpreviouslycomputed,thenaninvariantcanbesimplycheckedby performingatestof setinclusionbetweenthestatesrepresentedby � andthesetof reachablestates: "# $ % &�$ '�( # ) �+*��NUSMV offersthepossibilityof checkinginvariantsusingeitherthisor thestandardmodelcheckingtechnique.Thesefunctionalitiesarethesameasin CMU SMV. Moreover NUSMV, w.r.t. CMU SMV, hasa specializedroutineforcheckinginvariantson thefly. This is performedby verifying at eachstep , of thereachabilityanalysisthefollowingcondition: -/. 0 ��*��where

-1. 0 � is thesetof statesreachablein , or fewersteps.If this testfails, thentheinvariantis not verified,andacounterexampleleadingto a statenot satisfyingthepropertyis provided.

Quantitati ve characteristics computation. In NUSMV it is possibleto computequantitative informationon theKripke structure[14, 15]. In particular, it is possibleto computetheexactboundon thedelaybetweentwo specifiedevents,expressedasCTL formulas:

MIN � ��2 � ! MAX � �32 � !TheMIN � �32 � ! computesthesetof statesreachablefrom � . Whena statesatisfying� is encountered,we returnthenumberof stepstaken so far. If a fixed point is reachedandno statesatisfying � is found, then infinity is returned.MAX � ��2 � ! hasthedual interpretation,andreturnsthe lengthof the longestpathfrom a statein � to a statein � . Ifthereexists an infinite pathbeginning in a statein � that never reachesa statein � , then infinity is returned. Thisfunctionalityis thesameasin CMU SMV.

LTL model checking. LTL is importantbecauseit allows us to expressproperties,suchasfairness,11 which arenot expressiblein CTL. Furthermore,LTL canbeusefulto performselectiveanalysis,namelyto specifythepathsofinterest.

NUSMV supportsLTL modelcheckingimplementingthealgorithmpresentedin [32]. An LTL formulais auto-maticallyconvertedinto a tableau[45], which is thenusedto extendtheoriginal modelin synchronousproduct.Theresultis providedby checkingthevalidity of anautomaticallygeneratedCTL formulafrom theLTL specificationintheextendedmodel.

Thelooseintegrationpresentedin [32] allowsfor theuseof CMU SMV asablackboxby generatinganew inputfile containingboththeoriginal descriptionof thesystemandthecodeimplementingthetableau.However, for eachLTL formula to beverified theverificationprocesshasto berestartedfrom scratch,startingfrom theparsingof thenewly generatedinput file. In NUSMV thetableaugenerationis tightly integrated.If morethanoneLTL propertyisspecified,only thegenerationof thecorrespondingtableauis required,thusavoiding,eachtime, thegenerationof thewholemodel. Thegeneratedtableauis parsedin, compiledinto BDDandsynchronouslycomposedwith theoriginalmodel.12

10In theNUSMV input languagethis specificationis written asSPEC AG(alpha -> ABF 0..4 beta)11A typical fairnesspropertyis “if aprocessis infinitely oftenexecutablethenit is infinitely oftenexecuted”,thatcorrespondsto theLTL formula:

“ 415�6 798 : ; : < = > ? @ A : B�CD415E6 7�8 : ; : < = > : F B ”.12Othermodelcheckers[6, 41] areableto performLTL modelchecking.In VIS [6], for example,it is possibleto performLTL modelchecking

by usingthe languageemptinessfeature[60], but theuserhasto write by handthe automatonrepresentingtheacceptanceconditionof the LTLformula,andfor eachformulaadifferentinputfile hasto begeneratedandthecomputationmustrestartfrom scratch.

13

Partitioning of the model. Oneof themostimportantoperationsin modelcheckingis therelationalproduct:G H I J K+J H L9MNOJ H P H Q L Lwhich computesthe setof statesreachablefrom

K+J H Lthroughthe transitionrelation

NOJ R P R L. This operationcanbe

performedasa singlestepby mostBDDpackages.Althoughit worksquitewell in practice,this operationhasworstcaseexponentialcomplexity [47]. Thetransitionrelationis saidto bemonolithic, asit consistsof a singleBDD.

In many practicalcases,building theBDDforNOJ R P R L

maynotbefeasible.In many cases,however, it is possibletoexploit thestructureof thesystemandbuild the transitionrelationasa list of smallBDDs, calledclusters,which areimplicitly disjoined(e.g.,with anasynchronousmodelof concurrency) or conjoined(e.g.,with synchronoussystems)[9, 10, 11]. NOJ R P R L3SUT VWN V J R P R L

disjunctive

NOJ R P R L3SUX VWN V J R P R Lconjunctive

In both casesthe monolithic relationalproduct is reducedto a sequenceof disjunctively/conjunctively composedrelationalproductson theclusters.

With a disjunctively partitionedtransitionrelation,therelationalproductcanbecomputedasfollows:

G H I J K+J H LEMNOJ H P H Q L L�SYG H I J K+J H LEM T VZN V J H P H Q L L�ST VG H I J K+J H LEMWN V J H P H Q L L

In thiswaytherelationalproductcanbecomputedwithouteverbuilding theBDDfor themonolithictransitionrelationby distributing theexistentialquantificationover disjunctions.The relationalproductis decomposedinto a seriesofrelationalproductsinvolving relatively smallBDDs.

For synchronoussystems,NUSMV implementstechniquesbasedonearlyvariablequantifications[59, 9, 10]. Thebasicideais to find anorderingof thepartitions

N V J R P R Lsuchthat thequantificationcanbepushedinsidetheformula

asmuchaspossible,thusallowing relationalproductsbetweensmallBDDs andexistentialquantificationon a smallnumberof variables,andthusreducingthecomplexity of thewholeoperation:G H I J K+J H LEMWNZJ H P H Q L L�SYG H I J K+J H L9M [ V N V J H P H Q L L�SG H \ I J G H ] I J I I I J G H ^ _E\ I J G H ^�I J K+J H L9MN ^ J H P H Q L L L MM�N ^ _E\ J H P H Q L L9M�I I IEMN \ J H P H Q L L Lwhere

H Varedisjointsetsof variables,

H Vbeingthesetof variablesthe

N9` J R P R Lwith aWbdc dependson,but

N V J R P R Ldoes

not dependon.NUSMV allowstheuserto performmodelcheckingusingthemonolithictransitionrelationor thedisjunctively or

conjunctively partitionedtransitionrelation. For conjunctivepartitioning,theheuristicsdescribedin [35] andin [53]areavailable.They allow theuserto computetheclustersfor theconjunctively partitionedtransitionrelation.

4.3 UserFunctionalities

Thequalityof interactionwith thesystemisveryimportantin severalphasesof theverificationtask.NUSMV providesvarioususerfunctionalities.In thefollowing thesefunctionalitieswill bebriefly explained.

Counterexamplenavigation. The ability to generatecounterexamplesfor propertiesthat arenot verified is veryusefulin thedesignphaseandis commonto themajorityof modelcheckers.In NUSMV it is alsopossibleto navigateandinspectcounterexamples,similarly to whataprogrammercando in adebuggerfor aprogramminglanguage.Theusercanjump from stateto state,possiblybetweendifferentcounterexamples,andevaluateCTL expressionsin agivenstateof a counterexample,thusgeneratinga possiblenew debug trace. Thesefunctionalitiesareavailableviacommandsof theinteractiveshell.

14

CTL M. C.COMPUTEINVARREACHABILITY

INTERACTION SHELL

Syncronous

Asyncronous

* No heuristic* IWLS95 heuristic

- Monolithic- Conjunctive

- Monolithic- Disjunctive

CHECKINGSEMANTIC

PARSER

LTL

EXPLAIN

FAIRNESS

GRAPHICAL USER INTERFACE

MEMORY MANAGER

A-LISTS S-EXPRS

CUDD Package

DECISION DIAGRAMS

FSM COMPILER

INSTANTIATION

KERNEL

ENCODER

Figure10: TheNuSMV systemarchitecture

On the fly modification of the model. Theusermight want to try to modify themodel(e.gto try to fix a bug) oraddnew fairnessconstraintswithout restartingthecomputationfrom scratch.In NUSMV thiscanbedoneusingshellcommandsthatallow theuserto modify interactively themodel. Theusercanimposea new constrainton thesetofinitial states,the setof invariantstatesor on the transitionrelation. Let e be the setof initial states,f g h the setofinvariants,iOj k l k m thetransitionrelationand n thesetof fairnessconstraints.Thenthemodificationsactasfollows:

edo pderqWe�s f g�hWo pYf g�h+qrf g�h siZj k l k m+o p�iZj k l k m9qiEs j k l k m nto p�nvu w x s ywhere e9s , f g h s are the addedset of initial statesand invariantstatesrespectively. i9s j k l k m is the addedtransitionrelation and x s is the new fairnessconstraint. Moreover, NUSMV allows the userto undo the modificationsandrestoretheoriginal statusof thesystem.This is usefulin casetheuserwantsto try furthermodifications.

Help on line. NUSMV featuresanon-linehelpfunctionality. Eachcommandprovidedby theinteractiveshellhasashorthelpnotedescribingbriefly its options.Moreover, a completedescriptionof eachcommandis availablevia theNUSMV interactiveshell in text formatand,via awebbrowser, in HTML format.

5 SystemAr chitecture

Oneof themostimportantfeaturesof NUSMV is that it is anopensystem,andcanbeeasilymodified,customizedor extended.13 This is possiblebecausethe architectureof NUSMV is structuredandorganizedin modules.Eachmoduleimplementsa setof functionalitiesandcommunicateswith the othersvia a preciselydefinedinterface. Aschemaof thesystemarchitecturecanbefoundin Figure10. Themodulesimplementingreductiontechniquesweredesignedto work directly on theBDDrepresentation,thusimplementingtheir functionalitiesindependentlyfrom the

13A similarphilosophyof developinganopenplatformis advocatedby theauthorsof theCADPtool-box[34].

15

input languageusedto describethesystem.This providesa cleardistinctionbetweenthesystemback-endandfront-end. This clear distinction makes NUSMV openand usablein differentfields, simply replacingor removing themodulesspecificof thekind of input. Section7.2describesanexampleof extensionof NUSMV.

Thevariousmodulesof thearchitectureandtheprovidedfunctionalitiesaredescribedbelow.

Parser. This moduleprovidesall theparsingroutines,which processa file written in NUSMV language,checkitssyntacticcorrectness,andbuild aparsetreerepresentingtheinternalformatof theinputfile. Thesameparsingroutinesareusedto implementcommandsfor theinteractionshell,suchasthespecificationatcommandline of new propertiesto beverified.

Instantiation. Thismoduleprocessestheparsetree,andperformstheinstantiationof thedeclaredmodules,buildinga descriptionof thefinite statemachine(FSM) representingthemodel(e.g.,the transitionrelation,the initial states,thefairness).

Encoder. This moduleperformsthe encodingof datatypesandfinite rangesinto booleandomains. Having thismoduleas a separateone makes it possibleto have different encodingpolicies that can be more appropriatefordifferentkinds of variables. Currentlyonly the standardCMU SMV encodingis possible,but thereare planstointegrateinto this architectureotherformsof encoding,e.g.,thoseusedin Word-Level SMV [25].

The semanticcheckmodule. This moduleis responsiblefor all thenecessarysemanticcheckson themodel,e.g.,theabsenceof circulardefinitions[47].

FSM Compiler. This moduleprovidestheroutinesfor constructingandmanipulatingFSMsat theBDDlevel. TheFSMscanberepresentedin monolithicor partitionedform [9, 10, 11]. Theheuristicsusedto performtheconjunctivepartitioningof thetransitionrelationandreorderingof theclusters[35, 53] weredevelopedto work at theBDDlevel,independentlyof theinput language.This is a precisedesignchoice:sinceNUSMV is intendedto beapplicableto awiderangeof domains,for whichthecurrentinput languagemightnotbeappropriate,it is importantthattheheuristicsdo not dependon the input language.Note that for a specializedmodelchecker this might not be a suitablechoice.For instance,sinceVIS [6] is highly specializedfor hardware,its heuristicsweredevelopedto work directly on theBLIF format[56], which is anetlist14. Theinterfaceto othermodulesis givenby theprimitivesfor thecomputationofimageandpre-imageof setof states.Theseprimitivesareindependentfrom themethodusedto representthetransitionrelation(monolithic,conjunctiveor disjunctive).

Fairness. Thismoduledealswith thefairnessconstraints.It providesthemodelcheckingmodulewith theinforma-tion containedin thefairnessconstraints,if any.

Model Checking. This moduleprovidesall the z RT { CTL modelcheckingfunctionalities,suchasreachabilityandmodelcheckingroutines,routinesthat performcomputationof quantitative characteristics,andcheckinvariantsonthefly. All theseroutinesarebasedon the imageandpre-imagecomputationprimitives,andareindependentof theparticularmethodusedto representtheFSM.

Explanation module. The routinesfor counterexamplesandwitnessgenerationandinspection.Counterexamplesandwitnessescan be producedwith different levels of verbosity, in the form of reusabledatastructures,and cansubsequentlybe inspectedandnavigated.Theseroutinesareindependentof theparticularmethodusedto representtheFSM.

14A netlistis a representationof adesignat thestructurallevel. A FSMcanbeviewedasabehavioral descriptionof thedesign.A netlistis muchcloserto the implementationof the designthana simpleFSM. A netlist is essentiallythe datastructureusedby many logic synthesistools ,likeVIS[6], to internallyrepresentdesignsderivedfrom HDL descriptions.

16

LTL module. TheLTL moduleis aseparatemodulethatcallsanexternalprogramthattranslatestheLTL formulainto a tableausuitableto beloadedinto NUSMV. This programalsogeneratesa new CTL formulato beverifiedonthesynchronousproductof theoriginal systemandthegeneratedtableau.This modulewaspluggedin on top of theothermodules(e.g.,theParser, theEncoder, theFSM Compiler, theModel CheckingandtheExplanationmodules),thusreusinga lot of thefunctionalitiesalreadypresentin thearchitecture.

Kernel. The kernelprovidesthe low level functionalitiessuchasdynamicmemoryallocation,andmanipulationof basicdatastructures(e.g.,conscells, hashtables). The kernelalsoprovidesall the basicBDDprimitives,whichareactuallytaken from the CUDD [57] BDDpackage.TheCUDD packageis a very completeBDDpackage,freelyavailableon theweb. It providesall thebasicBDDoperations,plusa seriesof advancedBDDfunctionalities(suchasvariousstateof theartBDDvariablereorderingalgorithms,thepossibilityof groupingtogethervariablesin suchawaythatthereorderingalgorithmstreatsthemasasingleelement,algorithmsto performBDDminimization,approximationanddecompositions,. . . ). TheCUDD packageis integratedin NUSMV with apreciselydefinedinterface.Thismakesit possibleto replacethe CUDD packagewith otherstateof the art BDDpackagesdevelopedin the future, or withcommercialBDDpackages(suchastheTiGeR[30] BDDpackage).TheNUSMV kernelcanbeusedasa blackbox,following codingstandardsthathavebeenpreciselydefined.

Interacti ve shell. Theinteractive shellwasdesignedon top of all theothermodules.Fromtheinteractiveshell theuserhasfull accessto all the functionalitiesprovided by the system. The interactive shell is fully extensible,thusallowing for thedevelopmentof new commands.(For moredetailsseeSection3.2.1.)

Graphical user interface. The graphicaluserinterfaceis a separateprocess,which communicateswith NUSMVby sendingtextualcommandsto theinteractiveshell. It allows theuserto inspectandsetthevalueof theenvironmentvariablesof thesystem,andprovidesfull accessto all thefunctionalities.Figures7, 8 and9 show somesnapshotsofthegraphicalinterfaceof NuSMV. (For moredetailsseeSection3.2.3.)

6 Implementation

NUSMV wasdesignedto berobustandeasyto maintainandto modify. Thefeaturesof theNUSMV implementationarelistedbelow. They aregroupeddependingthedesigntaskthatthey areintendedto accomplish.

Robustness.| NUSMV is written in ANSI C [55] and is POSIX [42] compliant. This makes the systemportableto anycompliantplatform. At the momentthe systemhasbeensuccessfullycompiledon variousoperatingsystemsandplatforms(e.g.,underSunSolarisfor SPARC andIntel X86, underSunOs4.1.X,undervariousversionsoftheLinux operatingsystem).| NUSMV hasbeenthroughlydebuggedwith Purify 15 to detectmemoryleaksandruntimememorycorruptionerrors. Theuseof this tool guaranteesthe eliminationof runtimeproblemsin all partsof the application,andthusthedeliveryof a morereliableandrobustapplication.| Thekernelof NUSMV provideslow level functionalities,suchasdynamicmemoryallocation,independentlyfrom theunderlyingoperatingsystemandhardwareplatform. Moreover, it providesroutinesfor themanipula-tion of basicdatastructuressuchasconscells,hashtables,arraysof generictypes,andencapsulatestheCUDDBDDpackage[57].

Maintainability .| In orderto implementthe architecturedepictedin Section5, the sourcecodeof NUSMV hasbeenseparatedinto differentpackages.At the momentNUSMV is composedof 11 packages.Eachpackageexportsa setof routinesthatmanipulatethedatastructuresdefinedin thepackageandmodify theoptionsassociatedto the

15More informationon this tool canbefoundat theurl “http://www.pureatria.com ”.

17

functionalitiesprovidedby thepackageitself. Moreover, eachpackageis associatedwith asetof commandsthatcanbeinterpretedby theNUSMV interactiveshell. We have packagesfor modelchecking,FSM compilation,BDDinterfacing,LTL modelcheckingandkernelfunctionalities.New packagescanbeaddedrelatively easily,following preciselydefinedrules.} Thesourcecodeof NUSMV is maintainedusingatool for revisioncontrols.WeusetheRCS[58] tool providedby GNU. It automatesthe storing,retrieval, loggingandmerging of revisionsandprovidesa simpleanduserfriendly interface.} In thecoding,wehaveusedanobject-orientedprogrammingstyle,following theideasexploitedby theVIS [6]system.} Thecodeof NUSMV is documentedfollowing thestandardsof theext tool.16 This tool allows for theauto-matic extractionof the programmermanualfrom the sourcecommentsin the systemcode. The programmermanualis availablein TXT or HTML format, in a way that is browsableby an HTML viewer. This tool is alsousedto generatethehelpon line availablethroughtheinteractiveshellandvia thegraphicaluserinterface.} Theusermanualis writtenfollowing thestandardTEXINFO[16]. Thisallowsusto havetheusermanualavailablein differentformats(for instancePOSTSCRIPT, PDF, DVI, INFO, HTML), directly from theNUSMV interactiveshell,via anHTML vieweror in hardcopy.

7 Conclusions

We have presentedthe NUSMV symbolicmodelchecker. The NUSMV architectureprovidesa precisedistinctionfrom theback-end(modelcheckingalgorithms,heuristicsfor optimalconjunctivepartitioning,. . . ) andthefront-end(theinput language).TheNUSMV back-endis generalpurpose,andcanbeusednot only for verifying hardwarebutalsofor theverificationin otherfieldsin whichsystemscanbemodeledasanFSM (e.g.,software,.. . ).

Therestof this sectioncomparestheperformanceof NUSMV andCMU SMV, describesthedevelopmentof aplannerbuilt on top of NUSMV, andsomedirectionsfor futuredevelopments.

7.1 NUSM V vs. CM U SM V

Thecapabilitiesof NUSMV weretestedon a seriesof examplestakenfrom theliterature,which werethenusedfor acomparisonwith theoriginal CMU SMV. Below is abrief descriptionof thetestsusedandtheir sources:} the ~ 4,8,10,11� -bit alternatingbit protocolby Armin Biere [4].} aboundedretransmission(communication)protocol,by KlausHavelund[40].} theexamplesof theCMU SMV distribution.} amodelof theShuttleDigital Autopilot, by Sergey Berezin.} somemodelsof thePCI Busprotocol,by Sergio Campos.} amodelof productioncell, by KirstenWinter [61].} amodelof a batchreactor, by S.T. Probst[50].} somemodelof partof a preliminaryversionof thesystemrequirementsspecificationof TCAS II (Traffic Alert

andCollisionAvoidanceSystemII), by William Chan[1].

Theseexamplescanbefoundin thedistribution of NUSMV. Table3 lists theresultsof sucha comparative test.Foreachtest,wereportthenumberof (currentandnext) booleanvariablesnecessaryto representthecorrespondingmodel(“# of BDDvars”), andthe memory17 andtime requiredby the systemsto analyzethe model. We markastime out

16More informationabouttheext documentationtool canbefoundat theurl “http://alumnus.caltech.edu/˜sedwards/ext ”17It is themaximumamountof memoryallocatedduringstatespacegenerationandsearch,namely, theamountof memoryallocatedsincethe

programstartsto theendof thecomputationbeforefreeingall thememoryallocated.

18

thefailureto theproblemsin 15000seconds.For theexamplesmarkedwith “(*)” apreviouslycomputedorderingfilewasprovidedto thesystem.Theverificationof theexamplesmarkedwith a “(+)” requiredthemodificationof someof theparametersof theBDDpackage.Theothersymbolsbetweenparenthesesarecommandline optionspassedtothemodelcheckers:-f enablesthecomputationof thesetof reachablestates(which is thenusedto restrictthesearchin modelchecking),while -cp # enablesconjunctive partitioningwith the thresholdof eachpartitionsetto #. Allthesetestswereperformedon anIntel Pentium–II300Mhzprocessorwith 512Mbof RAM underLinux RedHat5.0.The resultslisted in Table3 show that NUSMV performsin mostexamplesbetter(in 22 examplesof the 39 listedw.r.t. to speedandin 8 examplesw.r.t. to memoryoccupation)thanCMU SMV, especiallyfor largerexamples.Thisenhancementin performanceis mainly dueto theuseof thestateof theart CUDD BDDpackage.In thetestsnoneoftheenhancedcapabilitiesnot presentin CMU SMV (e.g.,enhancedpartitioningmethods),wereused.

7.2 NUSM V is open: the M BP example

NUSMV hasbeenand is still usedas the kernel of MBP, a plannerbasedon model checkingable to synthesizereactivecontrollersfor achieving goalsin nondeterministicdomains[20, 21].18 MBP hasbeenobtainedby substitutingor eliminatingsomeof the NUSMV modules. In particular, the NUSMV parsermodulehasbeenredone(the twoinput languagesaredifferent);theNUSMV instantiationmodulehasbeeneliminated(at themoment,in MBP thereisnoconceptof hierarchy);theNUSMV semanticcheckmodulehasbeenredone;theNUSMV FSMcompilerhasbeenredoneto reflectthewayin whichtheMBP input languageis compiledinto BDDs[17]. All theothermoduleshavebeenleft unchanged,andaresharedbetweenthe two systems.Finally, a new module,containingall the specialpurpose,planningalgorithms,hasbeenadded.Thismoduleprovidesroutinesbasedon theimageandpre-imagecomputation.

7.3 Future Dir ections

To make the systemmoreusableandimprove its efficiency andits expressivenessthereareplansto introducethefollowing additionalfunctionalities.� A simulationfunctionality, whichallowstheuserto acquireconfidencewith thecorrectnessof themodelbefore

theverificationof theproperties.� A sequentialinput language.Theproblemwith theNUSMV languageis that it is mostamenablefor hardwareandhardware-like systems,while its ability to modelsoftwaresystemsis left to theuser. This leavestheuserwith the burdenof a complex model generationactivity. In generalthis can be hardly acceptable,as manyspecificationlanguages(e.g.,SDL) areintrinsically sequential.A possiblenew input languagefor NUSMV isVERUS[13].� ForwardCTL modelchecking.In symbolicmodelchecking,CTL formulasareevaluatedbackward(thebaseoperationis �/� , seeSection2). New algorithmshavebeendevelopedthatallow performingevaluationof CTLformulasvia a forward statetraversal[43]. Thesealgorithmsallow for the verificationof large systemsthatcannotbehandledby theclassicalbackwardalgorithms.� Coneof influencereductions[3]. Theideais to simplify themodelw.r.t. theconeof influenceof theformulatobeverified,thusreducingthesearchspace.� Useof “reachabilitydon’t cares”(RDC) [63] to reducethecostof CTL modelchecking.� High densityreachabilityanalysis[54] andunderandover approximatereachabilityanalysis[48]. Thesehaveshown in somecases,togetherwith RDC,dramaticeffectsin theperformanceof CTL modelchecking.� Optimizationsfor constraint-richmodels[62], to enabletheverificationof systemswith complex time-invariantconstraints.

Somelinesof researchthatarecurrentlyunderstudyandwhoseresultsweplanto integrateinsideNUSMV arespecificreductiontechniquesfor sequentialsystems,asetof abstractiontechniquesthatimplementcertainheuristicsdevelopedin the theoremproving community [38] and that we believe will be very effective, the extensionof CTL model

18See[37] for anintroductionanda survey of planningasmodelchecking.

19

NUSMV CMU SMVExamplefile name # of BDDvars Memory(KB) Time(secs) Memory(KB) Time(secs)

abp4.smv 66 4938 9.4 960 10.6abp4.smv(-f) 66 2818 1.5 960 3.2abp8.smv 98 5886 81.4 1984 117.3abp8.smv(-f) 98 15074 114.5 6528 527.7abp10.smv 114 14275 632.9 11776 1011.4abp10.smv(-f) 114 66767 2712.2 — time outabp11.smv 122 43355 3121.2 — time outabp11.smv(-f) 122 103251 12554.5 — time outbrp.smv 98 23966 178.4 30784 1218.7brp.smv(-f) 98 5346 3.5 1280 4.4guidance.smv(*) 190 5090 23.0 1728 21.8guidance.smv(-f) (*) 190 3926 4.8 1408 4.9p-queue.smv(*) 86 2318 0.4 1088 0.2p-queue.smv(-f) (*) 86 2318 0.4 1088 0.1prod-cons.smv(*) 58 6610 80.9 2880 105.1prod-cons.smv(-f) (*) 58 5594 11.8 1152 33.0production-cell.smv(*) 108 5826 72.0 2368 97.0production-cell.smv(-f) (*) 108 2583 1.8 1088 0.4base.smv(-f) (*) 148 3223 2.2 1536 1.9idle.smv(-f) (*) 150 7710 90.1 6144 162.0counter.smv 6 1334 0.0 896 0.0dme1.smv(-f) (*) 108 3618 1.3 2368 9.4dme1-16.smv(-f) (*) 576 25310 277.7 — time outdme1-16.smv(-cp 2000-f) (*) 576 15299 335.5 8768 454.4dme2.smv(-f) (*) 112 3335 1.0 1088 0.6dme2-16.smv(-f) (*) 586 27050 6313.1 — time outdme2-16.smv(-f ) (+) (*) 586 49099 1821.9 68864 4985.8gigamax.smv 88 4142 1.9 1216 2.0mutex.smv 10 1342 0.0 896 0.0mutex1.smv 14 1370 0.1 896 0.0pci3p.smv(-f) (*) 92 1862 0.2 960 0.1pci4p.smv(-f) (*) 128 5422 20.0 1152 53.0periodic.smv(-f) 72 1786 1.0 960 0.1ring.smv(-f) 10 1342 0.0 1152 0.0robot.smv(-f) (*) 88 2894 8.7 1280 1.5semaphore.smv(*) 14 1350 0.0 896 0.0syncarb10.smv 60 3674 1.2 1216 1.0syncarb5.smv 30 1455 0.1 896 0.0tcas-t.smv(-cp10000)(*) 292 98955 779.0 146816(+) 1588.6(+)

Table3: Theresultsof thecomparisontest.

20

checkingto multi-agentsystemsandsecurityapplications[2], and the integrationof modelcheckingand theoremproving (SAT in particular)following theideasreportedin [36] andin [5].

References

[1] RichardJ.Anderson,PaulBeame,SteveBurns,William Chan,FrancesmaryModugno,David Notkin,andJonD.Reese.Model checkinglargesoftwarespecifications.In David Garlan,editor, Proceedingsof theFourth ACMSIGSOFTSymposiumon the Foundationsof Software Engineering, pages156–166,SanFrancisco,CA, USA,October1996.ACM. A full versionto appearin IEEE Transactionson SoftwareEngineering.

[2] M. Benerecetti,F. Giunchiglia,andL. Serafini. Model CheckingMultiagentSystems.Journal of Logic andComputation,SpecialIssueon Computational& Logical Aspectsof Multi-AgentSystems, 8(3):401–423,1998.Also IRST-TechnicalReport9708-07,IRST, Trento,Italy.

[3] S. Berezin,S. Campos,andE. Clarke. CompositionalReasoningin Model Checking.TechnicalReportCMU-CS-98-106,Schoolof ComputerScience,CarnegieMellon University, Pittsburgh,PA 15213,February1998.Toappearin proceedingsof theCOMPOS’97workshop.

[4] Armin Biere. � cke – efficient � -calculusmodel checking. In International Conferenceon Computer-AidedVerification, number1254in LNCS,pages468–471.Springer, 1997.

[5] Armin Biere, AlessandroCimatti, EdmundM. Clarke, andYunshanZhu. SymbolicModel CheckingwithoutBDDs. In Fifth InternationalConferenceon ToolsandAlgorithmsfor theConstructionandAnalysisof Systems(TACAS’99), March1999.To appear.

[6] R. K. Brayton,G.D.Hachtel,A. Sangiovanni-Vincentelli,F. Somenzi,A. Aziz S.,Cheng,S.Edwards,S.Khatri,Y. Kukimoto, A. Pardo, S. Qadeer, R.K. Ranjan,S. Sarwary, T.R. Shiple, G. Swamy, and T. Villa. VIS: Asystemfor VerificationandSynthesis.In Rajeev Alur andThomasA. Henzinger, editors,Proc.ComputerAidedVerification(CAV’96), number1102in LNCS,New Brunswick,New Jersey, USA, July/August1996.Springer-Verlag.

[7] R. E. Bryant. Graph-BasedAlgorithmsfor BooleanFunctionManipulation. IEEE Transactionson Computers,C-35(8):677–691,August1986.

[8] R.E. Bryant.SymbolicBooleanmanipolationwith orderedbinary-decisiondiagrams.ACM ComputingSurveys,24(3):293–318,September1992.

[9] J.R. Burch,E. M. Clarke,andD. E. Long. RepresentingCircuitsMoreEfficiently in SymbolicModelChecking.In Proceedingsof the28thACM/IEEEDesignAutomationConference, pages403–407,LosAlamitos,CA, June1991.IEEE ComputerSocietyPress.

[10] J. R. Burch,E. M. Clarke, andD. E. Long. Symbolicmodelcheckingwith partitionedtransitionrelations. InA. HalaasandP.B. Denyer, editors,InternationalConferenceon Very Large ScaleIntegration, pages49–58,Edinburgh,Scotland,August1991.IFIP Transactions,North-Holland.

[11] J. R. Burch, E. M. Clarke, D. E. Long, K. L. McMillan, andD. L. Dill. SymbolicModel Checkingfor Se-quentialCircuit Verification. IEEE Transactionson Computer-AidedDesignof IntegratedCircuitsandSystems,13(4):401–424,April 1994.

[12] J.R. Burch,E. M. Clarke,K. L. McMillan, D. L. Dill, andL. J.Hwang.SymbolicModelChecking: � � � � StatesandBeyond. InformationandComputation, 98(2):142–170,June1992.

[13] S. Campos,E. Clarke, andM. Minea. The VerusTool: A quantitative approachto the formal verificationofreal-timesystems. In OrnaGrumberg, editor, Proc. ComputerAidedVerification (CAV’97), number1254 inLNCS,Haifa, Israel,June1997.Springer-Verlag.

21

[14] S. Campos,E. M. Clarke, W. Marrero,M. Minea, andH. Hiraishi. ComputingQuantitive CharacteristicsofFinite-StateReal-TimeSystems. TechnicalReportCMU-CS-94-147,Schoolof ComputerScience,CarnegieMellon University, Pittsburgh,PA 15213,May 1994.

[15] S. CamposandO. Grumberg. Selective quantitative analysisandinterval modelchecking:Verifying differentfacetsof a system.In Rajeev Alur andThomasA. Henzinger,editors,Proceedingsof theEighth InternationalConferenceon ComputerAidedVerification CAV, volume1102of Lecture Notesin ComputerScience, pages257–268,New Brunswick,NJ,USA, July/August1996.SpringerVerlag.

[16] R. J.ChassellandRichardStallman.Texinfo: theGNUdocumentationformat, October1996.

[17] A. Cimatti,E.Giunchiglia,F. Giunchiglia,andP. Traverso.Planningvia ModelChecking:A DecisionProcedurefor �1� . In S.SteelandR. Alami, editors,Proceedingof theFourth EuropeanConferenceonPlanning, number1348in LectureNotesin Artificial Intelligence,pages130–142,Toulouse,France,September1997.Springer-Verlag.Also ITC-IRSTTechnicalReport9705-02,ITC-IRSTTrento,Italy.

[18] A. Cimatti,F. Giunchiglia,G.Mongardi,D. Romano,F. Torielli, andP. Traverso.ModelCheckingSafetyCriticalSoftwarewith SPIN: an Application to a Railway InterlockingSystem. In Proceedingsof SAFECOMP’98–SeventeenthInternationalConferenceonComputerSafety, ReliabilityandSecurity, Heidelberg,Germany, 1998.Also IRST-TechnicalReport9702-09,Trento,Italy. Presentedat theThird SPINWorkshop,TwenteUniversity,Enschede,TheNetherlands,April 1997.

[19] A. Cimatti andM. Roveri. NUSMV 1.0: UserManual. Technicalreport,ITC-IRST, Trento,Italy, December1998.

[20] A. Cimatti, M. Roveri, and P. Traverso. Automatic OBDD-basedGenerationof Universal Plans in Non-DeterministicDomains.In Proceedingof theFifteenthNationalConferenceonArtificial Intelligence(AAAI-98),Madison,Wisconsin,1998.AAAI-Press.Also IRST-TechnicalReport9801-10,Trento,Italy.

[21] A. Cimatti, M. Roveri, andP. Traverso. StrongPlanningin Non-DeterministicDomainsvia Model Checking.In Proceedingof the Fourth International Conferenceon Artificial IntelligencePlanning Systems(AIPS-98),CarnegieMellon University, Pittsburgh,USA, June1998.AAAI-Press.

[22] E. Clarke, O. Grumberg, H. Hiraishi, S. Jha,D. Long, K.McMillan, andL. Ness.Verificationof theFUTURE-BUS+cachecoherenceprotocol. In 11thCHDL, 1993.

[23] E. M. Clarke andE. A. Emerson.Synthesisof synchronizationskeletonsfor branchingtime temporal logic. InLogic of Programs:Workshop. SpringerVerlag,May 1981.LectureNotesin ComputerScienceNo. 131.

[24] E. M. Clarke, O. Grumberg, K. L. McMillan, andX. Zhao. Efficient Generationof CounterexamplesandWit-nessesin SymbolicModel Checking. In 32ndDesignAutomationConference(DAC 95), pages427–432,SanFrancisco,CA, USA, June1995.

[25] E. M. Clarke,M. Khaira,andX. Zhao.WordLevel ModelCheckingAvoiding thePentiumFDIV Error. In 33rdDesignAutomationConference(DAC’96), pages645–648,New York, June1996.Associationfor ComputingMachinery.

[26] E. M. Clarke,K. L. McMillan, S.Campos,andV. Hartonas-Garmhausen.Symbolicmodelchecking.In RajeevAlur andThomasA. Henzinger,editors,Proceedingsof theEighthInternationalConferenceonComputerAidedVerification CAV, volume 1102of Lecture Notesin ComputerScience, pages419–422,New Brunswick, NJ,USA, July/August1996.SpringerVerlag.

[27] E. M. Clarke andJ.M. Wing. Formalmethods:Stateof theart andfuturedirections.ACM ComputingSurveys,28(4):626–643,December1996.

[28] E.M. Clarke, E.A. Emerson,and A.P. Sistla. Automatic verificationof finite-stateconcurrentsystemsusingtemporallogic specifications.ACM TransactionsonProgrammingLanguagesandSystems, 8(2):244–263,1986.

22

[29] O. Coudert,C. Berthet,andJ.C.Madre.Verificationof synchronoussequentialmachinesusingsymbolicexecu-tion. In Proceedingsof theInternationalWorkshopon AutomaticVerificationMethodsfor Finite StateSystems,volume 407 of Lecture Notesin ComputerScience, pages365–373,Grenoble,France,June1989.Springer-Verlag.

[30] O. Coudert,J.C. Madre,andH. Touati. TiGeRVersion1.0UserGuide. Digital ParisResearchLab,December1993.

[31] D. L. Dill, A, J.Drexler, A. J.Hu,andC.H. Yang.Protocolverificationasahardwaredesignaid. In InternationalConferenceon ComputerDesign,VLSIin ComputersandProcessors, pages522–525,Los Alamitos,Ca.,USA,October1992.IEEEComputerSocietyPress.

[32] O. Grumberg E. Clarke andK. Hamaguchi.AnotherLook at LTL Model Checking.Formal Methodsin SystemDesign, 10(1):57–71,February1997.

[33] E. Emerson,A. Mok, A. Sistla,andJ.Srinivasan.Quantitative TemporalReasoning.In Proc.ComputerAidedVerification, LNCS.Springer-Verlag,1990.

[34] J.C. Fernandez,H. Garavel, A. Kerbrat,R. Mateescu,L. Mounier, and M. Sighireanu. CADP: A ProtocolValidationandVerificationToolbox. In R. Alur andT.A. Henzinger, editors,Proceedingsof the8th ConferenceonComputer-AidedVerification(CAV’96), number1102in LectureNotesin ComputerScience,pages437–440,New Brunswick,NJ,USA, August1996.Springer-Verlag.

[35] D. GeistandI. Beer. Efficient modelcheckingby automatedorderingof transitionrelationpartitions. In D. L.Dill, editor, Proc.ComputerAidedVerification(CAV’94), number818in LNCS,Stanford,California,USA,June1994.Springer-Verlag.

[36] F. GiunchigliaandR. Sebastiani.Building decisionproceduresfor modal logics from propositionaldecisionprocedures- thecasestudyof modalK. In Proc.of the13thConferenceonAutomatedDeduction, LectureNotesin Artificial Intelligence,New Brunswick,NJ,USA,August1996.SpringerVerlag.Also DIST-TechnicalReport96-0037andIRST-TechnicalReport9601-02.

[37] F. GiunchigliaandP. Traverso. PlanningasModel Checking. In SusanneBiundo, editor, Proceedingof theFifth EuropeanConferenceon Planning, LectureNotesin Artificial Intelligence,Durham,United Kingdom,September1999.Springer-Verlag.

[38] F. GiunchigliaandT. Walsh. A Theoryof Abstraction. Artificial Intelligence, 57(2-3):323–390, 1992. AlsoIRST-TechnicalReport9001-14,IRST, Trento,Italy.

[39] V. Hartonas-Garmhausen,S.Campos,A. Cimatti,E. Clarke,andF. Giunchiglia.Verificationof aSafety-CriticalRailwayInterlockingSystemwith Real-timeConstraints.In Proceedingsof the28thInternationalSymposiumonFault-Tolerant Computing(FTCS-28), pages458–463,Munich, Germany, June1998.IEEE ComputerSocietyPress.

[40] Klaus HavelundandNatarajanShankar. Experimentsin TheoremProving andModel Checkingfor ProtocolVerification. In Marie-ClaudeGaudelandJim Woodcock,editors,FME’96: Industrial BenefitandAdvancesinFormalMethods, pages662–681.Springer-Verlag,March1996.

[41] G. J. Holzmann. The modelchecker Spin. IEEE Trans.on Software Engineering, 23(5):279–295,May 1997.Specialissueon FormalMethodsin SoftwarePractice.

[42] IEEE. SystemApplicationProgramInterface(API) [C Language]. Informationtechnology—PortableOperatingSystemInterface(POSIX).IEEEComputerSociety, 345E. 47thSt,New York, NY 10017,USA, 1990.

[43] H. Iwashita,T. Nakata,andF. Hirose. CTL modelcheckingbasedon forwardstatetraversal.In ProceedingsoftheIEEE/ACM InternationalConferenceon Computer-AidedDesign, pages82–87,Washington,November10–14 1996.IEEEComputerSocietyPress.

23

[44] S. A. Kripke. Semanticalconsiderationson modal logic. In Proc. A colloquiumon Modal and Many-ValuedLogics, Helsinki,1962.

[45] O. LichtensteinandA. Pnueli. Checkingthatfinite stateconcurrentprogramssatisfytheir linearspecifications.In ConferenceRecord of theTwelfthAnnualACM Symposiumon Principlesof ProgrammingLanguages, pages97–107.ACM, ACM, January1985.

[46] K. L. McMillan andJ. Schwalbe. Formal verificationof the encoregigamaxcacheconsistency protocol. InProceedingsof theInternationalSymposiumonSharedMemoryMultiprocessors, pages242–251.(sponsoredbyInformationProcessingSociety, Tokyo, Japan),1991.

[47] K.L. McMillan. SymbolicModelChecking. Kluwer AcademicPubl.,1993.

[48] In-Ho Moon, Jae-Young Jang,Gary D. Hacthtel,Fabio Somenzi,Jun Yuan, and Carl Pixley. ApproximateReachabilityDon’t Caresfo CTL Model Checking.In Proceedingsof theIEEE/ACM InternationalConferenceon Computer-AidedDesign, SanJose,California,November8–121998.IEEEComputerSocietyPress.

[49] C. Pixley. A ComputationalTheory and Implementationof SequentialHardwareEquivalence. In DIMACSWorkshoponComputerAidedVerification’90, pages293–320,Providence,RI, 1990.

[50] S. T. Probst. ChemicalProcessSafetyandOperability AnalysisusingSymbolicModel Checking. PhD thesis,Departmentof ChemicalEngineering– CarnegieMellon University, Pittsburgh,PA1523USA, May 1996.

[51] J. P. Queille andJ. Sifakis. Specificationandverificationof concurrentsystemsin CESAR. In Proc. 5th Int’lSymp.on Programming, LectureNotesin ComputerScience,Vol. 137,pages337–371.SV, Berlin/New York,1982.

[52] J.P. Queille. Le systemeCESAR: Description,specificationet analysedesapplicationsreparties.Thesis,Uuni-versiteScientifiqueet MedicaledeGrenoble,June1982.

[53] R. K. Ranjan,A. Aziz, B. Plessier, C. Pixley, andR. K. Brayton. Efficient BDD algorithmsfor FSM synthesisandverification.In IEEE/ACM ProceedingsInternationalWorkshoponLogic Synthesis, LakeTahoe(NV), May1995.

[54] K. Ravi andF. Somenzi. High-densityreachabilityanalysis. In InternationalConferenceon ComputerAidedDesign, pages154–158,Los Alamitos,Ca.,USA, November1995.IEEE ComputerSocietyPress.

[55] HerbertSchildt,AmericanNationalStandardsInstitute,InternationalOrganizationfor Standardization,Interna-tional ElectrotechnicalCommission,andISO/IECJTC1. TheannotatedANSIC standard: AmericanNationalStandard for ProgrammingLanguagesC: ANSI/ISO9899-1990. Osborne/McGraw-Hill, Berkeley, CA, USA,1990.

[56] E. M. Sentovich, K. J. Singh,L. Lavagno,C. Moon, R. Murgai, A. Saldanha,H. Savoj, P. R. Stephan,R. K.Brayton,andA. Sangiovanni-Vincentelli. SIS:A systemfor sequentialcircuit synthesis.Technicalreport,U.C.Berkeley, May 1992.

[57] F. Somenzi.CUDD: CU DecisionDiagrampackage— release2.1.2. Departmentof ElectricalandComputerEngineering— Universityof ColoradoatBoulder, April 1997.

[58] Walter F. Tichy. RCS:A systemfor versioncontrol. Software Practiceand Experience, 15(7):637–654,July1985.

[59] H. J.Touati,H. Savoj, B. Lin, R. K. Brayton,andA. Sangiovanni-Vincentelli.Implicit stateenumerationof finitestatemachinesusingBDDs. In SatoshiSangiovanni-Vincentelli,Alberto;Goto,editor, Proceedingsof theIEEEInternationalConferenceon Computer-AidedDesign, pages130–133,SantaClara,CA, November1990.IEEEComputerSocietyPress.

[60] M. Y. Vardi andP. Wolper. An automata-theoreticapproachto automaticprogramverification. In Symposiumon Logic in ComputerScience(LICS’86), pages332–345,Washington,D.C.,USA, June1986.IEEE ComputerSocietyPress.

24

[61] K. Winter. ModelCheckingfor AbstractStateMachines.Journalof UniversalComputerScience, 3(5):689–701,1997.

[62] BwolenYang,ReidSimmons,RandalE. Bryant,andDavid R. O’Hallaron.OptimizingSymbolicModelCheck-ing for Constraint-RichModels.In N. HalbwachsandD. Peled,editors,EleventhConferenceonComputer-AidedVerification(CAV’99), number1633in LectureNotesin ComputerScience,pages328–340,Trento– Italy, July1999.Springer.

[63] J.Yuan,J.Shen,J.Abraham,andA. Aziz. Oncombiningformalandinformalverification.In Proceedingsof the9th InternationalConferenceon ComputerAidedVerificationCAV, volume1254of Lecture Notesin ComputerScience, pages376–387,1997.

25

beatrice
This research was sponsored in part by National Science Foundation (NSF) grant no. CCR-0122581.
beatrice