270 likes | 374 Views
Tree Regular Model Checking. P. Abdulla, B. Jonsson, P. Mahata and J. d’Orso. Uppsala University. Presentation Overview. Aim Regular model checking Trees, tree relations Transitive closures Results, conclusions. Aim. A uniform analysis framework for systems :. With counters
E N D
Tree Regular Model Checking P. Abdulla, B. Jonsson, P. Mahata and J. d’Orso Uppsala University
Presentation Overview • Aim • Regular model checking • Trees, tree relations • Transitive closures • Results, conclusions
Aim A uniform analysis framework for systems : • With counters • With stacks • With channels • parameterized These systems can be characterized by finite-state automata.
Regular model checking Most important operation: computing transitive closures. • Why ? Because it allows many analysis: • Reachability • safety properties • fairness properties
Example A simple token passing protocol:
Example A simple token passing protocol:
Example A simple token passing protocol:
Example A simple token passing protocol:
Our Contribution Regular Model Checking is nice, but… … it’s only valid for linear or circular topologies ! Idea: extend to trees instead !
Trees e this node is called “root” a 0 1 a b 01 00 10 c label b d 010 node d
0 1 or and and or or and Tree Automata input symbol q1 q2 state
and or 1 0 1 Tree Automata Run: Input:
and or 1 0 1 Tree Automata Run: Input: q1 q1 Transition: 0
and or 1 0 1 Tree Automata Run: Input: q2 q1 q2 q2 Transition: 1
and or 1 0 1 Tree Automata Run: Input: q2 q2 q1 q2 q1 q2 Transition: or q2
and or 1 0 1 Tree Automata Run: Input: q2 q2 q2 q1 q2 q2 q2 Transition: and q2
and or 1 0 1 Tree Automata Run: Input: q2 q2 q2 q1 q2 q2 Accept !
a b c Tree Relations d e f
a b c Tree Relations We represent a pair of “similar” trees by a tree on an alphabet with pairs: d (a,d) e f (b,e) (c,f)
History Automata input x T x
History Automata input intermediate x T T x x x
History Automata input output intermediate x T x T x x x x T
History Automata In (word) regular model checking, concept of columns Transpose this to trees: represent a sequence of runs into single run. input output intermediate x q1 T q4 x T x q2 q3 x x q5 q6 x T run 1 run 2
q1.q4 q2.q5 q3.q6 History Automata In (word) regular model checking, concept of columns Transpose this to trees: represent a sequence of runs into single run. input output x x T x x T run 1+2
Symbolic Automata Property of H.A.’s: accept the transitive closure. Problem: infinite size ! Approach: apply standard subset construction (determinization) Supporting data structure for sets: regular expressions.
Results We have run a prototype tool on several examples: • Token-passing protocol (1&2 ways) • “percolate” protocol (compute disjunctions) • Tree arbiter (mutual exclusion) Paper accepted at CAV’02.
Future work • Change underlying automata representation (matrices instead of BDDs) • Expand to new types of systems (e.g. pushdown systems) • Create a graphical interface