EPMC-PAMC: A Model Checker for Probabilistic Alternating-Time Mu-Calculus (PAMC)

This README demonstrates how to build and run the model checker under Linux OS. It is tested only on 16.04 LTS, 64bits.

What is this project for?

This project focuses on the model checking problem of PAMC. This tool EPMC-PAMC is implemented as a plugin in ePMC. We only integrate the checking function for pamc here, and omit the other unrelevant functional plugins. For more usage of ePMC, please visit EPMC - (An Extendible Probabilistic Model Checker, previously known as IscasMC).

Build EPMC-PAMC under Linux OS

1. Obtain source code of EPMC-PAMC
source code

2. Set dependencies: JDK 8.0+, Maven.

For Maven, you can simply use apt to install maven: sudo apt-get install maven

3. Build EPMC-PAMC distributions

Enter to the root <epmc-pamc>, run ./build.sh

Congratulations! You have packaged the tool in an ALL-IN-ONE jar file epmc-pamc.jar.
Now run java -jar epmc-pamc help, you’ll find out a command-help-list. Note that the model-checker EPMC-PAMC currently only support explicit model checking.

Run EPMC-PAMC in command line

To perform PAMC model checking, please set the following options into your commands:

--prism-flatten false 
--model-input-type scgs
--property-input-type pamc

This tool also supports epistemic operators (extended from Chen Fu's work). So you need to prepare 3 files totally: one for the model, one for equivalence relations and one for pamc properties. Here is an example on how to run in command line:

java -jar epmc-pamc.jar check --prism-flatten false --model-input-files path/to/your_model.prism path/to/your_equivalence_relations.equiv --property-input-files path/to/your_property.pamc --model-input-type scgs --property-input-type pamc

The model should be in the PRISM language with mdp as its system type. The composition of the modules is defined in Chen Fu’s work). Note that you need to define every possible transitions explicitly for each local action in each local agent.

Set up EPMC-PAMC in Eclipse

Prerequisites

Set up EPMC-PAMC in Eclipse

This part is totally same to ePMC’s set up steps in Eclipse.

Run EPMC-PAMC in Eclipse

Now suppose you want to run the pbn example in our respository, you need to provide the directories of plugins by adding the followings into running arguments:

check
--prism-flatten 
false 
--model-input-files
path/to/epmc-pamc/experiments/pbn/pbn1.prism
path/to/epmc-pamc/experiments/pbn/pbn1.equiv
--property-input-files
path/to/epmc-pamc/experiments/pbn/pbn1.pamc
--model-input-type
scgs
--property-input-type
pamc
--plugin
path/to/epmc-pamc/plugins/util/target/classes,
path/to/epmc-pamc/plugins/value-basic/target/classes,
path/to/epmc-pamc/plugins/dd/target/classes,
path/to/epmc-pamc/plugins/expression-basic/target/classes,
path/to/epmc-pamc/plugins/graph/target/classes,
path/to/epmc-pamc/plugins/algorithm/target/classes,
path/to/epmc-pamc/plugins/graphsolver/target/classes,
path/to/epmc-pamc/plugins/graphsolver-iterative/target/classes,
path/to/epmc-pamc/plugins/jani-model/target/classes,
path/to/epmc-pamc/plugins/jani-interaction/target/classes,
path/to/epmc-pamc/plugins/automata/target/classes,
path/to/epmc-pamc/plugins/prism-format/target/classes,
path/to/epmc-pamc/plugins/command-check/target/classes,
path/to/epmc-pamc/plugins/command-help/target/classes,
path/to/epmc-pamc/plugins/propertysolver-propositional/target/classes,
path/to/epmc-pamc/plugins/propertysolver-operator/target/classes,
path/to/epmc-pamc/plugins/propertysolver-pctl/target/classes,
path/to/epmc-pamc/plugins/propertysolver-pamc/target/classes

From ePMC:
Note that you may get some error message during iteration phase, you have to build project “epmc-graphsolver-iterative” manually. The reason is that currently Eclipse is not able to automatically build C or C++ codes in those projects.

Release License

ShanghaiTech University
Open Source License

Copyright © 2019-2020 ShanghaiTech University
All rights reserved.

Developed by S3L lab at ShanghaiTech University (http://s3l.shanghaitech.edu.cn, Email: songfu@shanghaitech.edu.cn).

EPMC-PAMC is free for academic usage only. Any other use requires a license. As academic usage, we consider only work performed by researchers or students at institutions delivering academic degrees. In addition, the work or the worker may not be contracted by any non-academic institution.