Abstraction techniques for verification of concurrent systems

Abstract : As the hardware and software systems are growing continuously in scale and functionality, the likelihood of subtle errors becomes greater. Abstraction techniques, often based on abstract interpretation, provide a method for symbolically executing systems using the abstract instead of the concrete domain. In this thesis, we are concerned with abstractions for logics under multi-valued interpretations. Many applications of multi-valued logics have been found in hardware and software verification. For hardware verification, simulation tools and imple- mentations of genuinely multi-valued circuits have been proposed, dynamic hazards have been modeled by introducing pseudo states to find overlapping regions of competing signals, implementation of gates have been verified on the basis of switch level models, etc. For software verification, we need uncer- tainty because we may not know whether some behaviors should be possible, we need disagreement because we may have different stakeholders that dis- agree about how the systems should behave and we need to represent relative importance because some behaviors are essential and others may or may not be implemented. The abstractions are obtained by applying equivalence relations and then, the predicate symbols of the logic are re-defined to work properly on equiva- lence classes by using interpretation policies. We provide preservation results for first-order logic, temporal logic, and temporal logic of knowledge. As a case study, we show how abstraction can be used to solve the safety problem for protection systems which model access control policies. The use of abstraction in the context of data types, is also investigated. This technique scales well from data types to abstract data types. Here, abstractions are applied to initial specifications by means of equations and they are called equationally specified abstractions. Moreover, the abstraction technique we propose generalizes and clarifies the nature of many abstraction techniques found in the literature, such as the technique of duplicating pred- icate symbols, shape analysis, predicate abstraction, McMillan's approach, etc. To reason about dynamic systems, we introduce dynamic data types and extend the previous abstraction technique to this case. The main problem that arises when using abstraction techniques is to find the suitable abstraction or to refine an already existing abstraction in order to obtain a better one. In this thesis, we prove that the abstraction techniques for data types, under Kleene's three-valued interpretation, can be used in a refinement procedure. Moreover, we show that the counterexample guided abstraction refinement procedure (CEGAR) works better when used with equationally specified abstractions.
Document type :
Theses
Complete list of metadatas

Cited literature [89 references]  Display  Hide  Download

https://tel.archives-ouvertes.fr/tel-00623170
Contributor : Abes Star <>
Submitted on : Tuesday, September 13, 2011 - 4:39:55 PM
Last modification on : Thursday, January 11, 2018 - 6:19:28 AM
Long-term archiving on : Wednesday, December 14, 2011 - 2:35:58 AM

Identifiers

  • HAL Id : tel-00623170, version 1

Collections

Citation

Constantin Enea. Abstraction techniques for verification of concurrent systems. Computer Science [cs]. Université Paris-Est, 2008. English. ⟨NNT : 2008PEST0001⟩. ⟨tel-00623170⟩

Share

Metrics

Record views

380

Files downloads

216