Overview of ETMCC

Background
Case Studies
Tool Architecture
More Information
Literature

Background

Markov chains are widely used as adequate models in many diverse areas, ranging from mathematics and computer science to other disciplines such as operations research, industrial engineering, biology and demographics. Markov chains can be used to estimate performance characteristics of various nature, for instance to quantify throughput of manufacturing systems, locate bottlenecks in communication systems, or to estimate reliability in aerospace systems.

Model checking is a very successful technique to establish the correctness of systems from similar application domains, usually described in terms of a non-deterministic finite-state model. If non-determinism is replaced by randomized, i.e. probabilistic decisions, the resulting model boils down to a finite-state discrete-time Markov chain (DTMC). For these models, a number of qualitative and quantitative model checking algorithms have been proposed. In a qualitative setting it is checked whether a property holds with probability 0 or 1; in a quantitative setting it is verified whether the probability for a certain property meets a given lower or upper bound. PCTL [5] is a representative of the latter kind. It is an extension of CTL [4], allowing one to specify and verify properties such as `After a system failure, the probability that the system will not come up again is at most 10-6.''

Markov chains are memoryless. In the discrete-time setting this is reflected by the fact that probabilistic decisions do not depend on the outcome of decisions taken earlier, only the state currently occupied is decisive to completely determine the probability of next transitions. For continuous-time Markov chains (CTMCs), where time ranges over (positive) reals (instead of discrete subsets thereof) the memoryless property further implies that the probabilities of taking next transitions do not depend on the amount of time spent in the current state. DTMCs are mostly applied to strictly synchronous scenarios, while CTMCs have shown to fit in well with (interleaving) asynchronous scenarios. In particular, CTMCs are the underlying semantic model of major high-level performance modelling formalisms such as stochastic Petri nets, stochastic automata networks, stochastic process algebras, Markovian queueing networks, and various extensions thereof.

Recently, the logic CSL has been proposed [1,3], an extension of both PCTL and CTL tailored to quantitative properties of CTMCs. Apart from CTL and PCTL properties, a selection of typical properties that can be verified using this logic is:

ETMCC, the Erlangen-Twente Markov Chain Checker, is the first implementation of a model checker for DTMCs and CTMCs. It uses numerical methods to model check PCTL and CSL-formulas, based on [5,3,2]. Apart from standard graph algorithms, model checking CSL involves matrix-vector multiplications, solutions of linear systems of equations, and solutions of systems of Volterra integral equations. Linear systems of equations are solved iteratively by standard numerical methods [12]. Two alternatives to solve systems of integral equations are implemented: One is based on piecewise integration of discretized distribution functions, the other is based on uniformisation [2]. Uniformisation is the default option, because it allows the tool to a priori calculate the computational effort needed to check a given property. This effort depends on the numerical parameters of the current model, on the property to be checked, and on the required numerical precision  (the latter is a parameter set by the user).

ETMCC is a global model checker, i.e. it checks the validity of a formula for all states in the model. It has been developed such that it can easily be linked to a wide range of existing high-level modelling tools based on, for instance, stochastic process algebras, stochastic Petri nets, or queueing networks. A whole variety of such tools exists [6], most of them using dedicated formats to store the transition matrix R of the Markov chain that is obtained from a high-level specification. This matrix encodes the probabilistic behaviour of the system as time passes. Together with a labelling function L, which associates the states of the Markov chain with sets of atomic propositions, the matrix R constitutes the interface between the high-level formalism at hand and the model checker. Currently, the tool accepts DTMCs and CTMCs represented in a format generated by the stochastic process algebra tool TIPPTOOL [11] and by the stochastic Petri net tool DaNAMiCS (developed by the Department of Computer Science of the University of Cape Town, South Africa),  but the tool is designed in such a way that it can easily bridge to various other input formats.

Background
Case Studies
Tool Architecture
More Information
Literature

Case Studies

Even though the tool is still a prototype, it has already been used in a number of nontrivial case studies, including
Background
Case Studies
Tool Architecture
More Information
Literature

Tool Architecture

The tool has been written entirely in JAVA (version 1.2), in order to provide platform independence and to enable fast and efficient program development. Furthermore, support for the development of graphical user interfaces as well as grammar parsers is at hand. For the sake of simplicity, flexibility and extensibility we abstained from low-level optimizations, such as minimization of object invocations. The design and implementation took approximately 20 man-months, with about 11000 lines of code for the kernel and 1500 lines of code for the GUI implementation, using the SWING library. The tool architecture consists of five components:
Graphical User Interface
The GUI enables the user to load, modify and save verification projects. Each project consists of a model R, a labelling L, and the properties to be checked. The GUI contains the `CSL Property Manager' which allows the user to construct and edit CSL-formulas. The GUI also prints results and additional logging information on screen or writes them into file. Several verification parameters for the numerical analysis, such as solution method, precision, and number of interpolation points for the piecewise integration, can be set by the user.
Tool Driver
controls the model checking procedure. It generates the parse tree corresponding to a given CSL property. Subsequent evaluation of the parse tree issues calls to the respective verification objects that encapsulate the verification sub-algorithms. These objects, in turn, use the analysis and/or numerical engine.
Analysis Engine
is the engine that supports standard model checking algorithms for CTL-style until-formulas, as well as graph algorithms, for instance to compute the bottom strongly connected components of a Markov chain. The former algorithms are very useful in a pre-processing phase during the checking of probabilistic until-formulas (they may help to avoid many numerical calculations), while the latter is needed when calculating long-run average properties.
Numerical Engine
is the numerical analysis engine of the tool. It provides several methods for the numerical solution of linear systems, for numerical integration, and for uniformisation. These are used to solve sytems of linear or integral equations on the basis of parameters provided by the user via the GUI.
State Space Manager
represents DTMCs and CTMCs in a uniform way. In fact, it provides an interface between the various checking and analysis components and the way in which DTMCs and CTMCs are actually represented. This eases the use of different, possibly even symbolic (i.e. BDD-based) state space representations. It is designed to support input formats of various kinds, by means of a simple plug-in-functionality (using Java's dynamic class loading capability). It maintains information about the validity of atomic propositions and of sub-formulas for each state, encapsulated in a `Sat' sub-component. After checking a sub-formula, this sub-component stores the results, to be used later. In the current version of the tool, the state space is represented as a sparse matrix [12]. All real values are stored in the IEEE 754 floating point format with double precision (64 bit). Background
Case Studies
Tool Architecture
More Information
Literature

More Information

More information about ETMCC is available here.


Background
Case Studies
Tool Architecture
More Information
Literature

Literature

1
A. Aziz, K. Sanwal, V. Singhal and R. Brayton.
Verifying continuous time Markov chains.
In Computer Aided Verification, CAV 96, Springer LNCS 1102: 269-276, 1996.

2
C. Baier, B.R. Haverkort, H. Hermanns and J.-P. Katoen.
Model checking continuous-time Markov chains by transient analysis.
In Computer Aided Verification, CAV 2000, Springer LNCS 1855: 358-372, 2000.

3
C. Baier, J.-P. Katoen and H. Hermanns.
Approximate symbolic model checking of continuous-time Markov chains.
In CONCUR 99, Springer LNCS 1664: 146-162, 1999.

4
E.M. Clarke, E.A. Emerson and A.P. Sistla.
Automatic verification of finite-state concurrent systems using temporal logic specifications.
ACM Tr. on Progr. Lang. and Sys., 8(2): 244-263, 1986.

5
H. Hansson and B. Jonsson.
A logic for reasoning about time and reliability.
Form. Asp. of Comp., 6(5): 512-535, 1994.

6
B.R. Haverkort and I.G. Niemegeers.
Performability modelling tools and techniques.
Performance Evaluation 25: 17-40, 1996.

7
H. Hermanns, J.P. Katoen, J. Meyer-Kayser and M. Siegle.
A Markov Chain Model Checker.
In TACAS 2000, Springer LNCS 1785: 347-362, 2000.

8
H. Hermanns.
Performance and reliability model checking and model construction.
In Formal Methods for Industrial Critical Systems, FMICS 2000, GMD Report 91, pages 11-28, Berlin, April 2000.

9
B. Haverkort, H. Hermanns, and J.P. Katoen.
The Use of Model Checking Techniques for Quantitative Dependability Evaluation.
In IEEE Symposium on Reliable Distributed Systems, SRDS 2000, IEEE CS Press, October 2000.

10
H. Hermanns, J.P. Katoen, J. Meyer-Kayser, and M. Siegle.
Towards Model Checking Stochastic Process Algebra.
In IFM 2000, Springer LNCS 1945: 420-439, November 2000.

11
H. Hermanns, U. Herzog, U. Klehmet, V. Mertsiotakis and M. Siegle.
Compositional performance modelling with the TIPPTOOL.
Performance Evaluation, 39(1-4): 5-35, 2000.

12
W. Stewart.
Introduction to the Numerical Solution of Markov Chains.
Princeton Univ. Press, 1994.