SlideShare a Scribd company logo
1 of 6
Download to read offline
Implementing an ATL Model Checker tool using
Relational Algebra concepts
Florin Stoica
Department of Computer Science
Faculty of Sciences, “Lucian Blaga” University of Sibiu
Sibiu, Romania
florin.stoica@ulbsibiu.ro
Laura Florentina Stoica
Department of Computer Science
Faculty of Sciences, “Lucian Blaga” University of Sibiu
Sibiu, Romania
laura.cacovean@ulbsibiu.ro
Abstract—Alternating-Time Temporal Logic (ATL) is a
branching-time temporal logic that naturally describes
computations of open systems. An open system interacts with its
environment and its behavior depends on the state of the system
as well as the behavior of the environment. ATL model-checking
is a well-established technique for verifying that a formal model
representing such a system satisfies a given property. In this
paper we describe a new interactive model checker environment
based on algebraic approach. Our tool is implemented in client-
server paradigm. The client part allows an interactive
construction of ATL models represented by concurrent game
structures as directed multi-graphs. The server part embeds an
ATL model checking algorithm implemented using ANTLR and
Relational Algebra expressions translated into SQL queries. The
server side of our tool was published as a Web service exposing
its functionality to various clients through standard XML
interfaces.
Keywords—ATL model checking; ANTLR; SQL; Web services;
Relational Algebra
I. INTRODUCTION
ODEL checking is a technology widely used for the
automated system verification and represents a
technique for verifying that finite state systems satisfy
specifications expressed in the language of temporal logics.
Main concern of formal methods in general, and model
checking in particular, is helping to design correct systems.
Detecting and eliminating bugs as early in the design cycle as
possible is clearly an economic imperative.
The compositional modelling and design of reactive
systems requires each component to be viewed as an open
system [9].
An open system is a system that interacts with its
environment and whose behaviour depends on the state of
the system as well as the behaviour of the environment. In
order to construct models suitable for open systems, the
Alternating-time Temporal Logic (ATL) was defined [1].
ATL represents an extension of computation tree logic
(CTL), which is interpreted over concurrent game structures
(CGS).
ATL defines cooperation modalities of the form A φ
(where A is a group of agents). Informally, A φ means
that agents A have a collective strategy to enforce φ,
regardless of the actions of all the other agents [6].
The model checking problem for ATL is to determine
whether a given model satisfies a given ATL formula.
A. Related work
ATL has been implemented in several symbolic tools for
the analysis of open systems.
MOCHA [2] is a verification environment for the modular
verification of heterogeneous systems. The input language of
MOCHA is a machine readable variant of reactive modules.
Reactive modules provide a semantic glue that allows the
formal embedding and interaction of components with
different characteristics [2].
MCMAS [10] is a symbolic model checker specifically
tailored to agent-based specifications and scenarios. MCMAS
supports specifications based on CTL and ATL, implements
OBDD-based algorithms optimized for interpreted systems
and supports fairness, counter-example generation, and
interactive execution (both in explicit and symbolic mode).
MCMAS has been used in a variety of scenarios including
web-services, diagnosis, and security.
MCMAS takes a dedicated programming language called
ISPL (Interpreted Systems Programming Language) as model
input language. An ISPL file fully describes a multi-agent
system (both the agents and the environment).
B. Comparing Symbolic and Explicit Model Checking
Two most common methods of performing model
checking are explicit enumeration of states of the model and
respectively the use of symbolic methods.
Symbolic model checkers analyse the state space
symbolically using Ordered Binary Decision Diagrams
(OBDDs), which were introduced in [11]. The binary decision
diagram is a data structure for representing Boolean functions.
With appropriate labelling of each state of the CGS structure,
any expression on the Boolean variables represents a set of
states of the structure. In contrast with explicit-state model
checking, states in symbolic model checking are represented
implicitly, as a solution to a logical equation. This approach
saves space in memory since syntactically small equations can
represent comparatively large sets of states [12]. A symbolic
M
model checker represents the CGS structure itself
symbolically using OBDDs to represent transition relations by
Boolean expressions. The key to symbolic model checking is
to perform all calculations directly using these Boolean
expressions, rather than using the CGS structure explicitly.
An efficient representation of the CGS structures using
OBDDs can potentially allow much larger structures to be
checked.
In the following we will present a short justification for the
choice of the explicit-state model technique.
In [13] is presented a comparison between RULEBASE, a
symbolic model checker developed at IBM Haifa Research
Laboratory and the explicit LTL (Linear Temporal Logic)
model checker SPIN [14]. The software verified was a
distributed storage subsystem software application. The state
space size handled by SPIN was 108
in a 3-process model.
Using symbolic model checking, RULEBASE keeps a
compressed representation of the state space and thus was able
to manage 10150
states. On the other hand, because of the limit
on state size, RULEBASE could not represent a state large
enough to include the information needed for more than 2-
process configuration [13].
Most hardware designs are based on a clocked-approach
and thus are synchronous. For these systems, the symbolic
model checking approach is more appropriate [15].
On the other hand, for nondeterministic, high-level models
of hardware protocols, it has previously been argued that
explicit model checking is better than symbolic model
checking [17]; this is because the communication mechanisms
inherent in protocols tend to cause the BDDs in symbolic
model checking to blow up [16].
In their basic form, symbolic approaches tend to perform
poorly on asynchronous models where concurrent interleaving
are the main source of explosion of the BDD representation,
and explicit-state model-checkers have been the preferred
approach for such models [16].
Concurrent software is asynchronous as the different
components might be running on different processors or be
interleaved by the scheduler of the operating system. Taking
into account the above considerations, in our tool we are using
an explicit-state model technique.
C. Motivation and objective
The aim of our research was to develop a reliable, easy to
maintain, scalable model checker tool to improve applicability
of ATL model checking in design of general-purpose computer
software.
The most pressing challenge in model checking today is
scalability [12]. A model-checking tool must be efficient, in
terms of the size of the models it can reason about and the time
and space it requires, in order to scaling its verification ability
to handle real-world applications. Our tool is based on Web
Services technology to address the time constraints in
verification of large models.
In this paper we will present a model-checking
algorithm based on procedure from [1]. For a set A of
agents and a set Θ of states, implementation of almost all
ATL operators imply the computation of function Pre(A,
Θ) – the set of states from which agents A can enforce the
system into some state in Θ in one move [2]. Our main
contribution presented in this paper is the implementation
of function Pre(A,Θ) using Relational Algebra
expressions, translated then into SQL statements. Other
original approach is represented by the generation of an
ATL model checker using ANTLR (Another Tool for
Language Recognition) from our specification grammar of
ATL.
The ATL semantics is implemented in our model
checker tool by attaching of specific actions to grammatical
constructions within specification grammar of ATL. The
actions are written in target language of the generated
parser, in this case Java. These actions are incorporated in
source code of the parser and are activated whenever the
parser recognizes a valid syntactic construction in the
translated ATL formula.
The paper is organized as follows. In section 2 we present
the definition of the concurrent game structure. Section 3
defines the ATL syntax, and section 4 contains ATL semantics.
In section 5 is described the implementation of an ATL model
checker in ANTLR. In section 6 we introduce some relational
algebra concepts which are used in our implementation of the
ATL model checking algorithm. These concepts are applied in
section 7. A performance analysis of our ATL model checker is
made in section 8. Conclusions are presented in section 9.
II. THE CONCURRENT GAME STRUCTURE
A concurrent game structure is defined in [1] as a tuple
S=Λ,Q,Γ,γ,M,d,δ with the following components: a
nonempty finite set of all agents Λ = {1, …, k}; a finite set of
states Q; a finite set of propositions (or observables) Γ; the
labelling (or observation) function γ; a nonempty finite set of
moves M; the alternative moves function d and the transition
function δ. For each state q∈Q, γ (q) ⊆ Γ is the set of
propositions true at q. For each player a∈{1,…,k} and each
state q∈Q, the alternative moves function d: Λ×Q → 2M
associates the set of available moves of agent a at state q. In
the following, the set d(a,q) will be denoted by da(q). For each
state q∈Q, a tuple j1,…,jk such that ja∈da(q) for each player
a∈Λ, represents a move vector at q. We define the move
function D : Q →2M
, with M the set of all move vectors
such that D(q)⊆d1(q)×…×dk(q)is the set of move vectors at q.
We write
( )a a
q Q
D d q
∈
=  (1)
for the set of available moves of agent a within the game
structure S.
The transition function δ(q,j1,…,jk), associates to each state
q∈Q and each move vector j1,…,jk ∈ D(q) the state that
results from state q if every player a∈{1,…,k} chooses move
ja.
A computation of S is an infinite sequence λ =q0, q1,… such
that qi+1 is the successor of qi , ∀i ≥ 0 [1]. A q-computation is
a computation starting at state q.
For a computation λ and a position i ≥0, we denote by λ [i],
λ [0,i], and λ [i,∞] the i-th state of λ, the finite prefix q0,
q1,…,qi of λ, and the infinite suffix qi , qi+1 … of λ, respectively
[1].
III. ATL SYNTAX
We denote by FS
(A) the set of all syntactically correct
ATL formulas, defined over a concurrent game structure S and
a set of agents A ⊆ Λ.
Each formula from FS
(A) can be obtained using the following
rules:
(R1) if p∈Γ then p∈ FS
(A);
(R2) if {φ, φ1, φ2} ⊆ FS
(A) then {¬ φ, φ1∨φ2} ⊆ FS
(A);
(R3) if {φ, φ1, φ2} ⊆ FS
(A) then {A ○ φ, A □ φ,
A φ1 U φ2} ⊆ FS
(A).
The logic ATL is similar to the branching time temporal
logic CTL, with difference that path quantifiers are
parameterized by sets of players from Λ. The operator   is a
path quantifier, and ○ (‘next’), □ (‘always’),  (‘future’) and U
(‘until’) are temporal operators. A formula A φ expresses
that the team A has a collective strategy to enforce φ [5].
Boolean connectives can be defined from ¬ and ∨ in the usual
way. The ATL formula A  φ is equivalent with A true
U φ.
IV. ATL SEMANTICS
Consider a game structure S=Λ,Q,Γ,γ,M,d,δ with
Λ={1,…,k} the set of players.
A strategy for player a∈Λ is a function fa: Q+
→Da that
maps every nonempty finite state sequence λ=q0q1…qn, n≥0,
to a move of agent a denoted by fa(λ)∈Da ⊆ M. Thus, the
strategy fa determines for every finite prefix λ of a
computation a move fa(λ) for player a in the last state of λ.
Given a set A ⊆ {1,…,k} of players, the set of all
strategies of agents from A is denoted by FA ={ fa | a∈ A }.
The outcome of FA is defined as Fout A
: Q → P(Q+
), where
( )Fout qA
represents q-computations that the players from A
are enforcing when they follow the strategies from FA. In the
following, for ( )Fout qA
we will use the notation ( , )out q FA .
A computation λ=q0,q1,q2,… is in ( , )out q FA
if q0=q and for
all positions i≥0, there is a move vector j1,…,jk ∈ D(qi) such
that [1]:
• ja=fa(λ[0,i]) for all players a∈ A, and
• δ(qi, j1,…,jk)= qi+1.
For a game structure S, we write q⊨ϕ to indicate that the
formula ϕ is satisfied in the state q of the structure S.
For each state q of S, the satisfaction relation ⊨ is defined
inductively as follows:
• for p∈ Γ, q⊨ p ⇔ p∈ γ(q)
• q⊨¬ϕ ⇔ q⊭ ϕ
• q⊨ ϕ1∨ϕ2 ⇔ q⊨ ϕ1 or q⊨ ϕ2
• q⊨ A ○ φ ⇔ there exists a set FA of strategies, such
that for all computations λ∈out(q, FA), we have λ[1] ⊨
ϕ (the formula ϕ is satisfied in the successor of q
within computation λ).
• q⊨ A □ φ ⇔ there exists a set FA of strategies,
such that for all computations λ∈out(q, FA), and all
positions i≥0, we have λ[i] ⊨ ϕ (the formula ϕ is
satisfied in all states of computation λ).
• q⊨ A φ1 U φ2 ⇔ there exists a set FA of strategies,
such that for all computations λ∈out(q, FA), there
exists a position i≥0 such that λ[i] ⊨ ϕ2 and for all
positions 0≤j<i, we have λ[j] ⊨ ϕ1.
V. IMPLEMENTATION OF A MODEL CHECKER IN
ANTLR
From a formal point of view, implementation of an ATL
model checker will be accomplished through the
implementation of an algebraic compiler [8] C which
translates the ATL formula ϕ to the set of nodes Q' over which
formula ϕ is satisfied. That is, C(ϕ)=Q' where Q'={q∈Q| q⊨
ϕ}.
We choose the ANTLR (Another Tool for Language
Recognition) for implementation of the algebraic compiler.
ANTLR [7] is a compiler generator which takes as input a
grammar, and generates a recognizer for the language defined
by the grammar.
Translation of a formula ϕ of an ATL model to the set of
nodes Q' over which formula ϕ is satisfied is accomplished by
attaching of specific actions to grammatical constructions
within specification grammar of ATL. These actions are
written in Java, the target language of the generated parser.
When ANTLR generates code using our ATL grammar as
input, these actions are incorporated in the source code of the
parser and are activated whenever the parser recognizes a
valid syntactic construction in the translated ATL formula. In
case of the algebraic compiler C, the attached actions define
the semantics of the ATL model checker, i.e., the
implementation of the ATL operators.
The model checker generated by ANTLR from our ATL
specification grammar takes as input the model (a concurrent
game structure) and the formula to be verified, and provides as
output the set of states where the formula is satisfied.
The algebraic compiler C implements the following ATL
model checking algorithm [4], [1]:
Algorithm 1. ATL model checking algorithm
Input: the concurrent game structure S and the formula ϕ
Output: Q'={q∈Q| q ⊨ ϕ} – the set of states where the formula ϕ is
satisfied.
function EvalA(ϕ) as set of states ⊆ Q
case ϕ=p: return [p] = {q ∈ Q | p ∈ γ(q)};
case ϕ= ¬θ: return QEvalA(θ);
case ϕ=θ1∨θ2: return EvalA(θ1)∪ EvalA(θ2);
case ϕ=θ1∧θ2: return EvalA(θ1) ∩ EvalA(θ2) );
case ϕ=θ1→θ2: return ( QEvalA(θ1) ) ∪ EvalA(θ2);
case φ =A○θ: return Pre(A,EvalA(θ));
case φ =A□θ:
ρ:=Q; τ:= EvalA(θ); τ0:= τ;
while ρ ⊈ τ do
ρ := τ; τ:=Pre(A, ρ)∩τ0;
wend
return ρ;
case φ = A θ1 U θ2:
ρ:= ∅; τ:= EvalA(θ2); τ0:= EvalA(θ1);
while τ ⊈ ρ do
ρ := ρ ∪ τ; τ:=Pre(A, ρ)∩τ0;
wend
return ρ;
end function
The corresponding action included in the ANTLR
grammar of ATL language for implementing the □ operator is:
’<<A>> #’ f=formula
{
HashSet r=new HashSet(all_SetS);
HashSet p=$f.set;
while (!p.containsAll(r))
{
r=new HashSet(p);
p=Pre(r);
p.retainAll($f.set);
}
$set=r;
}
For the □ ATL operator we use in ANTLR the # symbol.
Also, we denote the  ATL operator with ~ symbol and the ○
operator is replaced by @ symbol.
In our implementation the all_Set is Q, and means all
states of the model. The formula represents a term from a
production of the ATL grammar and variables p, r and f are
sets used in the internal implementation of the algebraic
compiler.
In case of large ATL models, with many states and agents,
it is very important for the model checker tool to have an
efficient implementation for Pre(A, ρ) function – the set of
states from which agents A can enforce the system into some
state in ρ in one move – which appears in several ATL
operators. In the following, we made a formalization of the
Pre() function using Relational Algebra (RA) concepts. Then,
we will translate the obtained relational algebra expression into
a SQL statement, which represents a concise implementation of
the Pre() function, ready to be executed using a very efficient
query optimizer on a database server.
VI. RELATIONAL ALGEBRA CONCEPTS
In the following we present all Relational Algebra
concepts used in our algorithm described in the next section.
More detailed aspects can be found in [3].
In order to introduce the following definitions, we assume
that a set D of data types is given, and for each D ∈ D, the
set of possible values of data type D is denoted by val(D),
which is also known as the domain of D. A relation schema RS
defines a (finite) sequence A1, . . . , An of distinct attribute
names. The set of given attribute names will be denoted by A
= { A1, . . . , An}. Each attribute Ak has a data type Dk, and a set
of possible values represented by val(Dk), 1,k n= . A relation
schema RS may be written as RS = (A1 : D1, . . ., An : Dn).
A tuple t with respect to the relation schema RS = (A1 : D1,
. . . , An : Dn) is a sequence (d1, . . . , dn) of n values such that di
∈ val(Di ), 1,i n= . Relations are sets of tuples.
The Relational Algebra (RA) consists from the set of all
finite relations over which are defined some operations. A
query is an expression in the RA. The operations of RA can be
nested to arbitrary depth such that complex queries can be
evaluated. The final result will be a relation.
For the purpose of this paper, in the following we present
from the set of RA operations only selection, projection (with
renaming) and cartesian product.
The selection is denoted by σ and is parameterized by a
simple predicate ω. The operation σω acts like a filter and
selects a subset of the tuples of a relation, namely those which
satisfy the predicate ω.
For a given relation R and a predicate ω, the expression
σω(R) corresponds to the following SQL query: select distinct
* from R where ω.
The projection πL eliminates all attributes of the input
relation excepting those mentioned in the list L. If
1
, , mi iL A A= … the projection πL(R) produces for each input
tuple( )1 1: , , :n nA d A d… an output tuple 1 1
( : , , : )m mi i i iA d A d… .
There are two useful generalized projection operators. The
first one is used to provide attribute renaming: 1 1
, ,i m im
B A B Aπ ← … ← .
The projection 1 1
, , ( )i m im
B A B A Rπ ← … ← provide for each input
tuple ( )1 1: , , :n nA d A d… an output tuple 11( : , , : )mi m iB d B d… .
The second generalized π operator is using computations
to derive the values in new columns: ' '
|| @ ||
( )EMAIL Account Domain
Eπ ←
where || operator represents string concatenation.
The relational algebra expression 1 , , ( )mA A Rπ … corresponds
to the SQL query: select distinct 1, , mA A… from R and for the
expression 1 1 , , ( )m mB A B A Rπ ← … ← the equivalent SQL query is
select distinct 1 1 m m, ,A as B A as B… from R.
In general, queries need to combine values from several
relations. In RA, such queries are formulated using the
Cartesian product, denoted by symbol ×. The Cartesian
product R × V of two relations R, V is computed by
concatenating each tuple r ∈ R with each tuple v ∈ V.
If ( )1 1: , , :n nr A a A a= … and ( )1 1: , , :m mv B b B b= … then
( )1 1 1 1: , , : , : , , :n n m mr v A a A a B b B b• = … … where • denotes
tuple concatenation. The attribute names must be unique
within a tuple r v• . R × V can be computed by the equivalent
SQL query: select R.*, V.* from R, V.
The unique column name restriction is solved in SQL
easily: a common attribute A of relations R and V may
uniquely be identified by R.A respectively V.A.
In RA, this solution is formalized by the renaming operator
ρx(R). If R is a relation with schema
( ) ( )1 1: , , :n nsch R A D A D= … , then using the renaming
operator ( ) 1 1. , , . ( )n nx x A A x A AR Rρ π ← … ←= is obtained a relation
with schema ( )1 1. : , , . :n nx A D x A D… .
Because the combination of Cartesian product and
selection in queries is frequently, a special operator join has
been introduced, denoted by ⋈θ: R ⋈θ V ≡ σθ (R × V), where
the join predicate θ may refer to attribute names of R and V.
The join operator combines tuples from two relations and
acts like a filter, removing tuples without join partner.
In SQL language, the relational algebra expression R ⋈θ V
can be written as: select * from R join V on θ.
The left outer join operator denoted by θ, preserves all
tuples in its left argument, even if a tuple does not fit with a
partner in the join.
VII. USING RELATIONAL ALGEBRA IN MODEL CHECKING
ALGORITHM
For a concurrent game structure S presented in section 2,
can be defined a directed multi-graph GS = (X,U), where X=Q,
and (b,e) ∈ U ⇔ ∃ j1,…,jk ∈ D(b) such as δ(b,j1,…,jk) = e.
The labelling function for the graph GS is defined as follows:
L:U → M , ∀ u = (b,e) ∈ U, L(u) = j1,…,jk, where
δ(b,j1,…,jk) = e.
We define the relation schema (B:QB, M1:D1, …, Mk:Dk,
E:QE) where QB = {b ∈ Q | ∃ e ∈ Q such as (b, e) ∈ U}, QE =
{e ∈ Q | ∃ b ∈ Q such as (b, e) ∈ U} and Di, i ∈ {1, …, k} =
Λ was defined in (1), such as if RS is a relation name with
schema defined above, (B:b, M1:j1, …, Mk:jk, E:e) ∈ RS ⇔
j1,…,jk = L((b,e)).
For a set A of m agents, A ⊆ Λ, A = {i1, …, im}, we
define
1
, , , ,) ( )( i im
S B M M E SR Rπ …=A where , {1, , }li l m∈ ∈ …A
and
1
, ,) ( )(( )i im
L B LABEL M M E SR Rπ ← °…°=A A where the operator °
can be defined as follows: i ° j = i || ',' || j.
For a set Θ ⊆ QE, b ∈ Pre(A, Θ) ⇔
∃ , , 1( ) ,l li i lj d i mb l∈ ∈ =A and ∃ e ∈ Θ such as
1
, ), (( )mi i Sb j ,…, j e R∈ A and ∄e'∈QE  Θ such as
1
( ( )')mi i Sb, j ,…, j ,e R∈ A .
With other words, b ∈ Pre(A, Θ) ⇔ ∃
, , 1( ) ,l li i lj d i mb l∈ ∈ =A such as:
1 1
: , , : {( : )| }( )m mE i i i i EB b M : j ,…,M : j E Q E e eπ = ∈Θ
In the following, the set of states QE  Θ is denoted by Q .
Now we can design an algorithm to compute the function
Pre(A, Θ) using RA expressions:
Algorithm 2. Computing ( , )Pre A Θ function using relational
algebra expressions
Step1
, ( ) ) ( )( ( )B LABEL E L LR Rπ σ ∈Θ
Θ
=A A
, ( ) ) ( )( ( )B LABEL L LE
R Rπ σ Θ
Θ∈
=A A
Step2
( )( )LRxρ Θ
A ,
( ( )) ( )L LR Ryρ Θ Θ Θ
=A A
. . . .x B y B x LABEL y LABEL= ∧ =
Step 3
, ,
. . , . ( )) (( ( )) null
LABEL null L LLABELy x B y R Rσ π Θ Θ
=
Θ
=A A
Step 4
,
.( , ) ( ( ))null
x B LPre Rπ Θ
Θ =A A
The above algorithm can be implemented in SQL language as
follows:
Algorithm 3. Computing ( , )Pre ΘA function using SQL
statements
select distinct B from (
select distinct x.B, y.LABEL from (
select distinct B, LABEL from model
where E in Θ
) x
left join (
select distinct B, LABEL from model
where E not in Θ
) y
on x.B = y.B and x.LABEL = y.LABEL
where y.LABEL is null
) z
VIII. PERFORMANCE ANALYSIS OF THE ATL MODEL CHECKER
In this section we evaluate the effectiveness of our approach in
designing and implementing an ATL model checker and we
report some experimental results.
We encoded the Tic-Tac-Toe (TTT) game in the
formalism of concurrent game structures. The game is played
by two opponents with a turn-based modality on a 3×3 board.
The two players take turns to put pieces on the board. A single
piece is put for each turn and a piece once put does not move.
A player wins the game by first lining three of his or her
pieces in a straight line, no matter horizontal, vertical or
diagonal.
We consider the computer playing TTT game with a user
(human) and the ATL model checking algorithm is used to
achieve a winning strategy for the computer.
Due to the relatively large size of the structure representing
the ATL model at the first moves, playing the TTT game
represents a good opportunity to study the impact of the used
technologies in the performance of our model checker.
For this purpose, were used two different database servers
to implement the Web service, namely MySql 5.5 and
respectively H2 1.3. The H2 database supports the in-memory
mode (the data is not persisted), well suited for high
performance operations.
The major impact on performance of the ATL model
checker is represented by the efficiency of the function Pre(),
which was presented in detail in section 7. Its implementation
is based exclusively on the database server used.
In table I are presented the results showing the
performance of our ATL model checker related to the database
server used:
TABLE I.
PERFORMANCE OF THE ATL MODEL CHECKER RELATED TO THE
DATABASE SERVER
Total time necessary to determine the
winning strategy (Tic-Tac-Toe game) - Intel
Core I5, 2.5 GHz, 4Gb RAM
Number of
states
MySQL 5.5
(seconds)
H2 1.3
(seconds)
4791 ≈1.86 ≈1.33
4255 ≈1.62 ≈1.17
3732 ≈1.41 ≈0.99
3423 ≈1.24 ≈0.90
3683 ≈1.21 ≈0.85
2307 ≈0.86 ≈0.58
2236 ≈0.75 ≈0.56
In [18] the Tic-Tac-Toe was implemented in the Reactive
Modules Language (RML). RML is the model description
language of the ATL model checker MOCHA, which was
developed by Alur et al. (Alur et al., 1998). Experimental
results showed that the time necessary to find a winning
strategy for a player, on a configuration with a Dual-Core
1.8Ghz CPU, was 1 minute and 6 seconds. Running on the
same configuration, our ATL checker tool is able to find a
winning strategy in about 4 seconds using MySql as a
database server and 3 seconds when H2 Server was used.
IX. CONCLUSION
In this paper we built an ATL model checking tool, based on
Java code generated by ANTLR using an original ATL
attribute grammar which implements the ATL semantics using
semantic actions. The main contribution of this paper consists
in implementation of ATL operators using Relational Algebra
expressions translated into SQL queries.
The C# implementation of the client part of our new tool
(ATL Designer) allows an interactive graphical specification
of the ATL model as a directed multi-graph.
The server component of our tool (ATL Checker) was
published as a Web service, exposing its functionality through
standard protocols.
As the experimental results showed, the in-memory
databases represent a promising technology for our ATL
model checker.
The ATL Designer, a ready to be deployed Web Service
package for Tomcat 7.x and the ATL API Client libraries for
Java and C# can be downloaded from http://use-it.ro.
REFERENCES
[1] R. Alur, T.A. Henzinger, and O. Kupferman, „Alternating-time
Temporal Logic”, Journal of the ACM, 49:672–713, 2002.
[2] R. Alur, T.A. Henzinger, F.Y.C. Mang, S. Qadeer, S.K. Rajamani, and
S. Tasiran, „Mocha: Modularity in Model Checking”, in Proceedings of
the Tenth International Conference on Computer-Aided
Verification (CAV), Lecture Notes in Computer Science 1427, Springer,
pp. 521-525, 1998.
[3] M. Herschel. (2010). Database Systems I. Database Systems Group,
University of Tübingen. Available: http://db.inf.uni-
tuebingen.de/teaching/ss10/db1/05_relational_algebra.pdf
[4] W. Jamroga, „Easy Yet Hard: Model Checking Strategies of Agents”,
Computational Logic in Multi-Agent Systems, Lecture Notes in
Computer Science, Volume 5405, Springer Berlin Heidelberg, pp. 1-12,
2009.
[5] W. Jamroga, and N. Bulling, „Comparing variants of strategic ability”,
in Proceedings of the Twenty-Second international joint conference on
Artificial Intelligence - Volume One, pp. 252-257, 2011.
[6] M. Kacprzak, and W. Penczek, „Fully symbolic Unbounded Model
Checking for Alternating-time Temporal Logic”, Journal Autonomous
Agents and Multi-Agent System, Volume 11 Issue 1, pp. 69 – 89, 2005.
[7] T. Parr, The Definitive ANTLR Reference, Building Domain-Specific
Languages, Pragmatic Bookshelf, Dallas Texas, ISBN 0-9787392-5-6,
2007.
[8] T. Rus, E.V. Wyk, and T. Halverson, „Generating Model Checkers from
Algebraic Specifications”, Journal Formal Methods in System Design
archive, Volume 20, Issue 3, pp. 249 – 284, 2002.
[9] W. Van Der Hoek, and M. Wooldridge, „Cooperation, Knowledge, and
Time: Alternating-time Temporal Epistemic Logic and its Applications”,
Studia Logica 75, Kluwer Academic Publishers, pp. 125-157, 2003.
[10] A. Lomuscio, F. Raimondi, Mcmas: A model checker for multi-agent
systems, in Proc. of TACAS 06, volume 3920 of Lect. Notes in Comp.
Sci., pp. 450-454, Springer-Verlag, 2006
[11] R. E. Bryant, Graph-based algorithms for boolean function
manipulation. IEEE Transactions on Computers, C-35(8):677-691, 1986.
[12] K.Y. Rozier, Survey: Linear Temporal Logic Symbolic Model
Checking, Computer Science Review, Volume 5 Issue 2, pp. 163-203,
2011.
[13] C. Eisner, D. Peled, Comparing Symbolic and Explicit Model Checking
of a Software System, In Proc. SPIN Workshop on Model Checking of
Software, volume 2318 of LNCS, Volume 55, pp. 230-239, 2002
[14] G. Holzmann, The model checker SPIN. IEEE Trans. on Software
Engineering 23, pp. 279–295, 1997.
[15] F. Lerda, N. Sinha, M. Theobald, Symbolic Model Checking of
Software, Electronic Notes in Theoretical Computer Science, Volume
89, Issue 3, pp. 480–498, 2003.
[16] B. Bingham, J. Bingham, F. M. de Paula, J. Erickson, G. Singh, M.
Reitblatt, Industrial Strength Distributed Explicit State Model Checking.
In Proceedings of the 2010 Ninth International Workshop on Parallel
and Distributed Methods in Verification, and Second International
Workshop on High Performance Computational Systems Biology
(PDMC-HIBI '10). IEEE Computer Society, Washington, DC, USA, pp
28-36, 2010
[17] A. J. Hu, Techniques for Efficient Formal Verification Using Binary
Decision Diagrams, PhD thesis, Stanford University, 1995.
[18] J. Ruan, Reasoning about Time, Action and Knowledge in Multi-Agent
Systems, Ph.D. Thesis, University of Liverpool,
http://ac.jiruan.net/thesis/., 2008.

More Related Content

What's hot

On the Choice of Models of Computation for Writing Executable Specificatoins ...
On the Choice of Models of Computation for Writing Executable Specificatoins ...On the Choice of Models of Computation for Writing Executable Specificatoins ...
On the Choice of Models of Computation for Writing Executable Specificatoins ...ijeukens
 
A report on designing a model for improving CPU Scheduling by using Machine L...
A report on designing a model for improving CPU Scheduling by using Machine L...A report on designing a model for improving CPU Scheduling by using Machine L...
A report on designing a model for improving CPU Scheduling by using Machine L...MuskanRath1
 
Information-Flow Analysis of Design Breaks up
Information-Flow Analysis of Design Breaks upInformation-Flow Analysis of Design Breaks up
Information-Flow Analysis of Design Breaks upEswar Publications
 
Query Decomposition and data localization
Query Decomposition and data localization Query Decomposition and data localization
Query Decomposition and data localization Hafiz faiz
 
Urban strategies to promote resilient cities The case of enhancing Historic C...
Urban strategies to promote resilient cities The case of enhancing Historic C...Urban strategies to promote resilient cities The case of enhancing Historic C...
Urban strategies to promote resilient cities The case of enhancing Historic C...inventionjournals
 
Towards a Concurrence Analysis in Business Processes
Towards a Concurrence Analysis in Business ProcessesTowards a Concurrence Analysis in Business Processes
Towards a Concurrence Analysis in Business ProcessesAnastasija Nikiforova
 
Verification of confliction and unreachability in rule based expert systems w...
Verification of confliction and unreachability in rule based expert systems w...Verification of confliction and unreachability in rule based expert systems w...
Verification of confliction and unreachability in rule based expert systems w...ijaia
 
Sca a sine cosine algorithm for solving optimization problems
Sca a sine cosine algorithm for solving optimization problemsSca a sine cosine algorithm for solving optimization problems
Sca a sine cosine algorithm for solving optimization problemslaxmanLaxman03209
 
Hybrid Multi-Gradient Explorer Algorithm for Global Multi-Objective Optimization
Hybrid Multi-Gradient Explorer Algorithm for Global Multi-Objective OptimizationHybrid Multi-Gradient Explorer Algorithm for Global Multi-Objective Optimization
Hybrid Multi-Gradient Explorer Algorithm for Global Multi-Objective OptimizationeArtius, Inc.
 
A Comparative Analysis of Slicing for Structured Programs
A Comparative Analysis of Slicing for Structured ProgramsA Comparative Analysis of Slicing for Structured Programs
A Comparative Analysis of Slicing for Structured ProgramsEditor IJCATR
 
Pareto Type II Based Software Reliability Growth Model
Pareto Type II Based Software Reliability Growth ModelPareto Type II Based Software Reliability Growth Model
Pareto Type II Based Software Reliability Growth ModelWaqas Tariq
 
Query decomposition in data base
Query decomposition in data baseQuery decomposition in data base
Query decomposition in data baseSalman Memon
 
BINARY SINE COSINE ALGORITHMS FOR FEATURE SELECTION FROM MEDICAL DATA
BINARY SINE COSINE ALGORITHMS FOR FEATURE SELECTION FROM MEDICAL DATABINARY SINE COSINE ALGORITHMS FOR FEATURE SELECTION FROM MEDICAL DATA
BINARY SINE COSINE ALGORITHMS FOR FEATURE SELECTION FROM MEDICAL DATAacijjournal
 
A Distributed CTL Model Checker
A Distributed CTL Model CheckerA Distributed CTL Model Checker
A Distributed CTL Model Checkerinfopapers
 
SEMANTIC STUDIES OF A SYNCHRONOUS APPROACH TO ACTIVITY RECOGNITION
SEMANTIC STUDIES OF A SYNCHRONOUS APPROACH TO ACTIVITY RECOGNITIONSEMANTIC STUDIES OF A SYNCHRONOUS APPROACH TO ACTIVITY RECOGNITION
SEMANTIC STUDIES OF A SYNCHRONOUS APPROACH TO ACTIVITY RECOGNITIONcscpconf
 
M03 2 Behavioral Diagrams
M03 2 Behavioral DiagramsM03 2 Behavioral Diagrams
M03 2 Behavioral DiagramsDang Tuan
 
Feature Selection Techniques for Software Fault Prediction (Summary)
Feature Selection Techniques for Software Fault Prediction (Summary)Feature Selection Techniques for Software Fault Prediction (Summary)
Feature Selection Techniques for Software Fault Prediction (Summary)SungdoGu
 
On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...
On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...
On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...Amir Ziai
 

What's hot (19)

Attribute based communication
Attribute based communicationAttribute based communication
Attribute based communication
 
On the Choice of Models of Computation for Writing Executable Specificatoins ...
On the Choice of Models of Computation for Writing Executable Specificatoins ...On the Choice of Models of Computation for Writing Executable Specificatoins ...
On the Choice of Models of Computation for Writing Executable Specificatoins ...
 
A report on designing a model for improving CPU Scheduling by using Machine L...
A report on designing a model for improving CPU Scheduling by using Machine L...A report on designing a model for improving CPU Scheduling by using Machine L...
A report on designing a model for improving CPU Scheduling by using Machine L...
 
Information-Flow Analysis of Design Breaks up
Information-Flow Analysis of Design Breaks upInformation-Flow Analysis of Design Breaks up
Information-Flow Analysis of Design Breaks up
 
Query Decomposition and data localization
Query Decomposition and data localization Query Decomposition and data localization
Query Decomposition and data localization
 
Urban strategies to promote resilient cities The case of enhancing Historic C...
Urban strategies to promote resilient cities The case of enhancing Historic C...Urban strategies to promote resilient cities The case of enhancing Historic C...
Urban strategies to promote resilient cities The case of enhancing Historic C...
 
Towards a Concurrence Analysis in Business Processes
Towards a Concurrence Analysis in Business ProcessesTowards a Concurrence Analysis in Business Processes
Towards a Concurrence Analysis in Business Processes
 
Verification of confliction and unreachability in rule based expert systems w...
Verification of confliction and unreachability in rule based expert systems w...Verification of confliction and unreachability in rule based expert systems w...
Verification of confliction and unreachability in rule based expert systems w...
 
Sca a sine cosine algorithm for solving optimization problems
Sca a sine cosine algorithm for solving optimization problemsSca a sine cosine algorithm for solving optimization problems
Sca a sine cosine algorithm for solving optimization problems
 
Hybrid Multi-Gradient Explorer Algorithm for Global Multi-Objective Optimization
Hybrid Multi-Gradient Explorer Algorithm for Global Multi-Objective OptimizationHybrid Multi-Gradient Explorer Algorithm for Global Multi-Objective Optimization
Hybrid Multi-Gradient Explorer Algorithm for Global Multi-Objective Optimization
 
A Comparative Analysis of Slicing for Structured Programs
A Comparative Analysis of Slicing for Structured ProgramsA Comparative Analysis of Slicing for Structured Programs
A Comparative Analysis of Slicing for Structured Programs
 
Pareto Type II Based Software Reliability Growth Model
Pareto Type II Based Software Reliability Growth ModelPareto Type II Based Software Reliability Growth Model
Pareto Type II Based Software Reliability Growth Model
 
Query decomposition in data base
Query decomposition in data baseQuery decomposition in data base
Query decomposition in data base
 
BINARY SINE COSINE ALGORITHMS FOR FEATURE SELECTION FROM MEDICAL DATA
BINARY SINE COSINE ALGORITHMS FOR FEATURE SELECTION FROM MEDICAL DATABINARY SINE COSINE ALGORITHMS FOR FEATURE SELECTION FROM MEDICAL DATA
BINARY SINE COSINE ALGORITHMS FOR FEATURE SELECTION FROM MEDICAL DATA
 
A Distributed CTL Model Checker
A Distributed CTL Model CheckerA Distributed CTL Model Checker
A Distributed CTL Model Checker
 
SEMANTIC STUDIES OF A SYNCHRONOUS APPROACH TO ACTIVITY RECOGNITION
SEMANTIC STUDIES OF A SYNCHRONOUS APPROACH TO ACTIVITY RECOGNITIONSEMANTIC STUDIES OF A SYNCHRONOUS APPROACH TO ACTIVITY RECOGNITION
SEMANTIC STUDIES OF A SYNCHRONOUS APPROACH TO ACTIVITY RECOGNITION
 
M03 2 Behavioral Diagrams
M03 2 Behavioral DiagramsM03 2 Behavioral Diagrams
M03 2 Behavioral Diagrams
 
Feature Selection Techniques for Software Fault Prediction (Summary)
Feature Selection Techniques for Software Fault Prediction (Summary)Feature Selection Techniques for Software Fault Prediction (Summary)
Feature Selection Techniques for Software Fault Prediction (Summary)
 
On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...
On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...
On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...
 

Similar to Implementing an ATL Model Checker tool using Relational Algebra concepts

BUSINESS PROCESS MODELED WITH BPMN AND CTL MODEL CHECKING
BUSINESS PROCESS MODELED WITH BPMN AND CTL MODEL CHECKINGBUSINESS PROCESS MODELED WITH BPMN AND CTL MODEL CHECKING
BUSINESS PROCESS MODELED WITH BPMN AND CTL MODEL CHECKINGIJCI JOURNAL
 
A novel methodology for test scenario generation based on control flow analys...
A novel methodology for test scenario generation based on control flow analys...A novel methodology for test scenario generation based on control flow analys...
A novel methodology for test scenario generation based on control flow analys...eSAT Publishing House
 
An Implementation on Effective Robot Mission under Critical Environemental Co...
An Implementation on Effective Robot Mission under Critical Environemental Co...An Implementation on Effective Robot Mission under Critical Environemental Co...
An Implementation on Effective Robot Mission under Critical Environemental Co...IJERA Editor
 
Modeling the Broker Behavior Using a BDI Agent
Modeling the Broker Behavior Using a BDI AgentModeling the Broker Behavior Using a BDI Agent
Modeling the Broker Behavior Using a BDI Agentinfopapers
 
UML2SAN: Toward A New Software Performance Engineering Approach
UML2SAN: Toward A New Software Performance Engineering ApproachUML2SAN: Toward A New Software Performance Engineering Approach
UML2SAN: Toward A New Software Performance Engineering Approachijseajournal
 
Minimal Testcase Generation for Object-Oriented Software with State Charts
Minimal Testcase Generation for Object-Oriented Software with State ChartsMinimal Testcase Generation for Object-Oriented Software with State Charts
Minimal Testcase Generation for Object-Oriented Software with State Chartsijseajournal
 
A SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHM
A SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHMA SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHM
A SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHMVLSICS Design
 
Generation and Optimization of Test cases for Object-Oriented Software Using ...
Generation and Optimization of Test cases for Object-Oriented Software Using ...Generation and Optimization of Test cases for Object-Oriented Software Using ...
Generation and Optimization of Test cases for Object-Oriented Software Using ...cscpconf
 
A practical approach for model based slicing
A practical approach for model based slicingA practical approach for model based slicing
A practical approach for model based slicingIOSR Journals
 
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...IJSEA
 
Operation's research models
Operation's research modelsOperation's research models
Operation's research modelsAbhinav Kp
 
Component Based Control System Design
Component Based Control System DesignComponent Based Control System Design
Component Based Control System DesignM Reza Rahmati
 
A New Model Checking Tool
A New Model Checking ToolA New Model Checking Tool
A New Model Checking Toolinfopapers
 
A formal conceptual framework
A formal conceptual frameworkA formal conceptual framework
A formal conceptual frameworkijseajournal
 
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTSMANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTSijseajournal
 
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic ijseajournal
 
A model for run time software architecture adaptation
A model for run time software architecture adaptationA model for run time software architecture adaptation
A model for run time software architecture adaptationijseajournal
 

Similar to Implementing an ATL Model Checker tool using Relational Algebra concepts (20)

BUSINESS PROCESS MODELED WITH BPMN AND CTL MODEL CHECKING
BUSINESS PROCESS MODELED WITH BPMN AND CTL MODEL CHECKINGBUSINESS PROCESS MODELED WITH BPMN AND CTL MODEL CHECKING
BUSINESS PROCESS MODELED WITH BPMN AND CTL MODEL CHECKING
 
A novel methodology for test scenario generation based on control flow analys...
A novel methodology for test scenario generation based on control flow analys...A novel methodology for test scenario generation based on control flow analys...
A novel methodology for test scenario generation based on control flow analys...
 
An Implementation on Effective Robot Mission under Critical Environemental Co...
An Implementation on Effective Robot Mission under Critical Environemental Co...An Implementation on Effective Robot Mission under Critical Environemental Co...
An Implementation on Effective Robot Mission under Critical Environemental Co...
 
Modeling the Broker Behavior Using a BDI Agent
Modeling the Broker Behavior Using a BDI AgentModeling the Broker Behavior Using a BDI Agent
Modeling the Broker Behavior Using a BDI Agent
 
UML2SAN: Toward A New Software Performance Engineering Approach
UML2SAN: Toward A New Software Performance Engineering ApproachUML2SAN: Toward A New Software Performance Engineering Approach
UML2SAN: Toward A New Software Performance Engineering Approach
 
D017311724
D017311724D017311724
D017311724
 
Minimal Testcase Generation for Object-Oriented Software with State Charts
Minimal Testcase Generation for Object-Oriented Software with State ChartsMinimal Testcase Generation for Object-Oriented Software with State Charts
Minimal Testcase Generation for Object-Oriented Software with State Charts
 
A SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHM
A SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHMA SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHM
A SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHM
 
Generation and Optimization of Test cases for Object-Oriented Software Using ...
Generation and Optimization of Test cases for Object-Oriented Software Using ...Generation and Optimization of Test cases for Object-Oriented Software Using ...
Generation and Optimization of Test cases for Object-Oriented Software Using ...
 
A practical approach for model based slicing
A practical approach for model based slicingA practical approach for model based slicing
A practical approach for model based slicing
 
4213ijsea02
4213ijsea024213ijsea02
4213ijsea02
 
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
 
Operation's research models
Operation's research modelsOperation's research models
Operation's research models
 
Component Based Control System Design
Component Based Control System DesignComponent Based Control System Design
Component Based Control System Design
 
A New Model Checking Tool
A New Model Checking ToolA New Model Checking Tool
A New Model Checking Tool
 
oracle-complex-event-processing-066421
oracle-complex-event-processing-066421oracle-complex-event-processing-066421
oracle-complex-event-processing-066421
 
A formal conceptual framework
A formal conceptual frameworkA formal conceptual framework
A formal conceptual framework
 
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTSMANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
 
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
 
A model for run time software architecture adaptation
A model for run time software architecture adaptationA model for run time software architecture adaptation
A model for run time software architecture adaptation
 

More from infopapers

Deliver Dynamic and Interactive Web Content in J2EE Applications
Deliver Dynamic and Interactive Web Content in J2EE ApplicationsDeliver Dynamic and Interactive Web Content in J2EE Applications
Deliver Dynamic and Interactive Web Content in J2EE Applicationsinfopapers
 
Building a Web-bridge for JADE agents
Building a Web-bridge for JADE agentsBuilding a Web-bridge for JADE agents
Building a Web-bridge for JADE agentsinfopapers
 
An Executable Actor Model in Abstract State Machine Language
An Executable Actor Model in Abstract State Machine LanguageAn Executable Actor Model in Abstract State Machine Language
An Executable Actor Model in Abstract State Machine Languageinfopapers
 
CTL Model Update Implementation Using ANTLR Tools
CTL Model Update Implementation Using ANTLR ToolsCTL Model Update Implementation Using ANTLR Tools
CTL Model Update Implementation Using ANTLR Toolsinfopapers
 
Generating JADE agents from SDL specifications
Generating JADE agents from SDL specificationsGenerating JADE agents from SDL specifications
Generating JADE agents from SDL specificationsinfopapers
 
A general frame for building optimal multiple SVM kernels
A general frame for building optimal multiple SVM kernelsA general frame for building optimal multiple SVM kernels
A general frame for building optimal multiple SVM kernelsinfopapers
 
Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...
Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...
Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...infopapers
 
An evolutionary method for constructing complex SVM kernels
An evolutionary method for constructing complex SVM kernelsAn evolutionary method for constructing complex SVM kernels
An evolutionary method for constructing complex SVM kernelsinfopapers
 
Evaluation of a hybrid method for constructing multiple SVM kernels
Evaluation of a hybrid method for constructing multiple SVM kernelsEvaluation of a hybrid method for constructing multiple SVM kernels
Evaluation of a hybrid method for constructing multiple SVM kernelsinfopapers
 
Interoperability issues in accessing databases through Web Services
Interoperability issues in accessing databases through Web ServicesInteroperability issues in accessing databases through Web Services
Interoperability issues in accessing databases through Web Servicesinfopapers
 
Using Ontology in Electronic Evaluation for Personalization of eLearning Systems
Using Ontology in Electronic Evaluation for Personalization of eLearning SystemsUsing Ontology in Electronic Evaluation for Personalization of eLearning Systems
Using Ontology in Electronic Evaluation for Personalization of eLearning Systemsinfopapers
 
An AsmL model for an Intelligent Vehicle Control System
An AsmL model for an Intelligent Vehicle Control SystemAn AsmL model for an Intelligent Vehicle Control System
An AsmL model for an Intelligent Vehicle Control Systeminfopapers
 
Using genetic algorithms and simulation as decision support in marketing stra...
Using genetic algorithms and simulation as decision support in marketing stra...Using genetic algorithms and simulation as decision support in marketing stra...
Using genetic algorithms and simulation as decision support in marketing stra...infopapers
 
Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...
Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...
Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...infopapers
 
Intelligent agents in ontology-based applications
Intelligent agents in ontology-based applicationsIntelligent agents in ontology-based applications
Intelligent agents in ontology-based applicationsinfopapers
 
A new co-mutation genetic operator
A new co-mutation genetic operatorA new co-mutation genetic operator
A new co-mutation genetic operatorinfopapers
 
Algebraic Approach to Implementing an ATL Model Checker
Algebraic Approach to Implementing an ATL Model CheckerAlgebraic Approach to Implementing an ATL Model Checker
Algebraic Approach to Implementing an ATL Model Checkerinfopapers
 
Generic Reinforcement Schemes and Their Optimization
Generic Reinforcement Schemes and Their OptimizationGeneric Reinforcement Schemes and Their Optimization
Generic Reinforcement Schemes and Their Optimizationinfopapers
 
An executable model for an Intelligent Vehicle Control System
An executable model for an Intelligent Vehicle Control SystemAn executable model for an Intelligent Vehicle Control System
An executable model for an Intelligent Vehicle Control Systeminfopapers
 
A new Evolutionary Reinforcement Scheme for Stochastic Learning Automata
A new Evolutionary Reinforcement Scheme for Stochastic Learning AutomataA new Evolutionary Reinforcement Scheme for Stochastic Learning Automata
A new Evolutionary Reinforcement Scheme for Stochastic Learning Automatainfopapers
 

More from infopapers (20)

Deliver Dynamic and Interactive Web Content in J2EE Applications
Deliver Dynamic and Interactive Web Content in J2EE ApplicationsDeliver Dynamic and Interactive Web Content in J2EE Applications
Deliver Dynamic and Interactive Web Content in J2EE Applications
 
Building a Web-bridge for JADE agents
Building a Web-bridge for JADE agentsBuilding a Web-bridge for JADE agents
Building a Web-bridge for JADE agents
 
An Executable Actor Model in Abstract State Machine Language
An Executable Actor Model in Abstract State Machine LanguageAn Executable Actor Model in Abstract State Machine Language
An Executable Actor Model in Abstract State Machine Language
 
CTL Model Update Implementation Using ANTLR Tools
CTL Model Update Implementation Using ANTLR ToolsCTL Model Update Implementation Using ANTLR Tools
CTL Model Update Implementation Using ANTLR Tools
 
Generating JADE agents from SDL specifications
Generating JADE agents from SDL specificationsGenerating JADE agents from SDL specifications
Generating JADE agents from SDL specifications
 
A general frame for building optimal multiple SVM kernels
A general frame for building optimal multiple SVM kernelsA general frame for building optimal multiple SVM kernels
A general frame for building optimal multiple SVM kernels
 
Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...
Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...
Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...
 
An evolutionary method for constructing complex SVM kernels
An evolutionary method for constructing complex SVM kernelsAn evolutionary method for constructing complex SVM kernels
An evolutionary method for constructing complex SVM kernels
 
Evaluation of a hybrid method for constructing multiple SVM kernels
Evaluation of a hybrid method for constructing multiple SVM kernelsEvaluation of a hybrid method for constructing multiple SVM kernels
Evaluation of a hybrid method for constructing multiple SVM kernels
 
Interoperability issues in accessing databases through Web Services
Interoperability issues in accessing databases through Web ServicesInteroperability issues in accessing databases through Web Services
Interoperability issues in accessing databases through Web Services
 
Using Ontology in Electronic Evaluation for Personalization of eLearning Systems
Using Ontology in Electronic Evaluation for Personalization of eLearning SystemsUsing Ontology in Electronic Evaluation for Personalization of eLearning Systems
Using Ontology in Electronic Evaluation for Personalization of eLearning Systems
 
An AsmL model for an Intelligent Vehicle Control System
An AsmL model for an Intelligent Vehicle Control SystemAn AsmL model for an Intelligent Vehicle Control System
An AsmL model for an Intelligent Vehicle Control System
 
Using genetic algorithms and simulation as decision support in marketing stra...
Using genetic algorithms and simulation as decision support in marketing stra...Using genetic algorithms and simulation as decision support in marketing stra...
Using genetic algorithms and simulation as decision support in marketing stra...
 
Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...
Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...
Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...
 
Intelligent agents in ontology-based applications
Intelligent agents in ontology-based applicationsIntelligent agents in ontology-based applications
Intelligent agents in ontology-based applications
 
A new co-mutation genetic operator
A new co-mutation genetic operatorA new co-mutation genetic operator
A new co-mutation genetic operator
 
Algebraic Approach to Implementing an ATL Model Checker
Algebraic Approach to Implementing an ATL Model CheckerAlgebraic Approach to Implementing an ATL Model Checker
Algebraic Approach to Implementing an ATL Model Checker
 
Generic Reinforcement Schemes and Their Optimization
Generic Reinforcement Schemes and Their OptimizationGeneric Reinforcement Schemes and Their Optimization
Generic Reinforcement Schemes and Their Optimization
 
An executable model for an Intelligent Vehicle Control System
An executable model for an Intelligent Vehicle Control SystemAn executable model for an Intelligent Vehicle Control System
An executable model for an Intelligent Vehicle Control System
 
A new Evolutionary Reinforcement Scheme for Stochastic Learning Automata
A new Evolutionary Reinforcement Scheme for Stochastic Learning AutomataA new Evolutionary Reinforcement Scheme for Stochastic Learning Automata
A new Evolutionary Reinforcement Scheme for Stochastic Learning Automata
 

Recently uploaded

Observational constraints on mergers creating magnetism in massive stars
Observational constraints on mergers creating magnetism in massive starsObservational constraints on mergers creating magnetism in massive stars
Observational constraints on mergers creating magnetism in massive starsSérgio Sacani
 
Base editing, prime editing, Cas13 & RNA editing and organelle base editing
Base editing, prime editing, Cas13 & RNA editing and organelle base editingBase editing, prime editing, Cas13 & RNA editing and organelle base editing
Base editing, prime editing, Cas13 & RNA editing and organelle base editingNetHelix
 
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptx
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptxTHE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptx
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptxNandakishor Bhaurao Deshmukh
 
Servosystem Theory / Cybernetic Theory by Petrovic
Servosystem Theory / Cybernetic Theory by PetrovicServosystem Theory / Cybernetic Theory by Petrovic
Servosystem Theory / Cybernetic Theory by PetrovicAditi Jain
 
Davis plaque method.pptx recombinant DNA technology
Davis plaque method.pptx recombinant DNA technologyDavis plaque method.pptx recombinant DNA technology
Davis plaque method.pptx recombinant DNA technologycaarthichand2003
 
《Queensland毕业文凭-昆士兰大学毕业证成绩单》
《Queensland毕业文凭-昆士兰大学毕业证成绩单》《Queensland毕业文凭-昆士兰大学毕业证成绩单》
《Queensland毕业文凭-昆士兰大学毕业证成绩单》rnrncn29
 
GenAI talk for Young at Wageningen University & Research (WUR) March 2024
GenAI talk for Young at Wageningen University & Research (WUR) March 2024GenAI talk for Young at Wageningen University & Research (WUR) March 2024
GenAI talk for Young at Wageningen University & Research (WUR) March 2024Jene van der Heide
 
Pests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdfPests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdfPirithiRaju
 
User Guide: Capricorn FLX™ Weather Station
User Guide: Capricorn FLX™ Weather StationUser Guide: Capricorn FLX™ Weather Station
User Guide: Capricorn FLX™ Weather StationColumbia Weather Systems
 
User Guide: Pulsar™ Weather Station (Columbia Weather Systems)
User Guide: Pulsar™ Weather Station (Columbia Weather Systems)User Guide: Pulsar™ Weather Station (Columbia Weather Systems)
User Guide: Pulsar™ Weather Station (Columbia Weather Systems)Columbia Weather Systems
 
Pests of soyabean_Binomics_IdentificationDr.UPR.pdf
Pests of soyabean_Binomics_IdentificationDr.UPR.pdfPests of soyabean_Binomics_IdentificationDr.UPR.pdf
Pests of soyabean_Binomics_IdentificationDr.UPR.pdfPirithiRaju
 
trihybrid cross , test cross chi squares
trihybrid cross , test cross chi squarestrihybrid cross , test cross chi squares
trihybrid cross , test cross chi squaresusmanzain586
 
Pests of Bengal gram_Identification_Dr.UPR.pdf
Pests of Bengal gram_Identification_Dr.UPR.pdfPests of Bengal gram_Identification_Dr.UPR.pdf
Pests of Bengal gram_Identification_Dr.UPR.pdfPirithiRaju
 
ECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptx
ECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptxECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptx
ECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptxmaryFF1
 
User Guide: Orion™ Weather Station (Columbia Weather Systems)
User Guide: Orion™ Weather Station (Columbia Weather Systems)User Guide: Orion™ Weather Station (Columbia Weather Systems)
User Guide: Orion™ Weather Station (Columbia Weather Systems)Columbia Weather Systems
 
CHROMATOGRAPHY PALLAVI RAWAT.pptx
CHROMATOGRAPHY  PALLAVI RAWAT.pptxCHROMATOGRAPHY  PALLAVI RAWAT.pptx
CHROMATOGRAPHY PALLAVI RAWAT.pptxpallavirawat456
 
Vision and reflection on Mining Software Repositories research in 2024
Vision and reflection on Mining Software Repositories research in 2024Vision and reflection on Mining Software Repositories research in 2024
Vision and reflection on Mining Software Repositories research in 2024AyushiRastogi48
 
(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)
(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)
(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)riyaescorts54
 
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptx
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptxLIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptx
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptxmalonesandreagweneth
 
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 GenuineCall Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuinethapagita
 

Recently uploaded (20)

Observational constraints on mergers creating magnetism in massive stars
Observational constraints on mergers creating magnetism in massive starsObservational constraints on mergers creating magnetism in massive stars
Observational constraints on mergers creating magnetism in massive stars
 
Base editing, prime editing, Cas13 & RNA editing and organelle base editing
Base editing, prime editing, Cas13 & RNA editing and organelle base editingBase editing, prime editing, Cas13 & RNA editing and organelle base editing
Base editing, prime editing, Cas13 & RNA editing and organelle base editing
 
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptx
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptxTHE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptx
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptx
 
Servosystem Theory / Cybernetic Theory by Petrovic
Servosystem Theory / Cybernetic Theory by PetrovicServosystem Theory / Cybernetic Theory by Petrovic
Servosystem Theory / Cybernetic Theory by Petrovic
 
Davis plaque method.pptx recombinant DNA technology
Davis plaque method.pptx recombinant DNA technologyDavis plaque method.pptx recombinant DNA technology
Davis plaque method.pptx recombinant DNA technology
 
《Queensland毕业文凭-昆士兰大学毕业证成绩单》
《Queensland毕业文凭-昆士兰大学毕业证成绩单》《Queensland毕业文凭-昆士兰大学毕业证成绩单》
《Queensland毕业文凭-昆士兰大学毕业证成绩单》
 
GenAI talk for Young at Wageningen University & Research (WUR) March 2024
GenAI talk for Young at Wageningen University & Research (WUR) March 2024GenAI talk for Young at Wageningen University & Research (WUR) March 2024
GenAI talk for Young at Wageningen University & Research (WUR) March 2024
 
Pests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdfPests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdf
 
User Guide: Capricorn FLX™ Weather Station
User Guide: Capricorn FLX™ Weather StationUser Guide: Capricorn FLX™ Weather Station
User Guide: Capricorn FLX™ Weather Station
 
User Guide: Pulsar™ Weather Station (Columbia Weather Systems)
User Guide: Pulsar™ Weather Station (Columbia Weather Systems)User Guide: Pulsar™ Weather Station (Columbia Weather Systems)
User Guide: Pulsar™ Weather Station (Columbia Weather Systems)
 
Pests of soyabean_Binomics_IdentificationDr.UPR.pdf
Pests of soyabean_Binomics_IdentificationDr.UPR.pdfPests of soyabean_Binomics_IdentificationDr.UPR.pdf
Pests of soyabean_Binomics_IdentificationDr.UPR.pdf
 
trihybrid cross , test cross chi squares
trihybrid cross , test cross chi squarestrihybrid cross , test cross chi squares
trihybrid cross , test cross chi squares
 
Pests of Bengal gram_Identification_Dr.UPR.pdf
Pests of Bengal gram_Identification_Dr.UPR.pdfPests of Bengal gram_Identification_Dr.UPR.pdf
Pests of Bengal gram_Identification_Dr.UPR.pdf
 
ECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptx
ECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptxECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptx
ECG Graph Monitoring with AD8232 ECG Sensor & Arduino.pptx
 
User Guide: Orion™ Weather Station (Columbia Weather Systems)
User Guide: Orion™ Weather Station (Columbia Weather Systems)User Guide: Orion™ Weather Station (Columbia Weather Systems)
User Guide: Orion™ Weather Station (Columbia Weather Systems)
 
CHROMATOGRAPHY PALLAVI RAWAT.pptx
CHROMATOGRAPHY  PALLAVI RAWAT.pptxCHROMATOGRAPHY  PALLAVI RAWAT.pptx
CHROMATOGRAPHY PALLAVI RAWAT.pptx
 
Vision and reflection on Mining Software Repositories research in 2024
Vision and reflection on Mining Software Repositories research in 2024Vision and reflection on Mining Software Repositories research in 2024
Vision and reflection on Mining Software Repositories research in 2024
 
(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)
(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)
(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)
 
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptx
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptxLIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptx
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptx
 
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 GenuineCall Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
 

Implementing an ATL Model Checker tool using Relational Algebra concepts

  • 1. Implementing an ATL Model Checker tool using Relational Algebra concepts Florin Stoica Department of Computer Science Faculty of Sciences, “Lucian Blaga” University of Sibiu Sibiu, Romania florin.stoica@ulbsibiu.ro Laura Florentina Stoica Department of Computer Science Faculty of Sciences, “Lucian Blaga” University of Sibiu Sibiu, Romania laura.cacovean@ulbsibiu.ro Abstract—Alternating-Time Temporal Logic (ATL) is a branching-time temporal logic that naturally describes computations of open systems. An open system interacts with its environment and its behavior depends on the state of the system as well as the behavior of the environment. ATL model-checking is a well-established technique for verifying that a formal model representing such a system satisfies a given property. In this paper we describe a new interactive model checker environment based on algebraic approach. Our tool is implemented in client- server paradigm. The client part allows an interactive construction of ATL models represented by concurrent game structures as directed multi-graphs. The server part embeds an ATL model checking algorithm implemented using ANTLR and Relational Algebra expressions translated into SQL queries. The server side of our tool was published as a Web service exposing its functionality to various clients through standard XML interfaces. Keywords—ATL model checking; ANTLR; SQL; Web services; Relational Algebra I. INTRODUCTION ODEL checking is a technology widely used for the automated system verification and represents a technique for verifying that finite state systems satisfy specifications expressed in the language of temporal logics. Main concern of formal methods in general, and model checking in particular, is helping to design correct systems. Detecting and eliminating bugs as early in the design cycle as possible is clearly an economic imperative. The compositional modelling and design of reactive systems requires each component to be viewed as an open system [9]. An open system is a system that interacts with its environment and whose behaviour depends on the state of the system as well as the behaviour of the environment. In order to construct models suitable for open systems, the Alternating-time Temporal Logic (ATL) was defined [1]. ATL represents an extension of computation tree logic (CTL), which is interpreted over concurrent game structures (CGS). ATL defines cooperation modalities of the form A φ (where A is a group of agents). Informally, A φ means that agents A have a collective strategy to enforce φ, regardless of the actions of all the other agents [6]. The model checking problem for ATL is to determine whether a given model satisfies a given ATL formula. A. Related work ATL has been implemented in several symbolic tools for the analysis of open systems. MOCHA [2] is a verification environment for the modular verification of heterogeneous systems. The input language of MOCHA is a machine readable variant of reactive modules. Reactive modules provide a semantic glue that allows the formal embedding and interaction of components with different characteristics [2]. MCMAS [10] is a symbolic model checker specifically tailored to agent-based specifications and scenarios. MCMAS supports specifications based on CTL and ATL, implements OBDD-based algorithms optimized for interpreted systems and supports fairness, counter-example generation, and interactive execution (both in explicit and symbolic mode). MCMAS has been used in a variety of scenarios including web-services, diagnosis, and security. MCMAS takes a dedicated programming language called ISPL (Interpreted Systems Programming Language) as model input language. An ISPL file fully describes a multi-agent system (both the agents and the environment). B. Comparing Symbolic and Explicit Model Checking Two most common methods of performing model checking are explicit enumeration of states of the model and respectively the use of symbolic methods. Symbolic model checkers analyse the state space symbolically using Ordered Binary Decision Diagrams (OBDDs), which were introduced in [11]. The binary decision diagram is a data structure for representing Boolean functions. With appropriate labelling of each state of the CGS structure, any expression on the Boolean variables represents a set of states of the structure. In contrast with explicit-state model checking, states in symbolic model checking are represented implicitly, as a solution to a logical equation. This approach saves space in memory since syntactically small equations can represent comparatively large sets of states [12]. A symbolic M
  • 2. model checker represents the CGS structure itself symbolically using OBDDs to represent transition relations by Boolean expressions. The key to symbolic model checking is to perform all calculations directly using these Boolean expressions, rather than using the CGS structure explicitly. An efficient representation of the CGS structures using OBDDs can potentially allow much larger structures to be checked. In the following we will present a short justification for the choice of the explicit-state model technique. In [13] is presented a comparison between RULEBASE, a symbolic model checker developed at IBM Haifa Research Laboratory and the explicit LTL (Linear Temporal Logic) model checker SPIN [14]. The software verified was a distributed storage subsystem software application. The state space size handled by SPIN was 108 in a 3-process model. Using symbolic model checking, RULEBASE keeps a compressed representation of the state space and thus was able to manage 10150 states. On the other hand, because of the limit on state size, RULEBASE could not represent a state large enough to include the information needed for more than 2- process configuration [13]. Most hardware designs are based on a clocked-approach and thus are synchronous. For these systems, the symbolic model checking approach is more appropriate [15]. On the other hand, for nondeterministic, high-level models of hardware protocols, it has previously been argued that explicit model checking is better than symbolic model checking [17]; this is because the communication mechanisms inherent in protocols tend to cause the BDDs in symbolic model checking to blow up [16]. In their basic form, symbolic approaches tend to perform poorly on asynchronous models where concurrent interleaving are the main source of explosion of the BDD representation, and explicit-state model-checkers have been the preferred approach for such models [16]. Concurrent software is asynchronous as the different components might be running on different processors or be interleaved by the scheduler of the operating system. Taking into account the above considerations, in our tool we are using an explicit-state model technique. C. Motivation and objective The aim of our research was to develop a reliable, easy to maintain, scalable model checker tool to improve applicability of ATL model checking in design of general-purpose computer software. The most pressing challenge in model checking today is scalability [12]. A model-checking tool must be efficient, in terms of the size of the models it can reason about and the time and space it requires, in order to scaling its verification ability to handle real-world applications. Our tool is based on Web Services technology to address the time constraints in verification of large models. In this paper we will present a model-checking algorithm based on procedure from [1]. For a set A of agents and a set Θ of states, implementation of almost all ATL operators imply the computation of function Pre(A, Θ) – the set of states from which agents A can enforce the system into some state in Θ in one move [2]. Our main contribution presented in this paper is the implementation of function Pre(A,Θ) using Relational Algebra expressions, translated then into SQL statements. Other original approach is represented by the generation of an ATL model checker using ANTLR (Another Tool for Language Recognition) from our specification grammar of ATL. The ATL semantics is implemented in our model checker tool by attaching of specific actions to grammatical constructions within specification grammar of ATL. The actions are written in target language of the generated parser, in this case Java. These actions are incorporated in source code of the parser and are activated whenever the parser recognizes a valid syntactic construction in the translated ATL formula. The paper is organized as follows. In section 2 we present the definition of the concurrent game structure. Section 3 defines the ATL syntax, and section 4 contains ATL semantics. In section 5 is described the implementation of an ATL model checker in ANTLR. In section 6 we introduce some relational algebra concepts which are used in our implementation of the ATL model checking algorithm. These concepts are applied in section 7. A performance analysis of our ATL model checker is made in section 8. Conclusions are presented in section 9. II. THE CONCURRENT GAME STRUCTURE A concurrent game structure is defined in [1] as a tuple S=Λ,Q,Γ,γ,M,d,δ with the following components: a nonempty finite set of all agents Λ = {1, …, k}; a finite set of states Q; a finite set of propositions (or observables) Γ; the labelling (or observation) function γ; a nonempty finite set of moves M; the alternative moves function d and the transition function δ. For each state q∈Q, γ (q) ⊆ Γ is the set of propositions true at q. For each player a∈{1,…,k} and each state q∈Q, the alternative moves function d: Λ×Q → 2M associates the set of available moves of agent a at state q. In the following, the set d(a,q) will be denoted by da(q). For each state q∈Q, a tuple j1,…,jk such that ja∈da(q) for each player a∈Λ, represents a move vector at q. We define the move function D : Q →2M , with M the set of all move vectors such that D(q)⊆d1(q)×…×dk(q)is the set of move vectors at q. We write ( )a a q Q D d q ∈ =  (1) for the set of available moves of agent a within the game structure S. The transition function δ(q,j1,…,jk), associates to each state q∈Q and each move vector j1,…,jk ∈ D(q) the state that results from state q if every player a∈{1,…,k} chooses move ja.
  • 3. A computation of S is an infinite sequence λ =q0, q1,… such that qi+1 is the successor of qi , ∀i ≥ 0 [1]. A q-computation is a computation starting at state q. For a computation λ and a position i ≥0, we denote by λ [i], λ [0,i], and λ [i,∞] the i-th state of λ, the finite prefix q0, q1,…,qi of λ, and the infinite suffix qi , qi+1 … of λ, respectively [1]. III. ATL SYNTAX We denote by FS (A) the set of all syntactically correct ATL formulas, defined over a concurrent game structure S and a set of agents A ⊆ Λ. Each formula from FS (A) can be obtained using the following rules: (R1) if p∈Γ then p∈ FS (A); (R2) if {φ, φ1, φ2} ⊆ FS (A) then {¬ φ, φ1∨φ2} ⊆ FS (A); (R3) if {φ, φ1, φ2} ⊆ FS (A) then {A ○ φ, A □ φ, A φ1 U φ2} ⊆ FS (A). The logic ATL is similar to the branching time temporal logic CTL, with difference that path quantifiers are parameterized by sets of players from Λ. The operator   is a path quantifier, and ○ (‘next’), □ (‘always’),  (‘future’) and U (‘until’) are temporal operators. A formula A φ expresses that the team A has a collective strategy to enforce φ [5]. Boolean connectives can be defined from ¬ and ∨ in the usual way. The ATL formula A  φ is equivalent with A true U φ. IV. ATL SEMANTICS Consider a game structure S=Λ,Q,Γ,γ,M,d,δ with Λ={1,…,k} the set of players. A strategy for player a∈Λ is a function fa: Q+ →Da that maps every nonempty finite state sequence λ=q0q1…qn, n≥0, to a move of agent a denoted by fa(λ)∈Da ⊆ M. Thus, the strategy fa determines for every finite prefix λ of a computation a move fa(λ) for player a in the last state of λ. Given a set A ⊆ {1,…,k} of players, the set of all strategies of agents from A is denoted by FA ={ fa | a∈ A }. The outcome of FA is defined as Fout A : Q → P(Q+ ), where ( )Fout qA represents q-computations that the players from A are enforcing when they follow the strategies from FA. In the following, for ( )Fout qA we will use the notation ( , )out q FA . A computation λ=q0,q1,q2,… is in ( , )out q FA if q0=q and for all positions i≥0, there is a move vector j1,…,jk ∈ D(qi) such that [1]: • ja=fa(λ[0,i]) for all players a∈ A, and • δ(qi, j1,…,jk)= qi+1. For a game structure S, we write q⊨ϕ to indicate that the formula ϕ is satisfied in the state q of the structure S. For each state q of S, the satisfaction relation ⊨ is defined inductively as follows: • for p∈ Γ, q⊨ p ⇔ p∈ γ(q) • q⊨¬ϕ ⇔ q⊭ ϕ • q⊨ ϕ1∨ϕ2 ⇔ q⊨ ϕ1 or q⊨ ϕ2 • q⊨ A ○ φ ⇔ there exists a set FA of strategies, such that for all computations λ∈out(q, FA), we have λ[1] ⊨ ϕ (the formula ϕ is satisfied in the successor of q within computation λ). • q⊨ A □ φ ⇔ there exists a set FA of strategies, such that for all computations λ∈out(q, FA), and all positions i≥0, we have λ[i] ⊨ ϕ (the formula ϕ is satisfied in all states of computation λ). • q⊨ A φ1 U φ2 ⇔ there exists a set FA of strategies, such that for all computations λ∈out(q, FA), there exists a position i≥0 such that λ[i] ⊨ ϕ2 and for all positions 0≤j<i, we have λ[j] ⊨ ϕ1. V. IMPLEMENTATION OF A MODEL CHECKER IN ANTLR From a formal point of view, implementation of an ATL model checker will be accomplished through the implementation of an algebraic compiler [8] C which translates the ATL formula ϕ to the set of nodes Q' over which formula ϕ is satisfied. That is, C(ϕ)=Q' where Q'={q∈Q| q⊨ ϕ}. We choose the ANTLR (Another Tool for Language Recognition) for implementation of the algebraic compiler. ANTLR [7] is a compiler generator which takes as input a grammar, and generates a recognizer for the language defined by the grammar. Translation of a formula ϕ of an ATL model to the set of nodes Q' over which formula ϕ is satisfied is accomplished by attaching of specific actions to grammatical constructions within specification grammar of ATL. These actions are written in Java, the target language of the generated parser. When ANTLR generates code using our ATL grammar as input, these actions are incorporated in the source code of the parser and are activated whenever the parser recognizes a valid syntactic construction in the translated ATL formula. In case of the algebraic compiler C, the attached actions define the semantics of the ATL model checker, i.e., the implementation of the ATL operators. The model checker generated by ANTLR from our ATL specification grammar takes as input the model (a concurrent game structure) and the formula to be verified, and provides as output the set of states where the formula is satisfied. The algebraic compiler C implements the following ATL model checking algorithm [4], [1]: Algorithm 1. ATL model checking algorithm Input: the concurrent game structure S and the formula ϕ Output: Q'={q∈Q| q ⊨ ϕ} – the set of states where the formula ϕ is satisfied. function EvalA(ϕ) as set of states ⊆ Q
  • 4. case ϕ=p: return [p] = {q ∈ Q | p ∈ γ(q)}; case ϕ= ¬θ: return QEvalA(θ); case ϕ=θ1∨θ2: return EvalA(θ1)∪ EvalA(θ2); case ϕ=θ1∧θ2: return EvalA(θ1) ∩ EvalA(θ2) ); case ϕ=θ1→θ2: return ( QEvalA(θ1) ) ∪ EvalA(θ2); case φ =A○θ: return Pre(A,EvalA(θ)); case φ =A□θ: ρ:=Q; τ:= EvalA(θ); τ0:= τ; while ρ ⊈ τ do ρ := τ; τ:=Pre(A, ρ)∩τ0; wend return ρ; case φ = A θ1 U θ2: ρ:= ∅; τ:= EvalA(θ2); τ0:= EvalA(θ1); while τ ⊈ ρ do ρ := ρ ∪ τ; τ:=Pre(A, ρ)∩τ0; wend return ρ; end function The corresponding action included in the ANTLR grammar of ATL language for implementing the □ operator is: ’<<A>> #’ f=formula { HashSet r=new HashSet(all_SetS); HashSet p=$f.set; while (!p.containsAll(r)) { r=new HashSet(p); p=Pre(r); p.retainAll($f.set); } $set=r; } For the □ ATL operator we use in ANTLR the # symbol. Also, we denote the  ATL operator with ~ symbol and the ○ operator is replaced by @ symbol. In our implementation the all_Set is Q, and means all states of the model. The formula represents a term from a production of the ATL grammar and variables p, r and f are sets used in the internal implementation of the algebraic compiler. In case of large ATL models, with many states and agents, it is very important for the model checker tool to have an efficient implementation for Pre(A, ρ) function – the set of states from which agents A can enforce the system into some state in ρ in one move – which appears in several ATL operators. In the following, we made a formalization of the Pre() function using Relational Algebra (RA) concepts. Then, we will translate the obtained relational algebra expression into a SQL statement, which represents a concise implementation of the Pre() function, ready to be executed using a very efficient query optimizer on a database server. VI. RELATIONAL ALGEBRA CONCEPTS In the following we present all Relational Algebra concepts used in our algorithm described in the next section. More detailed aspects can be found in [3]. In order to introduce the following definitions, we assume that a set D of data types is given, and for each D ∈ D, the set of possible values of data type D is denoted by val(D), which is also known as the domain of D. A relation schema RS defines a (finite) sequence A1, . . . , An of distinct attribute names. The set of given attribute names will be denoted by A = { A1, . . . , An}. Each attribute Ak has a data type Dk, and a set of possible values represented by val(Dk), 1,k n= . A relation schema RS may be written as RS = (A1 : D1, . . ., An : Dn). A tuple t with respect to the relation schema RS = (A1 : D1, . . . , An : Dn) is a sequence (d1, . . . , dn) of n values such that di ∈ val(Di ), 1,i n= . Relations are sets of tuples. The Relational Algebra (RA) consists from the set of all finite relations over which are defined some operations. A query is an expression in the RA. The operations of RA can be nested to arbitrary depth such that complex queries can be evaluated. The final result will be a relation. For the purpose of this paper, in the following we present from the set of RA operations only selection, projection (with renaming) and cartesian product. The selection is denoted by σ and is parameterized by a simple predicate ω. The operation σω acts like a filter and selects a subset of the tuples of a relation, namely those which satisfy the predicate ω. For a given relation R and a predicate ω, the expression σω(R) corresponds to the following SQL query: select distinct * from R where ω. The projection πL eliminates all attributes of the input relation excepting those mentioned in the list L. If 1 , , mi iL A A= … the projection πL(R) produces for each input tuple( )1 1: , , :n nA d A d… an output tuple 1 1 ( : , , : )m mi i i iA d A d… . There are two useful generalized projection operators. The first one is used to provide attribute renaming: 1 1 , ,i m im B A B Aπ ← … ← . The projection 1 1 , , ( )i m im B A B A Rπ ← … ← provide for each input tuple ( )1 1: , , :n nA d A d… an output tuple 11( : , , : )mi m iB d B d… . The second generalized π operator is using computations to derive the values in new columns: ' ' || @ || ( )EMAIL Account Domain Eπ ← where || operator represents string concatenation. The relational algebra expression 1 , , ( )mA A Rπ … corresponds to the SQL query: select distinct 1, , mA A… from R and for the expression 1 1 , , ( )m mB A B A Rπ ← … ← the equivalent SQL query is select distinct 1 1 m m, ,A as B A as B… from R. In general, queries need to combine values from several relations. In RA, such queries are formulated using the Cartesian product, denoted by symbol ×. The Cartesian
  • 5. product R × V of two relations R, V is computed by concatenating each tuple r ∈ R with each tuple v ∈ V. If ( )1 1: , , :n nr A a A a= … and ( )1 1: , , :m mv B b B b= … then ( )1 1 1 1: , , : , : , , :n n m mr v A a A a B b B b• = … … where • denotes tuple concatenation. The attribute names must be unique within a tuple r v• . R × V can be computed by the equivalent SQL query: select R.*, V.* from R, V. The unique column name restriction is solved in SQL easily: a common attribute A of relations R and V may uniquely be identified by R.A respectively V.A. In RA, this solution is formalized by the renaming operator ρx(R). If R is a relation with schema ( ) ( )1 1: , , :n nsch R A D A D= … , then using the renaming operator ( ) 1 1. , , . ( )n nx x A A x A AR Rρ π ← … ←= is obtained a relation with schema ( )1 1. : , , . :n nx A D x A D… . Because the combination of Cartesian product and selection in queries is frequently, a special operator join has been introduced, denoted by ⋈θ: R ⋈θ V ≡ σθ (R × V), where the join predicate θ may refer to attribute names of R and V. The join operator combines tuples from two relations and acts like a filter, removing tuples without join partner. In SQL language, the relational algebra expression R ⋈θ V can be written as: select * from R join V on θ. The left outer join operator denoted by θ, preserves all tuples in its left argument, even if a tuple does not fit with a partner in the join. VII. USING RELATIONAL ALGEBRA IN MODEL CHECKING ALGORITHM For a concurrent game structure S presented in section 2, can be defined a directed multi-graph GS = (X,U), where X=Q, and (b,e) ∈ U ⇔ ∃ j1,…,jk ∈ D(b) such as δ(b,j1,…,jk) = e. The labelling function for the graph GS is defined as follows: L:U → M , ∀ u = (b,e) ∈ U, L(u) = j1,…,jk, where δ(b,j1,…,jk) = e. We define the relation schema (B:QB, M1:D1, …, Mk:Dk, E:QE) where QB = {b ∈ Q | ∃ e ∈ Q such as (b, e) ∈ U}, QE = {e ∈ Q | ∃ b ∈ Q such as (b, e) ∈ U} and Di, i ∈ {1, …, k} = Λ was defined in (1), such as if RS is a relation name with schema defined above, (B:b, M1:j1, …, Mk:jk, E:e) ∈ RS ⇔ j1,…,jk = L((b,e)). For a set A of m agents, A ⊆ Λ, A = {i1, …, im}, we define 1 , , , ,) ( )( i im S B M M E SR Rπ …=A where , {1, , }li l m∈ ∈ …A and 1 , ,) ( )(( )i im L B LABEL M M E SR Rπ ← °…°=A A where the operator ° can be defined as follows: i ° j = i || ',' || j. For a set Θ ⊆ QE, b ∈ Pre(A, Θ) ⇔ ∃ , , 1( ) ,l li i lj d i mb l∈ ∈ =A and ∃ e ∈ Θ such as 1 , ), (( )mi i Sb j ,…, j e R∈ A and ∄e'∈QE Θ such as 1 ( ( )')mi i Sb, j ,…, j ,e R∈ A . With other words, b ∈ Pre(A, Θ) ⇔ ∃ , , 1( ) ,l li i lj d i mb l∈ ∈ =A such as: 1 1 : , , : {( : )| }( )m mE i i i i EB b M : j ,…,M : j E Q E e eπ = ∈Θ In the following, the set of states QE Θ is denoted by Q . Now we can design an algorithm to compute the function Pre(A, Θ) using RA expressions: Algorithm 2. Computing ( , )Pre A Θ function using relational algebra expressions Step1 , ( ) ) ( )( ( )B LABEL E L LR Rπ σ ∈Θ Θ =A A , ( ) ) ( )( ( )B LABEL L LE R Rπ σ Θ Θ∈ =A A Step2 ( )( )LRxρ Θ A , ( ( )) ( )L LR Ryρ Θ Θ Θ =A A . . . .x B y B x LABEL y LABEL= ∧ = Step 3 , , . . , . ( )) (( ( )) null LABEL null L LLABELy x B y R Rσ π Θ Θ = Θ =A A Step 4 , .( , ) ( ( ))null x B LPre Rπ Θ Θ =A A The above algorithm can be implemented in SQL language as follows: Algorithm 3. Computing ( , )Pre ΘA function using SQL statements select distinct B from ( select distinct x.B, y.LABEL from ( select distinct B, LABEL from model where E in Θ ) x left join ( select distinct B, LABEL from model where E not in Θ ) y on x.B = y.B and x.LABEL = y.LABEL where y.LABEL is null ) z VIII. PERFORMANCE ANALYSIS OF THE ATL MODEL CHECKER In this section we evaluate the effectiveness of our approach in designing and implementing an ATL model checker and we report some experimental results. We encoded the Tic-Tac-Toe (TTT) game in the formalism of concurrent game structures. The game is played by two opponents with a turn-based modality on a 3×3 board. The two players take turns to put pieces on the board. A single piece is put for each turn and a piece once put does not move. A player wins the game by first lining three of his or her pieces in a straight line, no matter horizontal, vertical or diagonal.
  • 6. We consider the computer playing TTT game with a user (human) and the ATL model checking algorithm is used to achieve a winning strategy for the computer. Due to the relatively large size of the structure representing the ATL model at the first moves, playing the TTT game represents a good opportunity to study the impact of the used technologies in the performance of our model checker. For this purpose, were used two different database servers to implement the Web service, namely MySql 5.5 and respectively H2 1.3. The H2 database supports the in-memory mode (the data is not persisted), well suited for high performance operations. The major impact on performance of the ATL model checker is represented by the efficiency of the function Pre(), which was presented in detail in section 7. Its implementation is based exclusively on the database server used. In table I are presented the results showing the performance of our ATL model checker related to the database server used: TABLE I. PERFORMANCE OF THE ATL MODEL CHECKER RELATED TO THE DATABASE SERVER Total time necessary to determine the winning strategy (Tic-Tac-Toe game) - Intel Core I5, 2.5 GHz, 4Gb RAM Number of states MySQL 5.5 (seconds) H2 1.3 (seconds) 4791 ≈1.86 ≈1.33 4255 ≈1.62 ≈1.17 3732 ≈1.41 ≈0.99 3423 ≈1.24 ≈0.90 3683 ≈1.21 ≈0.85 2307 ≈0.86 ≈0.58 2236 ≈0.75 ≈0.56 In [18] the Tic-Tac-Toe was implemented in the Reactive Modules Language (RML). RML is the model description language of the ATL model checker MOCHA, which was developed by Alur et al. (Alur et al., 1998). Experimental results showed that the time necessary to find a winning strategy for a player, on a configuration with a Dual-Core 1.8Ghz CPU, was 1 minute and 6 seconds. Running on the same configuration, our ATL checker tool is able to find a winning strategy in about 4 seconds using MySql as a database server and 3 seconds when H2 Server was used. IX. CONCLUSION In this paper we built an ATL model checking tool, based on Java code generated by ANTLR using an original ATL attribute grammar which implements the ATL semantics using semantic actions. The main contribution of this paper consists in implementation of ATL operators using Relational Algebra expressions translated into SQL queries. The C# implementation of the client part of our new tool (ATL Designer) allows an interactive graphical specification of the ATL model as a directed multi-graph. The server component of our tool (ATL Checker) was published as a Web service, exposing its functionality through standard protocols. As the experimental results showed, the in-memory databases represent a promising technology for our ATL model checker. The ATL Designer, a ready to be deployed Web Service package for Tomcat 7.x and the ATL API Client libraries for Java and C# can be downloaded from http://use-it.ro. REFERENCES [1] R. Alur, T.A. Henzinger, and O. Kupferman, „Alternating-time Temporal Logic”, Journal of the ACM, 49:672–713, 2002. [2] R. Alur, T.A. Henzinger, F.Y.C. Mang, S. Qadeer, S.K. Rajamani, and S. Tasiran, „Mocha: Modularity in Model Checking”, in Proceedings of the Tenth International Conference on Computer-Aided Verification (CAV), Lecture Notes in Computer Science 1427, Springer, pp. 521-525, 1998. [3] M. Herschel. (2010). Database Systems I. Database Systems Group, University of Tübingen. Available: http://db.inf.uni- tuebingen.de/teaching/ss10/db1/05_relational_algebra.pdf [4] W. Jamroga, „Easy Yet Hard: Model Checking Strategies of Agents”, Computational Logic in Multi-Agent Systems, Lecture Notes in Computer Science, Volume 5405, Springer Berlin Heidelberg, pp. 1-12, 2009. [5] W. Jamroga, and N. Bulling, „Comparing variants of strategic ability”, in Proceedings of the Twenty-Second international joint conference on Artificial Intelligence - Volume One, pp. 252-257, 2011. [6] M. Kacprzak, and W. Penczek, „Fully symbolic Unbounded Model Checking for Alternating-time Temporal Logic”, Journal Autonomous Agents and Multi-Agent System, Volume 11 Issue 1, pp. 69 – 89, 2005. [7] T. Parr, The Definitive ANTLR Reference, Building Domain-Specific Languages, Pragmatic Bookshelf, Dallas Texas, ISBN 0-9787392-5-6, 2007. [8] T. Rus, E.V. Wyk, and T. Halverson, „Generating Model Checkers from Algebraic Specifications”, Journal Formal Methods in System Design archive, Volume 20, Issue 3, pp. 249 – 284, 2002. [9] W. Van Der Hoek, and M. Wooldridge, „Cooperation, Knowledge, and Time: Alternating-time Temporal Epistemic Logic and its Applications”, Studia Logica 75, Kluwer Academic Publishers, pp. 125-157, 2003. [10] A. Lomuscio, F. Raimondi, Mcmas: A model checker for multi-agent systems, in Proc. of TACAS 06, volume 3920 of Lect. Notes in Comp. Sci., pp. 450-454, Springer-Verlag, 2006 [11] R. E. Bryant, Graph-based algorithms for boolean function manipulation. IEEE Transactions on Computers, C-35(8):677-691, 1986. [12] K.Y. Rozier, Survey: Linear Temporal Logic Symbolic Model Checking, Computer Science Review, Volume 5 Issue 2, pp. 163-203, 2011. [13] C. Eisner, D. Peled, Comparing Symbolic and Explicit Model Checking of a Software System, In Proc. SPIN Workshop on Model Checking of Software, volume 2318 of LNCS, Volume 55, pp. 230-239, 2002 [14] G. Holzmann, The model checker SPIN. IEEE Trans. on Software Engineering 23, pp. 279–295, 1997. [15] F. Lerda, N. Sinha, M. Theobald, Symbolic Model Checking of Software, Electronic Notes in Theoretical Computer Science, Volume 89, Issue 3, pp. 480–498, 2003. [16] B. Bingham, J. Bingham, F. M. de Paula, J. Erickson, G. Singh, M. Reitblatt, Industrial Strength Distributed Explicit State Model Checking. In Proceedings of the 2010 Ninth International Workshop on Parallel and Distributed Methods in Verification, and Second International Workshop on High Performance Computational Systems Biology (PDMC-HIBI '10). IEEE Computer Society, Washington, DC, USA, pp 28-36, 2010 [17] A. J. Hu, Techniques for Efficient Formal Verification Using Binary Decision Diagrams, PhD thesis, Stanford University, 1995. [18] J. Ruan, Reasoning about Time, Action and Knowledge in Multi-Agent Systems, Ph.D. Thesis, University of Liverpool, http://ac.jiruan.net/thesis/., 2008.