Efficiency issues in the design of a model checker

Geldenhuys, Jaco (Jacobus) (1999-11)

Thesis (M.Sc.) -- University of Stellenbosch, 1999.

Thesis

ENGLISH SUMMARY: A model checker is a program that verifies, without human assistance, that the formal description of a system has specified, desirable properties. The development of model checking algorithms is an active area of research, but most implementations are still prototypical in nature. In consequence, knowledge about the design and implementation of a practical, efficient model checker is limited. In this thesis the most important design decisions involved in creating an efficient on-the-fly model checker are identified and discussed. In short, there are three major tasks: 1. the generation of program states, 2. the detection of revisited states, and 3. the representation of states. In all three cases the central goal is to generate as many states as possible and to generate states as fast as possible. For each task, alternatives are described and compared. The discussion of design issues is further supported in two ways. First, a detailed design and implementation for a model checker is described to illustrate how design decisions affect each other and ultimately the implementation. Second, the design arguments, based on more or less realistic models, are validated through a thorough study of the performance of the various components of the model checker.

AFRIKAANSE OPSOMMING: 'n Modeltoetser is 'n program wat ~stel of die formele beskrywing van 'n stelsel oor wenslike, vooraf-gespesifiseerde eienskappe beskik. Die ontwikkeling v~n algoritmes vir hierdie doel word aktief nagevors, maar in die meeste gevalle is implementasies van modeltoetsers van 'n bloot prototipiese aard. Gevolglik is kennis oor die ontwerp en implementering van 'n praktiese, effektiewe modeltoetser so skaars soos hoendertande. Hierdie tesis bespreek die belangrikste ontwerpsbesluite in die ontwikkeling van 'n effektiewe modeltoetser. Drie hooftake word geldentifiseer: 1. die voortbrengs van state (programtoestande), 2. die herkenning van reeds bekende state, en 3. die interne voorstelling van state. In al drie gevalle is die belangrikste doelwit om so veel as moontlik state voort te bring, en om state so vinnig as moontlik voort te bring. Vir elke taak word alternatiewe bespreek en vergelyk. Die bespreking word verder op twee maniere ondersteun. Eerstens word 'n modeltoetser se ontwerp en implementasie in detail beskryf om die invloed van ontwerpsbesluite op mekaar en op die uiteindelike implementasie te illustreer. Tweedens word die argumente, tot dusver gebaseer op redelike aannames, gevalideer deur 'n deeglike studie van die werkverrigting van die modeltoetser se onderskeie onderdele.

Please refer to this item in SUNScholar by using the following persistent URL: http://hdl.handle.net/10019.1/51253
This item appears in the following collections: