Bounded Model Checker for Unbounded Client-Server Systems
Authors/Creators
Description
UCSChecker
UCSChecker is a bounded model checker for verification of a class of software systems called unbounded client-server systems.
Change log (in comparison to v2):
- inclusion of case study in the artifact
- allowing conflicts within the nunet structure where there are both server and client labeled arcs
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Inputs:
- The unbounded client-server systems are represented as a nu-net.
- The properties of the system are represented in a fragment of First Order Logic (FOTL_1).
- bound
Installation Instructions:
1. If you are using a linux machine with debian/ubuntu operating system, please do the following:
- A single installation script has been provided for installing the .deb, .whl packages. We have downloaded the required .deb packages using debscript.sh into packages/debpackages and whl packages (listed in requirements.txt) into packages/whlpackages.
-Run bash install_all.sh. It requires sudo permissions. Execution time: 1 minute
2. This tool is configured to be run on a linux machine with Ubuntu 22.04 LTS and supports debian/ubuntu operating system. If you have any other setup or a different version of debian/ubuntu, kindly install the necessary packages available in the directory packages. Look at the install_all.sh script on the command used and packages necessary. If you are building the tool from scratch, you also need to run build essentials to ensure your packages are upto date.
Execution instructions (after successfully running install_all.sh):
1. The executable ucschecker is the bmc tool. You may navigate to the directory ucschecker_tool/ and run it as follows:
./ucschecker <system description filename>.pnml <property filename>.expr <bound(positive integer)>
For instance:
./ucschecker APS_nunet.pnml input.expr 5
You may create your own nu-net using any Petri net editor and verify the FOTL_1 properties. We used Wolfgang Editor.
2. The output is displayed on the terminal as SAT/UNSAT. Read the accompanying paper to know how to interpret the results.
3. If the steps 1 and 2 do not work, please DELETE the file ucschecker and RECOMPILE the tool using the following steps:
- Navigate to directory ucschecker_tool and in the terminal, run: make
- If the installation is successful, you will see the newly generated (modified) file called ucschecker. You can now go to step 1 again.
Note:
To handle associativity of operations, r.h.s of the subformulas MUST be parenthesized.
for instance, G_s E x (G_c ( p0(y) & (F_c (p1(x)) )))
Notice how (F_c (p1(x))) is parenthesized whereas p0(x) does not have a parentheses around it.
Case study:
We have included the two case studies: modeling a parking system and a travel agency with unbounded clients.
The nunet models and sample properties are in this artifact.
The detailed description is available in the accompanying paper and arxiv draft.
Contact:
If you have any difficulty in executing the above instructions or are interested in this line of research, please reach out to the developer at tephilla.prince.18@iitdh.ac.in
Files
artifact.zip
Files
(432.1 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:1751c11a1093c4f9ec23b667d8d9f211
|
432.1 MB | Preview Download |
Additional details
Dates
- Available
-
2025-07-09