Program Verification Techniques Based on the Abstract Interpretation Theory

2008 ◽  
Vol 19 (1) ◽  
pp. 17-26 ◽  
Author(s):  
Meng-Jun LI
2000 ◽  
Vol 7 (38) ◽  
Author(s):  
Bertrand Jeannet

<p>We apply linear relation analysis [CH78, HPR97] to the verification<br />of declarative synchronous programs [Hal98]. In this approach,<br />state partitioning plays an important role: on one hand the precision of the results highly depends on the fineness of the partitioning; on the other hand, a too much detailed partitioning may result in an exponential explosion of the analysis. In this paper we propose to consider very general partitions of the state space and to dynamically select a suitable partitioning according to the property to be proved. The presented approach is quite general and can be applied to other abstract interpretations.</p><p>Keywords and Phrases: Abstract Interpretation, Partitioning,<br />Linear Relation Analysis, Reactive Systems, Program Verification</p>


Author(s):  
YUTING CHEN ◽  
SHAOYING LIU ◽  
W. ERIC WONG

The application of specification-based program verification techniques (e.g., black-box testing, formal proof) faces strong challenges in practice when the gap between the structure of a specification and that of its program is large. This paper describes a view-based program review approach to addressing these challenges. The essential idea of the approach is first to derive comparable views from the specification and program, and then detect and eliminate the violations of structural consistency in the program views on the basis of a set of criteria. We also developed a prototype tool to support the review approach, and conducted a case study to assess the effectiveness of the approach.


2009 ◽  
Vol 20 (8) ◽  
pp. 2051-2061 ◽  
Author(s):  
Da-Ming HUANG ◽  
Qing-Kai ZENG

2014 ◽  
Vol 14 (4-5) ◽  
pp. 787-801 ◽  
Author(s):  
MARCO COMINI ◽  
LAURA TITOLO ◽  
ALICIA VILLANUEVA

AbstractAutomatic techniques for program verification usually suffer the well-known state explosion problem. Most of the classical approaches are based on browsing the structure of some form of model (which represents the behavior of the program) to check if a given specification is valid. This implies that a part of the model has to be built, and sometimes the needed fragment is quite huge.In this work, we provide an alternative automatic decision method to check whether a given property, specified in a linear temporal logic, isvalidw.r.t. atccpprogram. Our proposal (based on abstract interpretation techniques) does not require to build any model at all. Our results guarantee correctness but, as usual when using an abstract semantics, completeness is lost.


Author(s):  
Tamás Tóth ◽  
István Majzik

The behavior of practical safety critical systems often combines real-time behavior with structured data flow. To ensure correctness of such systems, both aspects have to be modeled and formally verified. Time related behavior can be efficiently modeled and analyzed in terms of timed automata. At the same time, program verification techniques like abstract interpretation and software model checking can efficiently handle data flow. In this paper, we describe a simple formalism that represents both aspects of such systems in a uniform and explicit way, thus enables the combination of formal analysis methods for real-time systems and software using standard techniques.


2022 ◽  
Vol 6 (POPL) ◽  
pp. 1-31
Author(s):  
Marco Campion ◽  
Mila Dalla Preda ◽  
Roberto Giacobazzi

Imprecision is inherent in any decidable (sound) approximation of undecidable program properties. In abstract interpretation this corresponds to the release of false alarms, e.g., when it is used for program analysis and program verification. As all alarming systems, a program analysis tool is credible when few false alarms are reported. As a consequence, we have to live together with false alarms, but also we need methods to control them. As for all approximation methods, also for abstract interpretation we need to estimate the accumulated imprecision during program analysis. In this paper we introduce a theory for estimating the error propagation in abstract interpretation, and hence in program analysis. We enrich abstract domains with a weakening of a metric distance. This enriched structure keeps coherence between the standard partial order relating approximated objects by their relative precision and the effective error made in this approximation. An abstract interpretation is precise when it is complete. We introduce the notion of partial completeness as a weakening of precision. In partial completeness the abstract interpreter may produce a bounded number of false alarms. We prove the key recursive properties of the class of programs for which an abstract interpreter is partially complete with a given bound of imprecision. Then, we introduce a proof system for estimating an upper bound of the error accumulated by the abstract interpreter during program analysis. Our framework is general enough to be instantiated to most known metrics for abstract domains.


Sign in / Sign up

Export Citation Format

Share Document