Personal tools
You are here: Home VSR Private Verified Software Roadmap 2006 Strongly dynamic systems and TVLA: Challenges
Document Actions

Strongly dynamic systems and TVLA: Challenges

Click here to get the file

Size 3.6 kB - File type text/plain

File contents

TVLA - Challenges
-----------------
G. Ramalingam and M. Sagiv

Modern software tends to be strongly dynamic, involving a set of actors 
that  changes dynamically, and resources that are dynamically allocated 
and  deallocated, and where no bounds are statically known for these sets. 
Formally,  the state of such systems may be viewed as an evolving universe 
of entities over which the program operates.  Due to its evolving 
character, such universes  are difficult to reason about, both for 
programmers and for automated reasoning tools.  This in turn makes  
automated verification for such programs both important and challenging. 
TVLA is a system for automatic  verification of properties of such 
strongly dynamic systems using abstract interpretation based on  
three-valued logical structures. TVLA has been used to verify various 
safety  and liveness properties of programs as well as functional 
correctness of programs, especially in the presence of heap-allocated 
data  structures and concurrency. 

TVLA is a parametric abstract-interpretation framework. An analysis 
designer  specifies the abstraction to be used by identifying relevant 
predicates (especially instrumentation  predicates), which describe 
properties of entities in the universe. TVLA provides various primitives 
that  make it easy to obtain the abstract semantics of statements in an 
automatic or semi-automatic fashion.

Many challenges and open questions remain in performing software 
verification  using TVLA-like abstract interpretation techniques. (a) TVLA 
has been used to verify properties in the presence of complex heap  
manipulation, such as the partial correctness of quicksort implemented 
using lists. However, it is  yet to be seen how robust the precision of  
these analyses are in the presence of hierarchical or  nested data 
structures (such as lists of lists of lists). (b) Scaling TVLA so that it 
can handle industrial-size applications (e.g., a  million lines of code) 
is a significant challenge.  (c) We need the capability to illustrate to 
the user the source of potential  problems in the code when verification 
fails. This is necessary to make verification tools user-friendly.  (d) 
Interestingly, one of the challenges in making verification tools 
successful in  practice is in identifying properties that one would like 
to have verified. E.g., a  specification of the constraints on how a 
library should be used enables us to check that client programs that  use 
the library satisfy these constraints. However, the lack of such formal 
specifications for  libraries means that techniques for "mining (partial) 
specifications" of libraries would be  valuable. On a related note, there 
is a need to find the right way to involve users and programmers in the  
verification process. A single line of formal assertion of something 
that's obvious to a human  designer may sometimes dramatically simplify 
the difficulty of verification. 

Some concrete approaches towards addressing the efficiency and precision  
challenge mentioned above are: (1) exploring techniques for doing the 
analysis in a modular fashion; (2) helping an analysis designer identify 
the right set of instrumentation predicates to use; (3) exploring  the use 
of more adaptive and heterogeneous abstractions, where the abstraction 
used for  different parts of the heap at different points in time can vary 
as needed; (4) exploring abstraction  techniques other than canonic 
abstraction; (5) integrating TVLA-style abstraction with other 
abstraction  mechanisms as well as other verification techniques.

by Ganesan Ramalingam last modified 2006-04-03 02:11
« November 2008 »
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
What's up ?
Be notified when a document is published in this folder or below.
 

Powered by Plone, the Open Source Content Management System

This site conforms to the following standards: