270 likes | 384 Vues
This presentation delves into regular model checking on trees, enhancing system analysis with finite-state automata. Exploring transitive closures for diverse system types like with counters, stacks, and channels, offering a novel analysis framework. The talk covers methodology, examples, contributions, and future directions to expand to new systems and improve tooling for efficient analysis.
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