Results 1 - 10
of
15
Practical methods for proving program termination
- In CAV’2002: Computer Aided Verification, volume 2404 of LNCS
, 2002
"... Abstract. We present two algorithms to prove termination of programs by synthesizing linear ranking functions. The first uses an invariant generator based on iterative forward propagation with widening and extracts ranking functions from the generated invariants by manipulating polyhedral cones. It ..."
Abstract
-
Cited by 49 (7 self)
- Add to MetaCart
Abstract. We present two algorithms to prove termination of programs by synthesizing linear ranking functions. The first uses an invariant generator based on iterative forward propagation with widening and extracts ranking functions from the generated invariants by manipulating polyhedral cones. It is capable of finding subtle ranking functions which are linear combinations of many program variables, but is limited to programs with few variables. The second, more heuristic, algorithm targets the class of structured programs with single-variable ranking functions. Its invariant generator uses a heuristic extrapolation operator to avoid iterative forward propagation over program loops. For the programs we have considered, this approach converges faster and the invariants it discovers are sufficiently strong to imply the existence of ranking functions.
Salsa: Combining Constraint Solvers with BDDs for Automatic Invariant Checking
, 2000
"... . Salsa is an invariant checker for specifications in SAL (the SCR Abstract Language). To establish a formula as an invariant without any user guidance Salsa carries out an induction proof that utilizes tightly integrated decision procedures, currently a combination of BDD algorithms and a const ..."
Abstract
-
Cited by 27 (8 self)
- Add to MetaCart
. Salsa is an invariant checker for specifications in SAL (the SCR Abstract Language). To establish a formula as an invariant without any user guidance Salsa carries out an induction proof that utilizes tightly integrated decision procedures, currently a combination of BDD algorithms and a constraint solver for integer linear arithmetic, for discharging the verification conditions. The user interface of Salsa is designed to mimic the interfaces of model checkers; i.e., given a formula and a system description, Salsa either establishes the formula as an invariant of the system (but returns no proof) or provides a counterexample. In either case, the algorithm will terminate. Unlike model checkers, Salsa returns a state pair as a counterexample and not an execution sequence. Also, due to the incompleteness of induction, users must validate the counterexamples. The use of induction enables Salsa to combat the state explosion problem that plagues model checkers -- it can handle...
Verification of Java Programs using Symbolic Execution and Invariant Generation
, 2004
"... Software verification is recognized as an important and difficult problem. We present a novel framework, based on symbolic execution, for the automated verification of software. The framework uses annotations in the form of method specifications and loop invariants. We present a novel iterative... ..."
Abstract
-
Cited by 24 (4 self)
- Add to MetaCart
Software verification is recognized as an important and difficult problem. We present a novel framework, based on symbolic execution, for the automated verification of software. The framework uses annotations in the form of method specifications and loop invariants. We present a novel iterative...
Decision procedures for recursive data structures with integer constraints
- In International Joint Conference on Automated Reasoning, volume 3097 of LNCS
, 2004
"... ..."
Collecting Statistics over Runtime Executions
- In Proceedings of Runtime Verification (RV’02) [1
, 2002
"... Abstract. We present an extension to linear-time temporal logic (LTL) that combines the temporal specification with the collection of statistical data. By collecting statistics over runtime executions of a program we can answer complex queries, such as “what is the average number of packet transmiss ..."
Abstract
-
Cited by 16 (1 self)
- Add to MetaCart
Abstract. We present an extension to linear-time temporal logic (LTL) that combines the temporal specification with the collection of statistical data. By collecting statistics over runtime executions of a program we can answer complex queries, such as “what is the average number of packet transmissions ” in a communication protocol, or “how often does a particular process enter the critical section while another process remains waiting ” in a mutual exclusion algorithm. To decouple the evaluation strategy of the queries from the definition of the temporal operators, we introduce algebraic alternating automata as an automata-based intermediate representation. Algebraic alternating automata are an extension of alternating automata that produce a value instead of acceptance or rejection for each trace. Based on the translation of the formulas from the query language to algebraic alternating automata, we obtain a simple and efficient query evaluation algorithm. The approach is illustrated with examples and experimental results. 1.
ASM refinement and generalizations of forward simulation in data refinement: A comparison
- JOURNAL OF THEORETICAL COMPUTER SCIENCE
, 2005
"... In [1], we have formalized Börger’s refinement notion for Abstract State Machines (ASMs). The formalization was based on transition systems, and verification conditions were expressed in Dynamic Logic. In this paper, the relation between ASM refinement and data refinement is explored. Data refinemen ..."
Abstract
-
Cited by 11 (5 self)
- Add to MetaCart
In [1], we have formalized Börger’s refinement notion for Abstract State Machines (ASMs). The formalization was based on transition systems, and verification conditions were expressed in Dynamic Logic. In this paper, the relation between ASM refinement and data refinement is explored. Data refinement expresses operations and verification conditions using relational calculus. We show how to bridge the gap between the different notations, and that forward simulation in the behavioral approach to data refinement can be viewed as a specific instance of ASM refinement with 1:1 diagrams, where control structure is not refined. We also prove that two recent generalizations of data refinement, weak refinement and coupled refinement can be derived from ASM refinement.
A Logic of File Systems
- In Proceedings of the 4th USENIX Symposium on File and Storage Technologies (FAST ’05
, 2005
"... Years of innovation in file systems have been highly successful in improving their performance and functionality, but at the cost of complicating their interaction with the disk. A variety of techniques exist to ensure consistency and integrity of file system data, but the precise set of correctness ..."
Abstract
-
Cited by 10 (2 self)
- Add to MetaCart
Years of innovation in file systems have been highly successful in improving their performance and functionality, but at the cost of complicating their interaction with the disk. A variety of techniques exist to ensure consistency and integrity of file system data, but the precise set of correctness guarantees provided by each technique is often unclear, making them hard to compare and reason about. The absence of a formal framework has hampered detailed verification of file system correctness. We present a logical framework for modeling the interaction of a file system with the storage system, and show how to apply the logic to represent and prove correctness properties. We demonstrate that the logic provides three main benefits. First, it enables reasoning about existing file system mechanisms, allowing developers to employ aggressive performance optimizations without fear of compromising correctness. Second, the logic simplifies the introduction and adoption of new file system functionality by facilitating rigorous proof of their correctness. Finally, the logic helps reason about smart storage systems that track semantic information about the file system. A key aspect of the logic is that it enables incremental modeling, significantly reducing the barrier to entry in terms of its actual use by file system designers. In general, we believe that our framework transforms the hitherto esoteric and error-prone “art ” of file system design into a readily understandable and formally verifiable process. 1
Combining widening and acceleration in linear relation analysis
- IN SAS
, 2006
"... Linear Relation Analysis [CH78,Hal79] is one of the first, but still one of the most powerful, abstract interpretations working in an infinite lattice. As such, it makes use of a widening operator to enforce the convergence of fixpoint computations. While the approximation due to widening can be ar ..."
Abstract
-
Cited by 9 (1 self)
- Add to MetaCart
Linear Relation Analysis [CH78,Hal79] is one of the first, but still one of the most powerful, abstract interpretations working in an infinite lattice. As such, it makes use of a widening operator to enforce the convergence of fixpoint computations. While the approximation due to widening can be arbitrarily refined by delaying the application of widening, the analysis quickly becomes too expensive with the increase of delay. Previous attempts at improving the precision of widening are not completely satisfactory, since none of them is guaranteed to improve the precision of the result, and they can nevertheless increase the cost of the analysis. In this paper, we investigate an improvement of Linear Relation Analysis consisting in computing, when possible, the exact (abstract) effect of a loop. This technique is fully compatible with the use of widening, and whenever it applies, it improves both the precision and the performance of the analysis. Linear Relation Analysis [CH78,Hal79] (LRA) is one of the very first applications
A Procedure to Translate Paradigm Specifications to Propositional Linear Temporal Logic and Its Application to Verification
, 2002
"... Software systems have evolved from monolythic programs to systems constructed from parallel, cooperative components, as can be currently found in object-oriented applications. ..."
Abstract
-
Cited by 5 (4 self)
- Add to MetaCart
Software systems have evolved from monolythic programs to systems constructed from parallel, cooperative components, as can be currently found in object-oriented applications.
Integrating tools for practical software analysis
- In Proc. of the 2004 CUE Workshop
, 2004
"... Abstract. The lack of integration between prototype implementations of results of research (“tools”) blocks progress toward direct application of formal methods research in software engineering settings. We survey a host of tools, examining how their integration would increase their power and benefi ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. The lack of integration between prototype implementations of results of research (“tools”) blocks progress toward direct application of formal methods research in software engineering settings. We survey a host of tools, examining how their integration would increase their power and benefit future research and application. Based on this analysis, we describe a hypothetical and idealized Tool Integration Package (TIP). A TIP has two goals: first, it accelerates the research process by providing a range of tools in an integrated setting; and second, it serves as a readyto-use tool for application in industry. 1

