main

EPMC is a model checker for probabilistic models. It is a successor of the model checker IscasMC which only focuses on PLTL model checking over MDP. EPMC supports Markov chains and Markov decision Processes (MDP), and properties specified in PCTL, PLTL and their combination PCTL*. It implements the efficient algorithm in particularly tuned to handle linear time properties, see the report for details. EPMC is written in Java, while including a few off-the-shelf components like SPOT on the server side. The web interface on the client side is written in HTML and JavaScript, such that EPMC enjoys full portability: it can be run from any machine with internet access and a browser, be it a laptop or a mobile phone.

The main characteristics of EPMC are the high modularity of the tool, the possibility to extend EPMC with plugins to add new functionalities, and its availability on multiple platforms. EPMC achieves its flexibility by an infrastructure that consists of a minimal core part and multiple plugins that is very convenient to develop a new model checker based on the core parts of EPMC.

EPMC is mainly developed in Java, but accesses a few libraries written in C/C++ to increase performance or to access well established legacy code. Its graphical user interface (GUI) is a single static webpage. The GUI communicates with the backend, where core functions (like model checking) and high-privilege operations (like file I/O) are realised.

- Discrete Time Markov Chains (DTMCs)
- Markov Decision Processes (MDPs)
- Continuous Time Markov Chains (CTMCs)
- Stochastic Multi-player games (SMGs)
- Probabilistic Parity Games (PPGs)

(All input models can be specified in the PRISM format and JANI format.)

- PCTL
- PLTL
- PCTL*
- CSL (in progress)
- Transient Properties (in progress)
- Expected Rewards (in progress)

EPMC has three main components: the frontend web interface, the backend for handling requests from the frontend, and the model checker engine. A database engine is used to store information.

For more details, please visit here: Manual, structure of the tool.

- Download: EPMC is now available publicly. It can be obtained on GitHub, at this repository.

Please follow our wiki documentations to build and use EPMC. - Online version of EPMC is available here. Screenshot of EPMC online:

This tool is for model checking probabilistic multiagent systems with respect to the probabilistic epistemic logic PETL, which can specify both temporal and epistemic properties. We consider memoryless uniform schedulers in this problem, and the basic idea is to reduce the model checking problem into a mixed integer non-linear programming problem, which can then be solved by using an SMT solver. For more information, please check https://www.ijcai.org/proceedings/2018/661.

This tool is implemented as a plugin in ePMC. The source code can be found at https://github.com/fuchen1991/epmc-petl. All the implementation details related to PETL model checking are under “epmc-petl/plugins/propertysolver-petl”. And you can find the experiment files used in the paper under “experiment_files”. For building, running and other information about ePMC, please visit https://github.com/liyi-david/ePMC.

To perform PETL model checking, please set the following options:

--property-solver propositional-explicit,operator-explicit,pctl-explicit-next,petl-explicit-knowledge,pctl-explicit-until-uniform --prism-flatten false --model-input-type mas --property-input-type petl --smtlib-command-line z3 -smt2 {0} --smtlib-version v25 --constraintsolver-solver smt-lib --model-input-files /path/to/your-model /path/to/your-equivalence-relation --property-input-files /path/to/your-property

You need to prepare 3 files: one for the model, one for equivalence relations, and one for properties.

The models should be in the PRISM format(http://www.prismmodelchecker.org/manual/ThePRISMLanguage). Note that we redefine the composition of the modules to make the agents all take one local action in each transition, so the transitions from different modules will not synchronize according to the parallel composition operator.

The equivalence relations are described in this format:

equiv agent1 -- formula1; -- formula2; ...... equiv end equiv agent2 -- formula1; -- formula2; ...... equiv end ...... ......

Each agent in the model has a “equiv (agent name) … equiv end” block, and each block contains a set of formulas. You can use the variables used in the model. All the states satisfying the same formula are regarded as equivalent by the agent. So you can not write formulas such that one state satisfies two or more formulas. If one state can not satisfy any formula, it’s not equivalent to any other states.

The knowledge properties are described like this:

K {agent} (state_formula) E/C/D {agent1,..., agentn} (state_formula)

Other properties can be described by the PRISM language(http://www.prismmodelchecker.org/manual/PropertySpecification).

Differential privacy is a framework for designing and analyzing privacy measures, which has become a gold standard in data privacy. In this tool, the branching time temporal logic dpCTL is developed for specifying differential privacy. Several differentially private mechanisms are formalized as Markov chains or Markov decision processes. Using formal models, subtle privacy conditions are specified by dpCTL. In order to verify privacy properties automatically, model checking problems are investigated. We implement a model checking algorithm for Markov chains and for MDPs, it's shown to be undecidable.

Our tool is built as a plugin of the model checker EPMC, and now is publicly available on GitHub at this repository. It now supports input files consisting of models and properties (both in the standard prism format.) For more information on how to use the tool, please refer to this page How to use the tool.

The following are projects related to EPMC:

- EPMC-PAMC: A model checker for probabilistic alternating-time Mu-Calculus.
- ROLL: A learning based tool for models inferring.

main.txt · Last modified: 2021/02/26 14:41 by clexma