SlideShare a Scribd company logo
1 of 6
Download to read offline
Proceedings of the 13th WSEAS International Conference on COMPUTERS 
CTL Model Update Implementation Using ANTLR Tools 
LAURA FLORENTINA CACOVEAN 
Department of Computer Science 
Lucian Blaga University of Sibiu, Faculty of Sciences 
Str. Dr. Ion Ratiu 5-7, 550012, Sibiu 
ROMANIA 
laura.cacovean@ulbsibiu.ro 
FLORIN STOICA 
Department of Computer Science 
Lucian Blaga University of Sibiu, Faculty of Sciences 
Str. Dr. Ion Ratiu 5-7, 550012, Sibiu 
ROMANIA 
florin.stoica@ulbsibiu.ro 
Abstract: - The model checkers are tools which can be used to verify that a given system satisfies a given temporal 
logic formula. In this paper is presented an algorithm which implements a CTL model updater towards the 
development of an automatic model modification tool and is illustrated a case study by applying the model update to 
the elevator control scenario, using for the implementation of the formula grammar the ANTLR (Another Tool for 
Language Recognition) instruments. 
Key-Words: - CTL model checkers, ANTLR implementation, model update, algorithm, directed graph 
1 Introduction 
Verification of a model is one of the most useful 
technologies for automatic system verifications. In the 
model checking approach, the system behaviour is 
modeled by a Kripke structure. The specification 
properties that must be accomplished by a system are 
expressed as formulas in a propositional temporal logic 
(for example CTL). 
The model checking takes as input the model and a 
formula, and then checks if the formula is satisfied or 
not by the Kripke model. If the formula is not satisfied 
by the model, the system will provide an error and any 
information necessary to know where the formula was 
not satisfied. 
In this paper is defined the principle of minimal 
change for the update of a CTL model. The necessary 
semantic and the computational properties are provided 
for the CTL model update. Based on these 
ascertainments is developed the algorithm for updating 
the CTL model. Presenting a case study, we will show 
that the new model can be then viewed as a possible 
correction of the original system specification. 
2 CTL Syntax and semantics 
CTL is a branching-time logic, meaning that its 
formulas are interpreted over all paths beginning in a 
given state of the Kripke structure. A Kripke model M 
over AP is a triple M=(S, Rel, P:AP→2S) where S is a 
finite set of states, Rel⊆S×S is a transition relation, 
P:SÆ2AP is a function that assigns each state with a set 
of atomic propositions. 
The CTL formulas are defined by the following rules 
[1]: (a) The logical constants true and false are CTL 
formulas; (b) Every atomic proposition, ap∈AP is a CTL 
formula; (c) If f1 and f2 are CTL formulas, then so are 
¬f1, f1∧f2, f1∨f2, EX f1, AX f1, E[f1Uf2], and A[f1Uf2]. 
2.1 Syntax definition of CTL model checker 
A CTL has the following syntax given in Backus-Naur 
form [4]: 
f :: ⊤ |⊥ |p|(¬ f1)| f1∧f2| f1∨f2| f1⊂ f2| AX f1| EX f1| AG f1| 
EG f1| AF f1| EF f1|A[f1Uf2]| E[f1Uf2] where ∀p∈AP. 
A CTL formula is evaluated on a Kripke model M. A 
path in M from a state s is an infinite sequence of states 
and is denoted as π = [s0, s1, … , si-1, si, si+1,…] such that 
s0=s and (si, si+1) ∈ Rel holds for all i ≥ 0. We write (si, 
si+1) ⊆ π and si∈ π. If we express a path as π = [s0, s1, …, 
si, … , sj , …] and i < j, we say that si is a state earlier 
than sj in π and si < sj. For simplicity, we may use 
succ(s) to denote state s0 if there is a relation (s, s0) in 
Rel. 
2.2 Semantic definition of CTL model checker 
Let M=(S, Rel, P:AP→2S) be a Kripke model for CTL. 
Given any s in S, we define whether a CTL formula f 
holds in state s. We denote this by (M, s) ⊨ f. The 
satisfaction relation ⊨ is defined by structural induction 
on fourteen CTL formulas [10]. 
Without a detailed declaration we presuppose that all 
the five formulae CTL presented in the contextually are 
by-path satisfied. Toward example, we consider the 
update of a Kripke model with CTL formulas, beginning 
from the fact that f is not satisfied. 
The input is a CTL Kripke model which not satisfies 
the formula f and the output is an updated CTL Kripke 
model which satisfies the input formula. 
In the beginning is presented a general definition of 
the CTL model update. 
ISSN: 1790-5109 169 ISBN: 978-960-474-099-4
Proceedings of the 13th WSEAS International Conference on COMPUTERS 
The next definition presents just a prerequisite for 
requirements of the CTL model updater and not tells 
how the update to be performed. 
The CTL Update Definition [4]: Be a CTL Kripke 
model M = (S, Rel,P) and a CTL formula f. An update of 
M = (M, s0), where s0 ∈ S with f is a CTL Kripke model 
M' = (S', Rel', P') such that M' = (M', s0'), (M', s0')⊨ f 
where s0'∈ S'. We use Update(M, f) to denote the result 
M' and Update(M , f) =M' if M' ⊨ f. 
3 Primitive update operations 
Pr1. Add an only relation. Given M = (S, Rel,P), its 
updated model M' = (S', Rel',P') is the result of M 
having added only one new relation. That is S'= S, P' = 
P, and Rel' = Rel∪{(saddrel, saddrel2)} where (saddrel, 
saddrel2)∉Rel for one pair of saddrel,saddrel2∈S. 
Pr2. Remove an only relation. Given M = (S, Rel, P), 
its updated model M' = (S', Rel',P ') is the result of M 
having removed only one existing relation. That is, S'= 
S, P' = P, and Rel' = Rel-{(sremrel, sremrel2)} where (sremrel, 
sremrel2)∈Rel for one pair of sremrel, sremrel2∈S. 
Pr3. Substitute a state and its associated relations. 
Given M = (S, Rel, P), its updated model M' = (S', Rel', 
P') is the result of M having substituted only one 
existing state and its associated relations. That is, S' = 
S[s/ssubstate]. S' is the set of states where one state s in S is 
substituted by ssubstate, Rel' = Rel∪{(si, ssubstate), 
(ssubstate,sj)| for some si, sj∈S }-{(si,s),(s,sj)| 
(si,s),(s,sj)∈Rel } and P '(s) = P (s) for all s∈S ∩ S' and 
P'(ssubstate) = τ (ssubstate), where τ is a truth assignment on 
ssubstate. 
Pr4. Add a state and its associated relations. Given M 
= (S, Rel, P), its updated model M' = (S', Rel', P') is the 
result of M having added only one new state and its 
associated relations. That is, S' = S ∪{saddstate}. S' is the 
set of states where one state s in S is added by saddstate, 
Rel' = Rel ∪{(si, saddstate), (saddstate,sj)| si,sj∈S∩S'} and 
P'(s) = P(s) for all s∈S∩S' and P'(saddstate) = τ (saddstate), 
where τ is a truth assignment on saddstate. 
Pr5. Remove a state and its associated relations. 
Given M = (S,Rel, P), its updated model M' = (S',Rel', 
P') is the result of M having added only one existing 
state and its associated relations. That is, S' = S-{sremstate| 
sremstate ∈ S}. S' is the set of states where one state s in S 
is removed by sremstate, Rel' = Rel-{(si, sremstate), 
(sremstate,sj)| for some si,sj∈S} and P'(s) = P (s) for all s∈S 
∩ S'. 
All changes on CTL model can be specified in terms 
of these five operations. We can argue that Pr3 is 
accomplished by Pr4 and Pr5. Anyway, we treat state 
substitution differently than a combination of state 
addition and state deletion. Whenever a substitute of a 
state is needed, is applied Pr3 directly more than Pr4 
followed by Pr5. This thing will simplify the definition 
of minimal change of the CTL model [10, 2]. 
The Definition of Admissible Update is given by 
assertion: Given a CTL Kripke model M = (S, Rel,P), 
M= (M, s0), where s0 ∈S, and a CTL formula f, 
Update(M, f) is called admissible if the following 
conditions hold: 
(1) Update(M, f) = (M', s0') ⊨ f where M' = (S', 
Rel', P') and s0' ∈S'; 
(2) There not exist another resulting model M'' = 
(S'', Rel'', P'') and s0'' ∈S''; such that (M'',s0'')⊨ f and 
M''<MM'. 
We denote M1 <M M2 if M1 ≤M M2 and M2 ≰ M M1. If 
are given three CTL Kripke models M, M1, M2 where M1 
and M2 are obtained from M by applying Pr1, Pr2, Pr3, 
Pr4, Pr5 operations, we say that M1 is closer to M as M2, 
denoted as M1 ≤M M2, iff Diff(M,M1) ≼ Diff(M,M2). We 
denote Diff(M,M1)≼ Diff(M,M2) iff for each i with i = 
1,…, 5, DiffPi(M,M1)⊆DiffPi(M,M2) where M, M1, M2 are 
three CTL models. 
4 Semantic Characterizations 
In this section we will present a variety of semantic 
characterizations of the CTL model updater that present 
possible solutions to achieve admissible updates under 
certain conditions. In many situations, as will be shown 
in the following, a single type primitive operation will 
be enough to achieve an admissible updated model. 
These model characterizations also play an essential role 
in simplifying the implementation of the CTL model 
update. 
First of all we shall return to the definition of the 
CTL Model Update. The algorithm is designed 
following a similar style of CTL model checking 
algorithm SAT [4], where an updated formula is parsed 
through its structure and recursive calls to proper 
functions are made to its sub-formulas [2]. 
From the definition of Admissible Update (stated 
above) we observe that, for a given CTL Kripke model 
M and a formula f, there may be many admissible 
updates satisfying f, where some updates are simpler 
than others. 
We consider a special form of path π where the first i 
states starting from s0 already satisfy formula f. Under 
this situation, we can simply cut off the path. For 
example we can apply one time Pr2 or Pr5 to disconnect 
all other states not satisfying f [10,2]. 
The implementation can be formulated in the 
following form: 
Function UpdateAG(M, f) 
/* M ⊭ AG f. Update M to satisfy AG f */ 
{ 
ISSN: 1790-5109 170 ISBN: 978-960-474-099-4
Proceedings of the 13th WSEAS International Conference on COMPUTERS 
0 
Mif M0 = (M,s0) ⊭ f, then Pr3 is applied to s0 such 
that M' =CTLUpdate( , f ); 
else { 
1. select a path π = [s0 ,s1,…], where Ǝ si∈ π 
such that Mi =(M,si)⊭ f; 
2. select a state si∈ π such that ∄ sj<si with 
(M,sj)⊭ f 
then 
(1) Applying Pr2 to remove relation (pre(si),si), 
then 
S′:=S; 
Rel′:=Rel-{(pre(si),si)}; 
P′= P, since is removed a only relation; 
or 
(2) Applying Pr5 to remove state si, its associated 
relation, then 
S′:=S-{si}; 
Rel′:=Rel-{(pre(si),si),(si,succ(si))} 
where if associated relations of si ; 
P′:S′Æ2AP, since S′⊆ S,∀s∈S′,such that 
i 
MP′(s):= P(s), is removed a only relation; 
or 
(3) Applying Pr3 M'=CTLUpdate( ,f); 
} 
if M'⊨ AG f then return M'; 
else return { UpdateAG(M',f)}; 
} 
The above implementation can be formulated in a short 
form as follows: 
UpdateAG(M, f) 
/* M ⊭ AG f. Update M to satisfy AG f */ 
{ 
1. select a path π = [s0 ,s1,…], where si∈ π 
and Mi =(M,si)⊭ f; 
2. M'=CTLUpdate( Mi 
,f); 
3. if M'⊨ AG f then return M'; 
else return UpdateAG(M',f); 
} 
In [5,2] is presented a theorem which characterizes 
three typical situations for the update with formula EG f. 
In substance, this theorem says that in order to make 
formula EG f true, we first select a path, then we can 
either make a new path based on this path so that all 
states in the new path satisfy f (Case1), or trim the path 
from the state where all previous states satisfy f (Case 2) 
or simply change the assignments for all states which are 
not satisfying f in the path (Case 3). Proof of this 
theorem which proves that resulting models are 
admissible is presented in [5]. 
The implementation is: 
Function UpdateEG(M, f) 
i 
/* M M⊭ EG f. Update M to satisfy EG f */ 
{ 
1. select a path π = [s0 ,s1,…], in M; 
2. select a state si∈ π such that Mi =(M,si)⊭ f 
3. M'=CTLUpdate( ,f); 
4. if M'⊨ EG f then return M'; 
else return UpdateEG(M',f); 
} 
5 Elevator example 
In this section we present a case study which illustrates 
the features of the CTL model update approach. 
As example we will present a scenario for an 
elevator control system. The designer analyzes [3] the 
state-transition diagram showed in Fig. 1, for the solely 
control transformation, Elevator Controller, and finds 
eight locked-state events. These locked-state events 
occur because the Elevator Controller, in most instances, 
takes one action and then awaits a response before 
moving onto a new state. In fact, only two event flows, 
Up Request and Down Request (when we denote with 
Move state when the request exist) do not qualify as 
locked-state events, because each of them can arrive any 
time a client presses a floor button or when the scheduler 
schedules an elevator. The remaining events can occur 
only when the Elevator Controller is expecting them. 
We begin from the state diagram transition of an 
elevator Controller shown in Fig. 1. 
Fig 1. State Transition Diagram for the Elevator 
Controller 
Suppose that we have an elevator system control 
which includes in first case a process for normal moving 
of lift cabin and in second case a faulty process. In first 
case for the normal moving of lift cabin process, doesn’t 
shall appear the errors, so the door is closed and the 
passengers are going up or down when the button is 
pressed. The second process is the faulty process, when 
the lift cabin doesn’t moving when the button is pressed 
ISSN: 1790-5109 171 ISBN: 978-960-474-099-4
Proceedings of the 13th WSEAS International Conference on COMPUTERS 
for start the moving. The aim of the model is to find 
where the faulty process is. The objective of model 
updating, with other words, is to correct the original 
model which contains the faulty process. Starting from 
the original CTL structure for the elevator control 
system presented in the Fig. 2 with seven states of the 
system denoted with s1, s2,…, s7, we have added the state 
sd for checking if another passenger is requesting the 
elevator. 
The Kripke model has seven states and the 
propositional variables are from the set {Start, Close, 
Move, Error}. Start represented the start button for start 
moving up or down the elevator, Close represent the 
close door to the lift cabin, Move is moving up or down 
the elevator and Error means occur some error. 
The formal definition of the Kripke structure of the 
elevator control is given by: M = (S, Rel, P), where 
S={s1,s2,…,s7}, Rel={(s1,s2), (s2,s3), (s3,s2), (s3,s4), (s4,s3), 
(s4,s5), (s5,s6), (s6,s7), (s7,s7), (s7,s4), (s4,s1), (s1,sd), (sd,s4), 
(sd,s1)}, AP={Start, Close, Move, Error}, P assigns state 
s1 in M with not start, not close, not move and not error, 
that is set {¬Start,¬Close,¬Move,¬Error}. We denote 
Start with St, Close with Cl, Move with Mv and Error 
with Er. P assigns state s2 in M with {St,¬Cl,¬Mv, Er}, 
the state s3 in M with {St, Cl,¬Mv, Er}, the state s4 in M 
with {¬St, Cl,¬Mv,¬Er}, the state s5 in M with 
{St,Cl,¬Mv,¬Er}, the state s6 in M with {St,Cl,Mv,¬Er} 
and the state s7 in M with {¬St,Cl, Mv,¬Er}. 
The model is shown below: 
Fig 2. The CTL structure of Elevator Controller 
In this figure START represents the Start elevator, 
Open and Close represents the open door and close the 
door, RESET is for a new initialization and DONE 
represents the done moving of elevator. 
The faulty process from this graph is the path 
s1→s2→s3→s4. The interpretation is following. In first 
state is started the elevator {s1,s2}. In the state s2 we 
observed that have not Cl (that is the door don't close) 
and the moving is out of order and it pointed some error 
which is passed from the state s2 in the state s3 where the 
door elevator shall be closed. In the state s3 there is an 
error and the elevator moving don’t starts so must be 
performed a reset for the reestablishment. That is, the 
control is passed from the state s3 to the state s4. The 
process with normal behavior is the case obtained from 
the original CTL Kripke structure through s1→ s4 → s5 
→ s6 → s7. 
Notice that this model don't satisfies the property f = 
¬ EF(St ∧ EG ¬ Mv) [4]. The CTL model updater 
brings a minimum modification of the Kripke model 
which satisfies the property f. Firstly, must be analyzed f 
in AG(¬ (St ∧ EG ¬ Mv)) for removing the symbol ¬. 
The translation is doing with the function Update¬. 
Then is necessary to check whether each state satisfies 
¬ (St ∧ (EG ¬Mv)). This string must be parsed before it 
is checked. Selecting the EG¬Mv for elevator model 
means that is selected any path having any state with 
¬Mv. Then must be searched the paths in the form 
[s1,s2,s3,s4,s1,…] and [s1,s4,s1,…] which represents the 
connected components loops satisfying EG¬Mv. After 
that are identified all states with St, these are 
{s2,s3,s5,s6}. Then are selected the states with St and 
¬Mv, these are {s2,s3}. 
Because the AG(¬(St ∧ EG ¬ Mv)) formula 
identifies that the model has no both states St and ¬Mv, 
is necessary an update of states s2 and s3 so as they will 
appear in the updated model. For the execution of 
UpdateAG function we can use three minimum updates: 
(case 1) applying Pr2 to remove the connection (s1, s2); 
(case 2) applying the property Pr5 to removed the state s2 
and the associate relations e.g. (s1,s2), (s2,s3) and (s4,s3); 
and (case 3) applying Pr3 on the state s2 and s3. Using 
case three, the first translation will be from 
¬(St∧EG¬Mv) to ¬St ∧ ¬EG¬Mv, therefore s2 and s3 
are updated with either ¬St or ¬EG¬Mv by the main 
function CTLUpdate what is dealing with ∨ and with the 
Update_ function. 
In other words, the new states of s2 and s3 will be 
denoted with s2′ and s3′. The UpdateAG(M, ¬(St ∧ 
EG¬Mv)) function calls the main function 
CTLUpdate(M, ¬St) or CTLUpdate(M, ¬EG¬Mv) for 
the case f1 ∨ f2. We choose the ¬St because this is 
simplest than ¬EG¬Mv. In this case is necessary to 
update the atomic proposition St in states s2 and s3 of 
path π with ¬St instead, thus there are no states on path 
π having the specification EF (St ∧ EG ¬Mv). That is 
M′ = (M ′, s1) ⊨ ¬EF (St ∧ EG ¬Mv). 
The resulting model is presented in Fig. 3. 
ISSN: 1790-5109 172 ISBN: 978-960-474-099-4
Proceedings of the 13th WSEAS International Conference on COMPUTERS 
Fig. 3 The updated model for an elevator control 
using the primitive P3 
where s2′ is set {¬St, ¬ Cl, ¬ Mv, Er} and the state s3′ 
is set {¬ St, Cl, ¬ Mv, Er}. 
The algorithm will generate one of the three resulting 
models without specific indication. Because of criteria 
used they are all minimally changed from the original 
model. 
6 ANTLR 
In this section, we will present the first formula f1 = 
AG(not (St and (EG (not Mv) )) that was checked by 
our implementation using the ANTLR tools. The 
ANTLR 3 [7] tools are used for the construction of 
software instruments as translators, compilers, 
recognition and parser of static/dynamic programs. 
The ANTLR is a generator of compilers; it receives as 
input a grammar, with a precise description of a 
language, and generates the source code and other 
auxiliary files for lexer and parser. The source code of 
our ANTLR grammar must contain the specification of 
all macro-operations presented in [6]. We “decorate” 
the grammar for formula language with actions. 
ANTLR inserts our actions in the generated code for 
parser, and parser must execute embedded actions 
after matching the preceding grammar element. 
This is the mechanism of formula evaluation for a 
given model. 
We define a CTL model checker as an algebraic 
compiler [6]. The algebraic methodology was used in 
specification of the ANTLR grammar for CTL formulas. 
This grammar can be used for the generation and the 
verification of different models. Using our CTL model 
checker generator, the user can correct a model in case 
in which the model was not correct defined and more 
important is that the result received is easy to be traced 
by the user. 
An essential contribution of the implementation 
presented in this section is that it can be used as a 
model checker generator. For a given model is 
automatically generated the java code for a 
verification tool of satisfiability of CTL formulas. 
In ANTLRWorks have been implemented all macro-operations 
of CTL model checker. The program 
receives as input the model M where are defined the 
sets S, Rel and P. In figure 4 is showed the 
implementation of the AG macro. We use Java as 
target language for the implementation of our model 
checker tool. 
Fig.4 Specification of CTL formula grammar in 
ANTLRWorks 
The detailed specification of AG operation is 
defined in [6], and the specification of and operation 
as actions in ANTLR grammar is presented in the 
following: 
//Ctlformula→”ag” formula 
ctlFormula returns [HashSet set] 
: 'ag' f=formula 
{ 
HashSet rez = new HashSet(); // Z:=∅; 
HashSet rez1 = new HashSet($f.set); // Z':= dctl(t); 
while (!rez.equals(rez1)) // while Z≠Z' do 
{ 
rez.clear(); 
rez.addAll(rez1); //Z:=Z' 
HashSet tmp = new HashSet(); 
boolean include; 
for (int i=0; i<MAX_STARI; i++) 
{ 
include = true; 
for (int j=0; j<MAX_STARI; j++) 
if (rel[i][j]==1) //∃ succ(s), s∈S 
if (!(rez1.contains(new Integer(j)))) 
include = false; 
if (include) 
tmp.add(new Integer(i)); // succ(s)⊆ Z' 
} // end for 
rez1.retainAll(tmp); //Z':=Z'∩{s∈S| succ(s)⊆Z'}; 
}// end while 
trace("ctlFormula",6); 
ISSN: 1790-5109 173 ISBN: 978-960-474-099-4
Proceedings of the 13th WSEAS International Conference on COMPUTERS 
printSet(" ag " + $f.text,rez1); 
$set = rez1; // dctl(Allglobal(t)) :=Z'; 
} 
… 
For checking the first formula f1 of our example, we will 
use the ANTLR debugging facility to visualize the parse 
tree and execution of actions of grammar rules, i.e. 
evaluation of the CTL formula. 
The CTL rules set which are directly specified in 
the syntactic algebra of CTL, denoted by Sinctl, can be 
ambiguous, therefore it is necessary that the set of 
formulas from Sinctl to be divided in the non-terminal 
symbols denoted with Ctlformula, Formula, Factor, 
Termen and Expresie. Thus, the defined rules deliver 
non-ambiguous specification in algebra Sinctl. 
In section 5 we presented as an example the elevator 
controller. Starting from the original model it was seen 
that there is a situation in which the f1 formula is not 
satisfied. This has been verified with our 
implementation of model checker. The states from our 
implementation begin from state s0. The result obtained 
using the ANTLR implementation of the CTL model 
checker is shown below: 
factor 
Move: 5 6 ; 
ctlFormula 
notMove: 0 1 2 3 4 ; 
ctlFormula 
eg (notMove): 0 1 2 3 ; 
expresie 
( Start and (eg(notMove)) ) : 1 2 ; 
termen 
not ((Startand(eg(notMove)))): 0 3 4 5 6 ; 
ctlFormula 
ag (not((Startand(eg(notMove))))): ; 
For the original model has been found that the f1 
formula was not satisfied in all the model states. We 
proved in section 5 that if we are applying the algorithm 
for CTL model update, the states s2 and s3 will be 
updated. Thus was obtained a new model with two new 
states s2 and s3. Using our CTL model checker generator 
on the new model has shown that the f1 formula was 
satisfied in all the new model states: 
factor 
Start: 4 5 ; 
factor 
Move: 5 6 ; 
termen 
not Move: 0 1 2 3 4 ; 
ctlFormula 
eg (notMove): 0 1 2 3 ; 
expresie 
( Start and (eg(notMove)) ) : ; 
termen 
not ((Startand(eg(notMove)))): 0 1 2 3 4 5 6 ; 
ctlFormula 
ag (not((Startand(eg(notMove))))): 0 1 2 3 4 5 6 ; 
The complete implementation of our CTL model 
checker is provided as a Netbeans 6.1 project, which 
include the java code generated by the ANTLR. 
References: 
[1] Baral C. and Y. Zhang, “Knowledge updates: 
semantics and complexity issues”, Artificial 
Intelligence, 164, 209.243, 2005. 
[2] Buccafurri F., T. Eiter, G. Gottlob, and N. Leone, 
“Enhancing model checking in verification by ai 
techniques”, Artificial Intelligence, 112, 57.104, 
1999. 
[3] Gomaa H., Software Design Methods for Concurrent 
and Real-Time Systems, Addision-Wesley Publishing 
Company, Reading Massachusetts, 1993 
[4] Harris H. and M. Ryan, ”Theoretical foundations of 
updating systems”, in the Prodeedings 18th IEEE pp. 
291.298, 2003. 
[5] Ding Yulin, Yan Zhang, ”CTL Model Update: 
Semantics, Computations and Implementation”. 
ECAI 2006, Italy. 
[6] Laura Cacovean, Florin Stoica, Algebraic 
Specification Implementation for CTL Model 
Checker Using ANTLR Tools, 2008 WSEAS 
International Conferences, Computers and 
Simulation in Modern Science - Volume II, 
Bucharest, Romania, Nov. 2008, ISSN: 1790-5117, 
ISBN: 978-960-474-032-1 
[7] Terence Parr , The Definitive ANTLR Reference, 
Building Domain-Specific Languages, version: 2007 
ISSN: 1790-5109 174 ISBN: 978-960-474-099-4

More Related Content

What's hot (11)

Laplace
LaplaceLaplace
Laplace
 
Chapter 1(3)DIMENSIONAL ANALYSIS
Chapter 1(3)DIMENSIONAL ANALYSISChapter 1(3)DIMENSIONAL ANALYSIS
Chapter 1(3)DIMENSIONAL ANALYSIS
 
Inverse Laplace Transform
Inverse Laplace TransformInverse Laplace Transform
Inverse Laplace Transform
 
Presentation1
Presentation1Presentation1
Presentation1
 
Mba Ebooks ! Edhole
Mba Ebooks ! EdholeMba Ebooks ! Edhole
Mba Ebooks ! Edhole
 
14210111030
1421011103014210111030
14210111030
 
Presentation1
Presentation1Presentation1
Presentation1
 
Laplace Transformation & Its Application
Laplace Transformation & Its ApplicationLaplace Transformation & Its Application
Laplace Transformation & Its Application
 
Signals and Systems Assignment Help
Signals and Systems Assignment HelpSignals and Systems Assignment Help
Signals and Systems Assignment Help
 
Learning object 1 physics 101
Learning object 1 physics 101Learning object 1 physics 101
Learning object 1 physics 101
 
Laplace transformation
Laplace transformationLaplace transformation
Laplace transformation
 

Viewers also liked

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
 
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
 
AQAA Membership Benefits
AQAA Membership BenefitsAQAA Membership Benefits
AQAA Membership Benefitstjpholden
 
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 Nonlinear Reinforcement Scheme for Stochastic Learning Automata
A New Nonlinear Reinforcement Scheme for Stochastic Learning AutomataA New Nonlinear Reinforcement Scheme for Stochastic Learning Automata
A New Nonlinear Reinforcement Scheme for Stochastic Learning Automatainfopapers
 
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
 
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
 
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
 
Nutrition & Supplement :: How long does marijuana stay in your system?
Nutrition & Supplement :: How long does marijuana stay in your system?Nutrition & Supplement :: How long does marijuana stay in your system?
Nutrition & Supplement :: How long does marijuana stay in your system?tenuousdemonstr13
 
Generating JADE agents from SDL specifications
Generating JADE agents from SDL specificationsGenerating JADE agents from SDL specifications
Generating JADE agents from SDL specificationsinfopapers
 
Major fishing nation of the world
Major fishing nation of the worldMajor fishing nation of the world
Major fishing nation of the worldvivek kumar
 

Viewers also liked (13)

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
 
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
 
AQAA Membership Benefits
AQAA Membership BenefitsAQAA Membership Benefits
AQAA Membership Benefits
 
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
 
KEIO PICNIC CLUB
KEIO PICNIC CLUBKEIO PICNIC CLUB
KEIO PICNIC CLUB
 
A New Nonlinear Reinforcement Scheme for Stochastic Learning Automata
A New Nonlinear Reinforcement Scheme for Stochastic Learning AutomataA New Nonlinear Reinforcement Scheme for Stochastic Learning Automata
A New Nonlinear Reinforcement Scheme for Stochastic Learning Automata
 
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 ...
 
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
 
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
 
Raising Bilingual Kids
Raising Bilingual KidsRaising Bilingual Kids
Raising Bilingual Kids
 
Nutrition & Supplement :: How long does marijuana stay in your system?
Nutrition & Supplement :: How long does marijuana stay in your system?Nutrition & Supplement :: How long does marijuana stay in your system?
Nutrition & Supplement :: How long does marijuana stay in your system?
 
Generating JADE agents from SDL specifications
Generating JADE agents from SDL specificationsGenerating JADE agents from SDL specifications
Generating JADE agents from SDL specifications
 
Major fishing nation of the world
Major fishing nation of the worldMajor fishing nation of the world
Major fishing nation of the world
 

Similar to CTL Model Update Implementation Using ANTLR Tools

A New Model Checking Tool
A New Model Checking ToolA New Model Checking Tool
A New Model Checking Toolinfopapers
 
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
 
Asymptotic features of Hessian Matrix in Receding Horizon Model Predictive Co...
Asymptotic features of Hessian Matrix in Receding Horizon Model Predictive Co...Asymptotic features of Hessian Matrix in Receding Horizon Model Predictive Co...
Asymptotic features of Hessian Matrix in Receding Horizon Model Predictive Co...TELKOMNIKA JOURNAL
 
Investigation of Parameter Behaviors in Stationarity of Autoregressive and Mo...
Investigation of Parameter Behaviors in Stationarity of Autoregressive and Mo...Investigation of Parameter Behaviors in Stationarity of Autoregressive and Mo...
Investigation of Parameter Behaviors in Stationarity of Autoregressive and Mo...BRNSS Publication Hub
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentIJERD Editor
 
Servo systems-integral-state-feedback-lecture-2020
Servo systems-integral-state-feedback-lecture-2020Servo systems-integral-state-feedback-lecture-2020
Servo systems-integral-state-feedback-lecture-2020cairo university
 
On observer design methods for a
On observer design methods for aOn observer design methods for a
On observer design methods for acsandit
 
On the Fractional Optimal Control Problems With Singular and Non–Singular ...
On  the Fractional Optimal Control Problems  With Singular and Non–Singular  ...On  the Fractional Optimal Control Problems  With Singular and Non–Singular  ...
On the Fractional Optimal Control Problems With Singular and Non–Singular ...Scientific Review SR
 
Using Subspace Pursuit Algorithm to Improve Performance of the Distributed Co...
Using Subspace Pursuit Algorithm to Improve Performance of the Distributed Co...Using Subspace Pursuit Algorithm to Improve Performance of the Distributed Co...
Using Subspace Pursuit Algorithm to Improve Performance of the Distributed Co...Polytechnique Montreal
 
A Mathematical Review to Estimate the Fate of a Drug Following Open Two Compa...
A Mathematical Review to Estimate the Fate of a Drug Following Open Two Compa...A Mathematical Review to Estimate the Fate of a Drug Following Open Two Compa...
A Mathematical Review to Estimate the Fate of a Drug Following Open Two Compa...BRNSS Publication Hub
 
Report Network Modelling
Report Network ModellingReport Network Modelling
Report Network ModellingFerro Demetrio
 
New controllers efficient model based design method
New controllers efficient model based design methodNew controllers efficient model based design method
New controllers efficient model based design methodAlexander Decker
 
Selection and Validation of Mathematical Models of Power Converters using Rap...
Selection and Validation of Mathematical Models of Power Converters using Rap...Selection and Validation of Mathematical Models of Power Converters using Rap...
Selection and Validation of Mathematical Models of Power Converters using Rap...IJECEIAES
 
Modern Control System (BE)
Modern Control System (BE)Modern Control System (BE)
Modern Control System (BE)PRABHAHARAN429
 
Estimation of Spring Stiffness Under Conditions of Uncertainty. Interval Appr...
Estimation of Spring Stiffness Under Conditions of Uncertainty. Interval Appr...Estimation of Spring Stiffness Under Conditions of Uncertainty. Interval Appr...
Estimation of Spring Stiffness Under Conditions of Uncertainty. Interval Appr...atsidaev
 
A simplified method of designing a phase lead compensator to improve the m-s-...
A simplified method of designing a phase lead compensator to improve the m-s-...A simplified method of designing a phase lead compensator to improve the m-s-...
A simplified method of designing a phase lead compensator to improve the m-s-...eSAT Journals
 

Similar to CTL Model Update Implementation Using ANTLR Tools (20)

A New Model Checking Tool
A New Model Checking ToolA New Model Checking Tool
A New Model Checking Tool
 
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
 
MSc_thesis
MSc_thesisMSc_thesis
MSc_thesis
 
Asymptotic features of Hessian Matrix in Receding Horizon Model Predictive Co...
Asymptotic features of Hessian Matrix in Receding Horizon Model Predictive Co...Asymptotic features of Hessian Matrix in Receding Horizon Model Predictive Co...
Asymptotic features of Hessian Matrix in Receding Horizon Model Predictive Co...
 
04_AJMS_453_22_compressed.pdf
04_AJMS_453_22_compressed.pdf04_AJMS_453_22_compressed.pdf
04_AJMS_453_22_compressed.pdf
 
Investigation of Parameter Behaviors in Stationarity of Autoregressive and Mo...
Investigation of Parameter Behaviors in Stationarity of Autoregressive and Mo...Investigation of Parameter Behaviors in Stationarity of Autoregressive and Mo...
Investigation of Parameter Behaviors in Stationarity of Autoregressive and Mo...
 
04_AJMS_288_20.pdf
04_AJMS_288_20.pdf04_AJMS_288_20.pdf
04_AJMS_288_20.pdf
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
 
Servo systems-integral-state-feedback-lecture-2020
Servo systems-integral-state-feedback-lecture-2020Servo systems-integral-state-feedback-lecture-2020
Servo systems-integral-state-feedback-lecture-2020
 
On observer design methods for a
On observer design methods for aOn observer design methods for a
On observer design methods for a
 
On the Fractional Optimal Control Problems With Singular and Non–Singular ...
On  the Fractional Optimal Control Problems  With Singular and Non–Singular  ...On  the Fractional Optimal Control Problems  With Singular and Non–Singular  ...
On the Fractional Optimal Control Problems With Singular and Non–Singular ...
 
Using Subspace Pursuit Algorithm to Improve Performance of the Distributed Co...
Using Subspace Pursuit Algorithm to Improve Performance of the Distributed Co...Using Subspace Pursuit Algorithm to Improve Performance of the Distributed Co...
Using Subspace Pursuit Algorithm to Improve Performance of the Distributed Co...
 
A Mathematical Review to Estimate the Fate of a Drug Following Open Two Compa...
A Mathematical Review to Estimate the Fate of a Drug Following Open Two Compa...A Mathematical Review to Estimate the Fate of a Drug Following Open Two Compa...
A Mathematical Review to Estimate the Fate of a Drug Following Open Two Compa...
 
Report Network Modelling
Report Network ModellingReport Network Modelling
Report Network Modelling
 
Daa chapter9
Daa chapter9Daa chapter9
Daa chapter9
 
New controllers efficient model based design method
New controllers efficient model based design methodNew controllers efficient model based design method
New controllers efficient model based design method
 
Selection and Validation of Mathematical Models of Power Converters using Rap...
Selection and Validation of Mathematical Models of Power Converters using Rap...Selection and Validation of Mathematical Models of Power Converters using Rap...
Selection and Validation of Mathematical Models of Power Converters using Rap...
 
Modern Control System (BE)
Modern Control System (BE)Modern Control System (BE)
Modern Control System (BE)
 
Estimation of Spring Stiffness Under Conditions of Uncertainty. Interval Appr...
Estimation of Spring Stiffness Under Conditions of Uncertainty. Interval Appr...Estimation of Spring Stiffness Under Conditions of Uncertainty. Interval Appr...
Estimation of Spring Stiffness Under Conditions of Uncertainty. Interval Appr...
 
A simplified method of designing a phase lead compensator to improve the m-s-...
A simplified method of designing a phase lead compensator to improve the m-s-...A simplified method of designing a phase lead compensator to improve the m-s-...
A simplified method of designing a phase lead compensator to improve the m-s-...
 

More from infopapers

Implementing an ATL Model Checker tool using Relational Algebra concepts
Implementing an ATL Model Checker tool using Relational Algebra conceptsImplementing an ATL Model Checker tool using Relational Algebra concepts
Implementing an ATL Model Checker tool using Relational Algebra conceptsinfopapers
 
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
 
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 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
 
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
 
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
 
Optimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithm
Optimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithmOptimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithm
Optimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithminfopapers
 
Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...
Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...
Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...infopapers
 
Using the Breeder GA to Optimize a Multiple Regression Analysis Model
Using the Breeder GA to Optimize a Multiple Regression Analysis ModelUsing the Breeder GA to Optimize a Multiple Regression Analysis Model
Using the Breeder GA to Optimize a Multiple Regression Analysis Modelinfopapers
 
Building a new CTL model checker using Web Services
Building a new CTL model checker using Web ServicesBuilding a new CTL model checker using Web Services
Building a new CTL model checker using Web Servicesinfopapers
 
A new Reinforcement Scheme for Stochastic Learning Automata
A new Reinforcement Scheme for Stochastic Learning AutomataA new Reinforcement Scheme for Stochastic Learning Automata
A new Reinforcement Scheme for Stochastic Learning Automatainfopapers
 
A Distributed CTL Model Checker
A Distributed CTL Model CheckerA Distributed CTL Model Checker
A Distributed CTL Model Checkerinfopapers
 

More from infopapers (19)

Implementing an ATL Model Checker tool using Relational Algebra concepts
Implementing an ATL Model Checker tool using Relational Algebra conceptsImplementing an ATL Model Checker tool using Relational Algebra concepts
Implementing an ATL Model Checker tool using Relational Algebra concepts
 
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
 
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 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...
 
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
 
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
 
Optimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithm
Optimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithmOptimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithm
Optimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithm
 
Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...
Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...
Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...
 
Using the Breeder GA to Optimize a Multiple Regression Analysis Model
Using the Breeder GA to Optimize a Multiple Regression Analysis ModelUsing the Breeder GA to Optimize a Multiple Regression Analysis Model
Using the Breeder GA to Optimize a Multiple Regression Analysis Model
 
Building a new CTL model checker using Web Services
Building a new CTL model checker using Web ServicesBuilding a new CTL model checker using Web Services
Building a new CTL model checker using Web Services
 
A new Reinforcement Scheme for Stochastic Learning Automata
A new Reinforcement Scheme for Stochastic Learning AutomataA new Reinforcement Scheme for Stochastic Learning Automata
A new Reinforcement Scheme for Stochastic Learning Automata
 
A Distributed CTL Model Checker
A Distributed CTL Model CheckerA Distributed CTL Model Checker
A Distributed CTL Model Checker
 

Recently uploaded

Cyanide resistant respiration pathway.pptx
Cyanide resistant respiration pathway.pptxCyanide resistant respiration pathway.pptx
Cyanide resistant respiration pathway.pptxCherry
 
Call Girls Ahmedabad +917728919243 call me Independent Escort Service
Call Girls Ahmedabad +917728919243 call me Independent Escort ServiceCall Girls Ahmedabad +917728919243 call me Independent Escort Service
Call Girls Ahmedabad +917728919243 call me Independent Escort Serviceshivanisharma5244
 
Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....
Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....
Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....muralinath2
 
development of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virusdevelopment of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virusNazaninKarimi6
 
Site specific recombination and transposition.........pdf
Site specific recombination and transposition.........pdfSite specific recombination and transposition.........pdf
Site specific recombination and transposition.........pdfCherry
 
Phenolics: types, biosynthesis and functions.
Phenolics: types, biosynthesis and functions.Phenolics: types, biosynthesis and functions.
Phenolics: types, biosynthesis and functions.Cherry
 
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS ESCORT SERVICE In Bhiwan...
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS  ESCORT SERVICE In Bhiwan...Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS  ESCORT SERVICE In Bhiwan...
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS ESCORT SERVICE In Bhiwan...Monika Rani
 
Module for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learningModule for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learninglevieagacer
 
biology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGYbiology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGY1301aanya
 
Human genetics..........................pptx
Human genetics..........................pptxHuman genetics..........................pptx
Human genetics..........................pptxCherry
 
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bAsymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bSérgio Sacani
 
Role of AI in seed science Predictive modelling and Beyond.pptx
Role of AI in seed science  Predictive modelling and  Beyond.pptxRole of AI in seed science  Predictive modelling and  Beyond.pptx
Role of AI in seed science Predictive modelling and Beyond.pptxArvind Kumar
 
Cot curve, melting temperature, unique and repetitive DNA
Cot curve, melting temperature, unique and repetitive DNACot curve, melting temperature, unique and repetitive DNA
Cot curve, melting temperature, unique and repetitive DNACherry
 
Factory Acceptance Test( FAT).pptx .
Factory Acceptance Test( FAT).pptx       .Factory Acceptance Test( FAT).pptx       .
Factory Acceptance Test( FAT).pptx .Poonam Aher Patil
 
Thyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate ProfessorThyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate Professormuralinath2
 
Cyathodium bryophyte: morphology, anatomy, reproduction etc.
Cyathodium bryophyte: morphology, anatomy, reproduction etc.Cyathodium bryophyte: morphology, anatomy, reproduction etc.
Cyathodium bryophyte: morphology, anatomy, reproduction etc.Cherry
 
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptxClimate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptxDiariAli
 
Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.Cherry
 

Recently uploaded (20)

Cyanide resistant respiration pathway.pptx
Cyanide resistant respiration pathway.pptxCyanide resistant respiration pathway.pptx
Cyanide resistant respiration pathway.pptx
 
Call Girls Ahmedabad +917728919243 call me Independent Escort Service
Call Girls Ahmedabad +917728919243 call me Independent Escort ServiceCall Girls Ahmedabad +917728919243 call me Independent Escort Service
Call Girls Ahmedabad +917728919243 call me Independent Escort Service
 
Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....
Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....
Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....
 
development of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virusdevelopment of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virus
 
Site specific recombination and transposition.........pdf
Site specific recombination and transposition.........pdfSite specific recombination and transposition.........pdf
Site specific recombination and transposition.........pdf
 
Phenolics: types, biosynthesis and functions.
Phenolics: types, biosynthesis and functions.Phenolics: types, biosynthesis and functions.
Phenolics: types, biosynthesis and functions.
 
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS ESCORT SERVICE In Bhiwan...
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS  ESCORT SERVICE In Bhiwan...Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS  ESCORT SERVICE In Bhiwan...
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS ESCORT SERVICE In Bhiwan...
 
PATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICE
PATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICEPATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICE
PATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICE
 
Module for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learningModule for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learning
 
biology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGYbiology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGY
 
Human genetics..........................pptx
Human genetics..........................pptxHuman genetics..........................pptx
Human genetics..........................pptx
 
Early Development of Mammals (Mouse and Human).pdf
Early Development of Mammals (Mouse and Human).pdfEarly Development of Mammals (Mouse and Human).pdf
Early Development of Mammals (Mouse and Human).pdf
 
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bAsymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
 
Role of AI in seed science Predictive modelling and Beyond.pptx
Role of AI in seed science  Predictive modelling and  Beyond.pptxRole of AI in seed science  Predictive modelling and  Beyond.pptx
Role of AI in seed science Predictive modelling and Beyond.pptx
 
Cot curve, melting temperature, unique and repetitive DNA
Cot curve, melting temperature, unique and repetitive DNACot curve, melting temperature, unique and repetitive DNA
Cot curve, melting temperature, unique and repetitive DNA
 
Factory Acceptance Test( FAT).pptx .
Factory Acceptance Test( FAT).pptx       .Factory Acceptance Test( FAT).pptx       .
Factory Acceptance Test( FAT).pptx .
 
Thyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate ProfessorThyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate Professor
 
Cyathodium bryophyte: morphology, anatomy, reproduction etc.
Cyathodium bryophyte: morphology, anatomy, reproduction etc.Cyathodium bryophyte: morphology, anatomy, reproduction etc.
Cyathodium bryophyte: morphology, anatomy, reproduction etc.
 
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptxClimate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
 
Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.
 

CTL Model Update Implementation Using ANTLR Tools

  • 1. Proceedings of the 13th WSEAS International Conference on COMPUTERS CTL Model Update Implementation Using ANTLR Tools LAURA FLORENTINA CACOVEAN Department of Computer Science Lucian Blaga University of Sibiu, Faculty of Sciences Str. Dr. Ion Ratiu 5-7, 550012, Sibiu ROMANIA laura.cacovean@ulbsibiu.ro FLORIN STOICA Department of Computer Science Lucian Blaga University of Sibiu, Faculty of Sciences Str. Dr. Ion Ratiu 5-7, 550012, Sibiu ROMANIA florin.stoica@ulbsibiu.ro Abstract: - The model checkers are tools which can be used to verify that a given system satisfies a given temporal logic formula. In this paper is presented an algorithm which implements a CTL model updater towards the development of an automatic model modification tool and is illustrated a case study by applying the model update to the elevator control scenario, using for the implementation of the formula grammar the ANTLR (Another Tool for Language Recognition) instruments. Key-Words: - CTL model checkers, ANTLR implementation, model update, algorithm, directed graph 1 Introduction Verification of a model is one of the most useful technologies for automatic system verifications. In the model checking approach, the system behaviour is modeled by a Kripke structure. The specification properties that must be accomplished by a system are expressed as formulas in a propositional temporal logic (for example CTL). The model checking takes as input the model and a formula, and then checks if the formula is satisfied or not by the Kripke model. If the formula is not satisfied by the model, the system will provide an error and any information necessary to know where the formula was not satisfied. In this paper is defined the principle of minimal change for the update of a CTL model. The necessary semantic and the computational properties are provided for the CTL model update. Based on these ascertainments is developed the algorithm for updating the CTL model. Presenting a case study, we will show that the new model can be then viewed as a possible correction of the original system specification. 2 CTL Syntax and semantics CTL is a branching-time logic, meaning that its formulas are interpreted over all paths beginning in a given state of the Kripke structure. A Kripke model M over AP is a triple M=(S, Rel, P:AP→2S) where S is a finite set of states, Rel⊆S×S is a transition relation, P:SÆ2AP is a function that assigns each state with a set of atomic propositions. The CTL formulas are defined by the following rules [1]: (a) The logical constants true and false are CTL formulas; (b) Every atomic proposition, ap∈AP is a CTL formula; (c) If f1 and f2 are CTL formulas, then so are ¬f1, f1∧f2, f1∨f2, EX f1, AX f1, E[f1Uf2], and A[f1Uf2]. 2.1 Syntax definition of CTL model checker A CTL has the following syntax given in Backus-Naur form [4]: f :: ⊤ |⊥ |p|(¬ f1)| f1∧f2| f1∨f2| f1⊂ f2| AX f1| EX f1| AG f1| EG f1| AF f1| EF f1|A[f1Uf2]| E[f1Uf2] where ∀p∈AP. A CTL formula is evaluated on a Kripke model M. A path in M from a state s is an infinite sequence of states and is denoted as π = [s0, s1, … , si-1, si, si+1,…] such that s0=s and (si, si+1) ∈ Rel holds for all i ≥ 0. We write (si, si+1) ⊆ π and si∈ π. If we express a path as π = [s0, s1, …, si, … , sj , …] and i < j, we say that si is a state earlier than sj in π and si < sj. For simplicity, we may use succ(s) to denote state s0 if there is a relation (s, s0) in Rel. 2.2 Semantic definition of CTL model checker Let M=(S, Rel, P:AP→2S) be a Kripke model for CTL. Given any s in S, we define whether a CTL formula f holds in state s. We denote this by (M, s) ⊨ f. The satisfaction relation ⊨ is defined by structural induction on fourteen CTL formulas [10]. Without a detailed declaration we presuppose that all the five formulae CTL presented in the contextually are by-path satisfied. Toward example, we consider the update of a Kripke model with CTL formulas, beginning from the fact that f is not satisfied. The input is a CTL Kripke model which not satisfies the formula f and the output is an updated CTL Kripke model which satisfies the input formula. In the beginning is presented a general definition of the CTL model update. ISSN: 1790-5109 169 ISBN: 978-960-474-099-4
  • 2. Proceedings of the 13th WSEAS International Conference on COMPUTERS The next definition presents just a prerequisite for requirements of the CTL model updater and not tells how the update to be performed. The CTL Update Definition [4]: Be a CTL Kripke model M = (S, Rel,P) and a CTL formula f. An update of M = (M, s0), where s0 ∈ S with f is a CTL Kripke model M' = (S', Rel', P') such that M' = (M', s0'), (M', s0')⊨ f where s0'∈ S'. We use Update(M, f) to denote the result M' and Update(M , f) =M' if M' ⊨ f. 3 Primitive update operations Pr1. Add an only relation. Given M = (S, Rel,P), its updated model M' = (S', Rel',P') is the result of M having added only one new relation. That is S'= S, P' = P, and Rel' = Rel∪{(saddrel, saddrel2)} where (saddrel, saddrel2)∉Rel for one pair of saddrel,saddrel2∈S. Pr2. Remove an only relation. Given M = (S, Rel, P), its updated model M' = (S', Rel',P ') is the result of M having removed only one existing relation. That is, S'= S, P' = P, and Rel' = Rel-{(sremrel, sremrel2)} where (sremrel, sremrel2)∈Rel for one pair of sremrel, sremrel2∈S. Pr3. Substitute a state and its associated relations. Given M = (S, Rel, P), its updated model M' = (S', Rel', P') is the result of M having substituted only one existing state and its associated relations. That is, S' = S[s/ssubstate]. S' is the set of states where one state s in S is substituted by ssubstate, Rel' = Rel∪{(si, ssubstate), (ssubstate,sj)| for some si, sj∈S }-{(si,s),(s,sj)| (si,s),(s,sj)∈Rel } and P '(s) = P (s) for all s∈S ∩ S' and P'(ssubstate) = τ (ssubstate), where τ is a truth assignment on ssubstate. Pr4. Add a state and its associated relations. Given M = (S, Rel, P), its updated model M' = (S', Rel', P') is the result of M having added only one new state and its associated relations. That is, S' = S ∪{saddstate}. S' is the set of states where one state s in S is added by saddstate, Rel' = Rel ∪{(si, saddstate), (saddstate,sj)| si,sj∈S∩S'} and P'(s) = P(s) for all s∈S∩S' and P'(saddstate) = τ (saddstate), where τ is a truth assignment on saddstate. Pr5. Remove a state and its associated relations. Given M = (S,Rel, P), its updated model M' = (S',Rel', P') is the result of M having added only one existing state and its associated relations. That is, S' = S-{sremstate| sremstate ∈ S}. S' is the set of states where one state s in S is removed by sremstate, Rel' = Rel-{(si, sremstate), (sremstate,sj)| for some si,sj∈S} and P'(s) = P (s) for all s∈S ∩ S'. All changes on CTL model can be specified in terms of these five operations. We can argue that Pr3 is accomplished by Pr4 and Pr5. Anyway, we treat state substitution differently than a combination of state addition and state deletion. Whenever a substitute of a state is needed, is applied Pr3 directly more than Pr4 followed by Pr5. This thing will simplify the definition of minimal change of the CTL model [10, 2]. The Definition of Admissible Update is given by assertion: Given a CTL Kripke model M = (S, Rel,P), M= (M, s0), where s0 ∈S, and a CTL formula f, Update(M, f) is called admissible if the following conditions hold: (1) Update(M, f) = (M', s0') ⊨ f where M' = (S', Rel', P') and s0' ∈S'; (2) There not exist another resulting model M'' = (S'', Rel'', P'') and s0'' ∈S''; such that (M'',s0'')⊨ f and M''<MM'. We denote M1 <M M2 if M1 ≤M M2 and M2 ≰ M M1. If are given three CTL Kripke models M, M1, M2 where M1 and M2 are obtained from M by applying Pr1, Pr2, Pr3, Pr4, Pr5 operations, we say that M1 is closer to M as M2, denoted as M1 ≤M M2, iff Diff(M,M1) ≼ Diff(M,M2). We denote Diff(M,M1)≼ Diff(M,M2) iff for each i with i = 1,…, 5, DiffPi(M,M1)⊆DiffPi(M,M2) where M, M1, M2 are three CTL models. 4 Semantic Characterizations In this section we will present a variety of semantic characterizations of the CTL model updater that present possible solutions to achieve admissible updates under certain conditions. In many situations, as will be shown in the following, a single type primitive operation will be enough to achieve an admissible updated model. These model characterizations also play an essential role in simplifying the implementation of the CTL model update. First of all we shall return to the definition of the CTL Model Update. The algorithm is designed following a similar style of CTL model checking algorithm SAT [4], where an updated formula is parsed through its structure and recursive calls to proper functions are made to its sub-formulas [2]. From the definition of Admissible Update (stated above) we observe that, for a given CTL Kripke model M and a formula f, there may be many admissible updates satisfying f, where some updates are simpler than others. We consider a special form of path π where the first i states starting from s0 already satisfy formula f. Under this situation, we can simply cut off the path. For example we can apply one time Pr2 or Pr5 to disconnect all other states not satisfying f [10,2]. The implementation can be formulated in the following form: Function UpdateAG(M, f) /* M ⊭ AG f. Update M to satisfy AG f */ { ISSN: 1790-5109 170 ISBN: 978-960-474-099-4
  • 3. Proceedings of the 13th WSEAS International Conference on COMPUTERS 0 Mif M0 = (M,s0) ⊭ f, then Pr3 is applied to s0 such that M' =CTLUpdate( , f ); else { 1. select a path π = [s0 ,s1,…], where Ǝ si∈ π such that Mi =(M,si)⊭ f; 2. select a state si∈ π such that ∄ sj<si with (M,sj)⊭ f then (1) Applying Pr2 to remove relation (pre(si),si), then S′:=S; Rel′:=Rel-{(pre(si),si)}; P′= P, since is removed a only relation; or (2) Applying Pr5 to remove state si, its associated relation, then S′:=S-{si}; Rel′:=Rel-{(pre(si),si),(si,succ(si))} where if associated relations of si ; P′:S′Æ2AP, since S′⊆ S,∀s∈S′,such that i MP′(s):= P(s), is removed a only relation; or (3) Applying Pr3 M'=CTLUpdate( ,f); } if M'⊨ AG f then return M'; else return { UpdateAG(M',f)}; } The above implementation can be formulated in a short form as follows: UpdateAG(M, f) /* M ⊭ AG f. Update M to satisfy AG f */ { 1. select a path π = [s0 ,s1,…], where si∈ π and Mi =(M,si)⊭ f; 2. M'=CTLUpdate( Mi ,f); 3. if M'⊨ AG f then return M'; else return UpdateAG(M',f); } In [5,2] is presented a theorem which characterizes three typical situations for the update with formula EG f. In substance, this theorem says that in order to make formula EG f true, we first select a path, then we can either make a new path based on this path so that all states in the new path satisfy f (Case1), or trim the path from the state where all previous states satisfy f (Case 2) or simply change the assignments for all states which are not satisfying f in the path (Case 3). Proof of this theorem which proves that resulting models are admissible is presented in [5]. The implementation is: Function UpdateEG(M, f) i /* M M⊭ EG f. Update M to satisfy EG f */ { 1. select a path π = [s0 ,s1,…], in M; 2. select a state si∈ π such that Mi =(M,si)⊭ f 3. M'=CTLUpdate( ,f); 4. if M'⊨ EG f then return M'; else return UpdateEG(M',f); } 5 Elevator example In this section we present a case study which illustrates the features of the CTL model update approach. As example we will present a scenario for an elevator control system. The designer analyzes [3] the state-transition diagram showed in Fig. 1, for the solely control transformation, Elevator Controller, and finds eight locked-state events. These locked-state events occur because the Elevator Controller, in most instances, takes one action and then awaits a response before moving onto a new state. In fact, only two event flows, Up Request and Down Request (when we denote with Move state when the request exist) do not qualify as locked-state events, because each of them can arrive any time a client presses a floor button or when the scheduler schedules an elevator. The remaining events can occur only when the Elevator Controller is expecting them. We begin from the state diagram transition of an elevator Controller shown in Fig. 1. Fig 1. State Transition Diagram for the Elevator Controller Suppose that we have an elevator system control which includes in first case a process for normal moving of lift cabin and in second case a faulty process. In first case for the normal moving of lift cabin process, doesn’t shall appear the errors, so the door is closed and the passengers are going up or down when the button is pressed. The second process is the faulty process, when the lift cabin doesn’t moving when the button is pressed ISSN: 1790-5109 171 ISBN: 978-960-474-099-4
  • 4. Proceedings of the 13th WSEAS International Conference on COMPUTERS for start the moving. The aim of the model is to find where the faulty process is. The objective of model updating, with other words, is to correct the original model which contains the faulty process. Starting from the original CTL structure for the elevator control system presented in the Fig. 2 with seven states of the system denoted with s1, s2,…, s7, we have added the state sd for checking if another passenger is requesting the elevator. The Kripke model has seven states and the propositional variables are from the set {Start, Close, Move, Error}. Start represented the start button for start moving up or down the elevator, Close represent the close door to the lift cabin, Move is moving up or down the elevator and Error means occur some error. The formal definition of the Kripke structure of the elevator control is given by: M = (S, Rel, P), where S={s1,s2,…,s7}, Rel={(s1,s2), (s2,s3), (s3,s2), (s3,s4), (s4,s3), (s4,s5), (s5,s6), (s6,s7), (s7,s7), (s7,s4), (s4,s1), (s1,sd), (sd,s4), (sd,s1)}, AP={Start, Close, Move, Error}, P assigns state s1 in M with not start, not close, not move and not error, that is set {¬Start,¬Close,¬Move,¬Error}. We denote Start with St, Close with Cl, Move with Mv and Error with Er. P assigns state s2 in M with {St,¬Cl,¬Mv, Er}, the state s3 in M with {St, Cl,¬Mv, Er}, the state s4 in M with {¬St, Cl,¬Mv,¬Er}, the state s5 in M with {St,Cl,¬Mv,¬Er}, the state s6 in M with {St,Cl,Mv,¬Er} and the state s7 in M with {¬St,Cl, Mv,¬Er}. The model is shown below: Fig 2. The CTL structure of Elevator Controller In this figure START represents the Start elevator, Open and Close represents the open door and close the door, RESET is for a new initialization and DONE represents the done moving of elevator. The faulty process from this graph is the path s1→s2→s3→s4. The interpretation is following. In first state is started the elevator {s1,s2}. In the state s2 we observed that have not Cl (that is the door don't close) and the moving is out of order and it pointed some error which is passed from the state s2 in the state s3 where the door elevator shall be closed. In the state s3 there is an error and the elevator moving don’t starts so must be performed a reset for the reestablishment. That is, the control is passed from the state s3 to the state s4. The process with normal behavior is the case obtained from the original CTL Kripke structure through s1→ s4 → s5 → s6 → s7. Notice that this model don't satisfies the property f = ¬ EF(St ∧ EG ¬ Mv) [4]. The CTL model updater brings a minimum modification of the Kripke model which satisfies the property f. Firstly, must be analyzed f in AG(¬ (St ∧ EG ¬ Mv)) for removing the symbol ¬. The translation is doing with the function Update¬. Then is necessary to check whether each state satisfies ¬ (St ∧ (EG ¬Mv)). This string must be parsed before it is checked. Selecting the EG¬Mv for elevator model means that is selected any path having any state with ¬Mv. Then must be searched the paths in the form [s1,s2,s3,s4,s1,…] and [s1,s4,s1,…] which represents the connected components loops satisfying EG¬Mv. After that are identified all states with St, these are {s2,s3,s5,s6}. Then are selected the states with St and ¬Mv, these are {s2,s3}. Because the AG(¬(St ∧ EG ¬ Mv)) formula identifies that the model has no both states St and ¬Mv, is necessary an update of states s2 and s3 so as they will appear in the updated model. For the execution of UpdateAG function we can use three minimum updates: (case 1) applying Pr2 to remove the connection (s1, s2); (case 2) applying the property Pr5 to removed the state s2 and the associate relations e.g. (s1,s2), (s2,s3) and (s4,s3); and (case 3) applying Pr3 on the state s2 and s3. Using case three, the first translation will be from ¬(St∧EG¬Mv) to ¬St ∧ ¬EG¬Mv, therefore s2 and s3 are updated with either ¬St or ¬EG¬Mv by the main function CTLUpdate what is dealing with ∨ and with the Update_ function. In other words, the new states of s2 and s3 will be denoted with s2′ and s3′. The UpdateAG(M, ¬(St ∧ EG¬Mv)) function calls the main function CTLUpdate(M, ¬St) or CTLUpdate(M, ¬EG¬Mv) for the case f1 ∨ f2. We choose the ¬St because this is simplest than ¬EG¬Mv. In this case is necessary to update the atomic proposition St in states s2 and s3 of path π with ¬St instead, thus there are no states on path π having the specification EF (St ∧ EG ¬Mv). That is M′ = (M ′, s1) ⊨ ¬EF (St ∧ EG ¬Mv). The resulting model is presented in Fig. 3. ISSN: 1790-5109 172 ISBN: 978-960-474-099-4
  • 5. Proceedings of the 13th WSEAS International Conference on COMPUTERS Fig. 3 The updated model for an elevator control using the primitive P3 where s2′ is set {¬St, ¬ Cl, ¬ Mv, Er} and the state s3′ is set {¬ St, Cl, ¬ Mv, Er}. The algorithm will generate one of the three resulting models without specific indication. Because of criteria used they are all minimally changed from the original model. 6 ANTLR In this section, we will present the first formula f1 = AG(not (St and (EG (not Mv) )) that was checked by our implementation using the ANTLR tools. The ANTLR 3 [7] tools are used for the construction of software instruments as translators, compilers, recognition and parser of static/dynamic programs. The ANTLR is a generator of compilers; it receives as input a grammar, with a precise description of a language, and generates the source code and other auxiliary files for lexer and parser. The source code of our ANTLR grammar must contain the specification of all macro-operations presented in [6]. We “decorate” the grammar for formula language with actions. ANTLR inserts our actions in the generated code for parser, and parser must execute embedded actions after matching the preceding grammar element. This is the mechanism of formula evaluation for a given model. We define a CTL model checker as an algebraic compiler [6]. The algebraic methodology was used in specification of the ANTLR grammar for CTL formulas. This grammar can be used for the generation and the verification of different models. Using our CTL model checker generator, the user can correct a model in case in which the model was not correct defined and more important is that the result received is easy to be traced by the user. An essential contribution of the implementation presented in this section is that it can be used as a model checker generator. For a given model is automatically generated the java code for a verification tool of satisfiability of CTL formulas. In ANTLRWorks have been implemented all macro-operations of CTL model checker. The program receives as input the model M where are defined the sets S, Rel and P. In figure 4 is showed the implementation of the AG macro. We use Java as target language for the implementation of our model checker tool. Fig.4 Specification of CTL formula grammar in ANTLRWorks The detailed specification of AG operation is defined in [6], and the specification of and operation as actions in ANTLR grammar is presented in the following: //Ctlformula→”ag” formula ctlFormula returns [HashSet set] : 'ag' f=formula { HashSet rez = new HashSet(); // Z:=∅; HashSet rez1 = new HashSet($f.set); // Z':= dctl(t); while (!rez.equals(rez1)) // while Z≠Z' do { rez.clear(); rez.addAll(rez1); //Z:=Z' HashSet tmp = new HashSet(); boolean include; for (int i=0; i<MAX_STARI; i++) { include = true; for (int j=0; j<MAX_STARI; j++) if (rel[i][j]==1) //∃ succ(s), s∈S if (!(rez1.contains(new Integer(j)))) include = false; if (include) tmp.add(new Integer(i)); // succ(s)⊆ Z' } // end for rez1.retainAll(tmp); //Z':=Z'∩{s∈S| succ(s)⊆Z'}; }// end while trace("ctlFormula",6); ISSN: 1790-5109 173 ISBN: 978-960-474-099-4
  • 6. Proceedings of the 13th WSEAS International Conference on COMPUTERS printSet(" ag " + $f.text,rez1); $set = rez1; // dctl(Allglobal(t)) :=Z'; } … For checking the first formula f1 of our example, we will use the ANTLR debugging facility to visualize the parse tree and execution of actions of grammar rules, i.e. evaluation of the CTL formula. The CTL rules set which are directly specified in the syntactic algebra of CTL, denoted by Sinctl, can be ambiguous, therefore it is necessary that the set of formulas from Sinctl to be divided in the non-terminal symbols denoted with Ctlformula, Formula, Factor, Termen and Expresie. Thus, the defined rules deliver non-ambiguous specification in algebra Sinctl. In section 5 we presented as an example the elevator controller. Starting from the original model it was seen that there is a situation in which the f1 formula is not satisfied. This has been verified with our implementation of model checker. The states from our implementation begin from state s0. The result obtained using the ANTLR implementation of the CTL model checker is shown below: factor Move: 5 6 ; ctlFormula notMove: 0 1 2 3 4 ; ctlFormula eg (notMove): 0 1 2 3 ; expresie ( Start and (eg(notMove)) ) : 1 2 ; termen not ((Startand(eg(notMove)))): 0 3 4 5 6 ; ctlFormula ag (not((Startand(eg(notMove))))): ; For the original model has been found that the f1 formula was not satisfied in all the model states. We proved in section 5 that if we are applying the algorithm for CTL model update, the states s2 and s3 will be updated. Thus was obtained a new model with two new states s2 and s3. Using our CTL model checker generator on the new model has shown that the f1 formula was satisfied in all the new model states: factor Start: 4 5 ; factor Move: 5 6 ; termen not Move: 0 1 2 3 4 ; ctlFormula eg (notMove): 0 1 2 3 ; expresie ( Start and (eg(notMove)) ) : ; termen not ((Startand(eg(notMove)))): 0 1 2 3 4 5 6 ; ctlFormula ag (not((Startand(eg(notMove))))): 0 1 2 3 4 5 6 ; The complete implementation of our CTL model checker is provided as a Netbeans 6.1 project, which include the java code generated by the ANTLR. References: [1] Baral C. and Y. Zhang, “Knowledge updates: semantics and complexity issues”, Artificial Intelligence, 164, 209.243, 2005. [2] Buccafurri F., T. Eiter, G. Gottlob, and N. Leone, “Enhancing model checking in verification by ai techniques”, Artificial Intelligence, 112, 57.104, 1999. [3] Gomaa H., Software Design Methods for Concurrent and Real-Time Systems, Addision-Wesley Publishing Company, Reading Massachusetts, 1993 [4] Harris H. and M. Ryan, ”Theoretical foundations of updating systems”, in the Prodeedings 18th IEEE pp. 291.298, 2003. [5] Ding Yulin, Yan Zhang, ”CTL Model Update: Semantics, Computations and Implementation”. ECAI 2006, Italy. [6] Laura Cacovean, Florin Stoica, Algebraic Specification Implementation for CTL Model Checker Using ANTLR Tools, 2008 WSEAS International Conferences, Computers and Simulation in Modern Science - Volume II, Bucharest, Romania, Nov. 2008, ISSN: 1790-5117, ISBN: 978-960-474-032-1 [7] Terence Parr , The Definitive ANTLR Reference, Building Domain-Specific Languages, version: 2007 ISSN: 1790-5109 174 ISBN: 978-960-474-099-4