A.F. Donaldson - TopSPIN Version 2.2. Automatic symmetry reduction for the SPIN model checker. User Manual (798531)
Текст из файла
TopSPINVersion 2.2Automatic symmetry reductionfor the SPIN model checkerUser ManualAlastair F. DonaldsonBefore You BeginWhat this manual coversThis user manual provides details of how to download, install and use TopSPIN, an automatic symmetry reduction tool for the SPIN model checker. TopSPIN can potentially aid in the verification of safetyproperties of concurrent systems specified in Promela.• Downloading and Installing Chapter 1 provides details of other packages on which TopSPINdepends, including where these packages can be found, and explains how to download and installTopSPIN.• Worked Example Chapter 2 provides a worked example showing how to run TopSPIN to obtainsymmetry reduction for an example specification.• Overview of Options An overview of TopSPIN options is presented in Chapter 3.• Limitations A summary of limitations of TopSPIN is given in Chapter 4.• Compiling from Source For users who wish to experiment further with TopSPIN, Chapter 5explains how to obtain, compile and test the TopSPIN source code.• Troubleshooting and Bug Reporting Chapter 6 presents solutions to common problems associated with the installation and operation of TopSPIN, and provides details of how bugs shouldbe reported.What this manual does not cover• Theory Users interested in the theory on which TopSPIN is based should refer to relevant papersand a Ph.D.
thesis, which are available from the tool web page (see below).• Use of SPIN This manual assumes that the reader is familiar with the SPIN tool and the Promelalanguage. Details of and documentation for the SPIN tool are available from the SPIN web page.1Online resources• TopSPIN web page http://www.allydonaldson.co.uk/topspin/• SourceForge https://www.sourceforge.net/projects/symmetryglasgow/1.http://www.spinroot.com/Contents123Downloading and Installing1.1 Prerequisites . . .
. . . . . . . . .1.2 Downloading . . . . . . . . . . .1.3 Installing . . . . . . . . . . . . .1.3.1 Compiling saucy . . . . .1.3.2 Creating a GAP workspace1.4 Executing the TopSPIN jar file . . .............................................................................................................................................................Worked Example2.1 Loadbalancer specification . . . . . .
. . . . . . . . .2.2 Applying SPIN to the loadbalancer specification . . . .2.3 Setting up a TopSPIN configuration file . . . . . . . . .2.4 Symmetry reduction with the fast strategy . . . . . . .2.4.1 Running TopSPIN . . . . . . . . . . . . . . . .2.4.2 Compiling and executing the sympan verifier2.5 Symmetry reduction with the enumerate strategy .
. .2.6 Summary so far . . . . . . . . . . . . . . . . . . . . .........................................................................................................................................7. 7. 7. 8. 8. 9. 10. 10. 11...........................12121212121213131313131313141415151515151516161616161616.................................4445556......Overview of Options3.1 Online help .
. . . . . . . . . . . . . . . . . . .3.2 Command-line options . . . . . . . . . . . . . .3.2.1 -check . . . . . . . . . . . . . . . . .3.2.2 -detect . . . . . . . . . . . . . . . . .3.2.3 -relaxedarrayindexing . . . . .3.2.4 -relaxedassignment . . . . . . . .3.3 Mandatory configuration file options . . . . .
. .3.3.1 saucy . . . . . . . . . . . . . . . . . .3.3.2 common . . . . . . . . . . . . . . . . .3.3.3 gap . . . . . . . . . . . . . . . . . . . .3.4 Configuration file options for symmetry detection3.4.1 explain . . . . . . . . . . . . . . . . .3.4.2 timebound . . . . . . . . . .
. . . . .3.4.3 conjugates . . . . . . . . . . . . . .3.4.4 symmetryfile . . . . . . . . . . . . .3.5 Configuration file options for symmetry reduction3.5.1 strategy . . . . . . . . . . . . . . . .3.5.2 transpositions . . . . . . . . . . .3.5.3 stabiliserchain . . . . . . . . . .3.5.4 vectorise . . . . . . . . . . . . . . .3.5.5 parallelise . . . . .
. . . . . . . .3.5.6 cores . . . . . . . . . . . . . . . . . .3.5.7 target . . . . . . . . . . . . . . . . .3.6 Configuration file options for usability . . . . . .3.6.1 profile . . . . . . . . . . . . . . . . .3.6.2 verbose . . . . . . . . . . . . . . . . .3.6.3 quiet . . . . . . . . . . . . . . . . . ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................456Limitations4.1 Process instantiation and dynamic process creation .
. . . . . . . .4.2 Process termination . . . . . . . . . . . . . . . . . . . . . . . . . .4.3 The _pid variable should be used . . . . . . . . . . . . . . . . . . .4.4 Restrictions on channels∗ . . . . . . . . . . . . . . . . . . . . . . .4.5 Never claims, trace/notrace constructs, accept and progress labels4.6 Exclusive send/recieve (xs/xr) channel assertions . . . . . . .
. . .4.7 Unsigned data type∗ . . . . . . . . . . . . . . . . . . . . . . . . . .4.8 Sorted send, random receive (!! and ?? operators) . . . . . . . . . .4.9 Embedded C code . . . . . . . . . . . . . . . . . . . . . . . . . . .4.10 Breadth-first search∗ . . . . . . . .
. . . . . . . . . . . . . . . . .Compiling From Source5.1 Downloading TopSPIN source code . . . . . . . .5.2 Generating the Promela parser . . . . . . . . . .5.3 Compiling and creating a jar . . . . . . . . . . .5.3.1 Compiling . . . . . . . . . . . . . . . .5.3.2 Creating a jar file . . .
. . . . . . . . . .5.4 Try your compiled version on an example . . . .5.5 Acceptance Tests . . . . . . . . . . . . . . . . .5.5.1 Setting up a configuration file for testing .5.5.2 Running the tests . . . . . . . . . . . . .5.5.3 Problems running the tests . . . . . . . .............................................................................................................................................................................................................................................................................................................Troubleshooting and Bug Reporting6.1 Common problems . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.1.1 Missing configuration file . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.1.2 Incomplete configuration file . . . . . . . . . . . . . . . . . . . . . . . . .
. .6.1.3 The saucy program is not correctly installed . . . . . . . . . . . . . . . . . . .6.1.4 Path to saucy in configuration file is wrong . . . . . . . . . . . . . . . . . . .6.1.5 GAP is not correctly installed . . . . . . . . . . . . . . . . . . . . . . . . . . .6.1.6 Path to GAP in configuration file is wrong . . . . . . .
. . . . . . . . . . . . .6.1.7 Common directory does not exist, or user does not have permissions for thisdirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.1.8 Path to Common directory does not have terminating slash .
. . . . . . . . . .6.1.9 Missing or corrupt GAP workspace . . . . . . . . . . . . . . . . . . . . . . . .6.1.10 GAP executable specified in configuration file, instead of shell script/batch file .6.1.11 SPIN is not correctly installed . . . . . . . . . . . . . . . . . . . . . . . . . . .6.1.12 C preprocessor, cpp, unavailable . . .
. . . . . . . . . . . . . . . . . . . . . .6.1.13 Typechecking error: problem with array index . . . . . . . . . . . . . . . . . .6.1.14 Typechecking error: problem with assignment to numeric variable . . . . . . .6.1.15 Error during verification: “bad proctype” . . . . . . . . . . .
. . . . . . . . .6.2 Reporting bugs in TopSPIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.3 Reporting bugs in this manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.4 Getting in touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...........1717181919202020202121..........2222222323242424242525.......2626262626262727............27272828282929292929303011.1Downloadingand InstallingPrerequisitesTopSPIN is written in Java and GAP, interfaces with the GAP and SPIN packages, and produces C codewhich must then be compiled. Figure 1.1 summarises the packages which must be installed beforeTopSPIN can be used, and provides a URL for each package.
For each package, the version used duringthe development of TopSPIN is specified. Use of these or newer versions is recommended.Before going further, make sure each of the packages of Figure 1.1 is installed on your system.It is sufficient to download and install the GAP core package only. The archive of redistributed GAPpackages, referred to as packages-... in the GAP installation instructions, is not mandatory.Important Make sure that the SPIN tool is installed in such a way that it can be invoked by name from acommand prompt, i.e. so that typing spin will launch SPIN.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.