Presentation on theme: "Hybrid Approach to Model-Checking of Timed Automata DAT4 Project Proposal Supervisor: Alexandre David."— Presentation transcript:
Hybrid Approach to Model-Checking of Timed Automata DAT4 Project Proposal Supervisor: Alexandre David
What is Model-Checking? Idea: You define a model in a given formalism/language (TA). You give specifications in the form of formulas in a given logic (TCTL). … in a tool (UPPAAL). You press a button and: Yes, properties are satisfied (and why). No, properties are not satisfied (and why).
What is UPPAAL? Tool developed between Uppsala University and Aalborg University. Model-checker for Timed Automata. It has a graphical interface to draw the TA = state machines with clock constraints.
UPPAAL The GUI (java): Editor. Simulator. Verifier. The server (C++): Verification engine (model-checker).
Timed Automata in a Nutshell! Lamp User Off LowHigh push! push? Closed system controller environment x>5 x<=5 x=0
TA in UPPAAL Templates to define processes. Parameters. States have invariants (progress). Access to integer variables and C-like functions and syntax.
So What’s The Problem? Model-checking here: Enumerate all the possible states = State-space exploration (enumerative!). But… size of the state-space = # of locations in every process * # of possible values for every variable * # of different (not included) zones. And that’s not good! Known as state-space explosion.
Zones Symbolic representation of clock constraints = difference bound matrices (DBMs). Size = (clocks+1) 2, # of zones?
Example Size of the state-space is approximately 4*4*4*4*4 (=2 10 ) * 2 (1 binary variable) * # of zones for 5 clocks (DBM 6x6) in this model ~ 4 possible values/clock to simplify = 2 10 = 2 21 states! Memory: integers per state = 168 bytes -> 336MB. Add 1 process: *4*4…
Don’t Panic! All the states are not reachable! Synchronizations and conditions between processes. The system implements some logic, it does not generate everything… but we still have the explosion.
What’s The Project? Big fat state-space Initial state Goal state Find a path But how? Breadth first search.
Project Idea Help the search by pruning the state- space! Cheap backward reachability with an over-approximation. Use the result to prune the search forward!
The Idea! Big fat state-space Initial state Goal state Pruned!
Hybrid Approach Use a backward search with an approximation technique (BDD or whatever). Use the forward exact search and pruning.