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 With counters With stacks With channels parameterized A uniform analysis framework for systems : 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 a b c d a b d node label this node is called “root”
Tree Automata 01 or and or and q1q2 state input symbol
Tree Automata Input: and or 101 Run:
Tree Automata Input: and or 101 Run: q1 Transition: 0 q1
Tree Automata Input: and or 101 Run: q1q2 Transition: 1 q2
Tree Automata Input: and or 101 Run: q1 q2 Transition: or q2 q1
Tree Automata Input: and or 101 Run: q1 q2 Transition: and q2
Tree Automata Input: and or 101 Run: q1 q2 Accept ! q2
Tree Relations a bc d ef
We represent a pair of “similar” trees by a tree on an alphabet with pairs: a bc d ef (a,d) (b,e)(c,f)
History Automata x Tx input
History Automata x Tx T xx input intermediate
History Automata x Tx x xT T xx inputoutput intermediate
History Automata In (word) regular model checking, concept of columns Transpose this to trees: represent a sequence of runs into single run. x Tx q1 q2q3 x xT q4 q5q6 T xx inputoutput intermediate run 1run 2
History Automata In (word) regular model checking, concept of columns Transpose this to trees: represent a sequence of runs into single run. x Tx x xT inputoutput run 1+2 q1.q4 q2.q5q3.q6
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