============================================================================ This directory contains a deadlock checker using finite complete prefixes: ============================================================================ It is currently and add-on tool to the PEP toolset, but other prefix based tools could also be supported. The use of this tool goes as follows: 1. PEP is used to generate a complete finite perix from a 1-safe Petri net e.g. by the PEP command: EVunfold mynet.ll_net -m=mynet.mci -b -c -n=1 -s -@ 2. dlsmodels is used to check whether the net can deadlock (FALSE) or not (TRUE). It a deadlock can be reached, a sequence of events leading to the deadlock will be printed: dlsmodels mynet.mci ============================================================================ The files in this directory are : ============================================================================ dlsmodels-1.0.tar.gz - C++ source code for a deadlock checker using PEP generated complete finite prefixes as input and a constraint-based logic programming tool, the smodels system as the computational engine. Also contains a statically linked Linux x86 binary of the tool dlsmodels. All the parts of the tool are under GPL, see the file COPYING in the dlsmodels_src directory for details. It shouldn't be too hard to add input capabilities for also other prefix input formats, please contact me. Please email me if you find the tool useful. Usage: ============================================================================ Determination of deadlocks (Smodels reachability translation) Usage: dlsmodels_bin/dlsmodels [OPTION]... file1 [file2] Options: -O0 : Do not optimize the translation -O1 : Do only guaranteed linear time optimizations -O2 : Do cheap polynomial time optimizations (default) -O3 : Do expensive optimizations (much slower than O2) -d : Produce smodels translation only (for debugging) -v : Give verbose translation statistics file1 : input file containing unfolding extension '.mci': binary coded format file2 : output result file Copyright (c) 1998 Keijo Heljanko (translation) Copyright (c) 1998 Patrik Simons (smodels) Version 1.0, smodels version pre-2.0.30, (Sep 11 1998) ============================================================================ Example use: %: dlsmodels dme2.mci TRUE Time needed: 0.130 s %: dlsmodels -v elevator_1.fsa.mci FALSE E1(000010000000000000001), E2(000020000000000000001), E5(000030000000000000001), E6(000040000000000000001), E7(000050000000000000001), E9(000050000000000000053), E28(000050000000000000070), E34(000050000000000000004), E39(000010000000000000008), E44(000050000000000000084), E52(000050000000000000060), E62(000050000000000000041), E84(000050000000000000062), E108(000040000000000000063). Time needed: 0.030 s Smodels statistics: Duration: 0.020 Number of choice points: 1 Number of wrong choices: 0 Number of atoms: 136 Number of rules: 234 Number of picked atoms: 175 Number of forced atoms: 69 Number of truth assignments: 2355 ============================================================================ Further references in bibtex format: ============================================================================ @inproceedings{McM92, AUTHOR = {McMillan, K. L.}, TITLE = {Using Unfoldings to Avoid the State Space Explosion Problem in the verification of Asynchronous Circuits}, BOOKTITLE = {Proceeding of 4th Workshop on Computer Aided Verification (CAV'92)}, YEAR = {1992}, Editor = {}, Pages = {164--174}, Organization = {}, Publisher = {}, Address = {}, Month = {}, Note ={LNCS 663}} @inproceedings{McM95, AUTHOR = {McMillan, K. L.}, TITLE = {A Technique of a State Space Search Based on Unfolding}, BOOKTITLE = {Formal Methods is System Design 6(1)}, YEAR = {1995}, Editor = {}, Pages = {45--65}, Organization = {}, Publisher = {}, Address = {}, Month = {}, Note ={} } @inproceedings{MR:cav97, AUTHOR = {Melzer, S. and R\"omer, S.}, TITLE = {Deadlock Checking Using Net Unfoldings}, BOOKTITLE = {Proceeding of 9th International Conference on Computer Aided Verification (CAV'97)}, YEAR = {1997}, Editor = {}, Pages = {352--363}, Organization = {}, Publisher = {Springer-Verlag}, Address = {Haifa, Israel}, Month = {Jun}, Note ={LNCS 1254}} @inproceedings{Best96:pomiv, author={Best, E.}, title={Partial Order Verification with {P}{E}{P}}, booktitle={Proceedings of POMIV'96, Workshop on Partial Order Methods in Verification}, year={1996}, editor={Holzmann, G. and Peled, D. and Pratt, V.}, publisher={American Mathematical Society}, month=jul, } @inproceedings{Heljanko:CSP98, author={Heljanko, K.}, title={Deadlock Checking for Complete Finite Prefixes Using Logic Programs with Stable Model Semantics (Extended Abstract)}, booktitle={Proceedings of the Workshop Concurrency, Specification \& Programming 1998}, series={Informatik-Bericht Nr. 110}, pages={106--115}, year={1998}, publisher={Humboldt-University, Berlin}, month=sep, IGNOREnote={Available at http://\linebreak[3]www.tcs.hut.fi/\~{ }kepa/publications/KH_csp98.ps.gz} } @inproceedings{Heljanko:Tacas99, author={Heljanko, K.}, title={Using Logic Programs with Stable Model Semantics to Solve Deadlock and Reachability Problems for 1-Safe Petri Nets}, booktitle={Proceedings of Fifth International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'99)}, addlaterpages={}, year={1998}, publisher={Springer-Verlag, Berlin}, month=mar, note={Accepted for publication} } ============================================================================ Enjoy, Kepa -- Keijo.Heljanko@hut.fi Researcher Laboratory for Theoretical Computer Science Helsinki University of Technology Finland