Results 1  10
of
11
An Abstract Decision Procedure for Satisfiability in the Theory of Recursive Data Types
, 2005
"... The theory of recursive data types is a valuable modeling tool for software verification. In the past, decision procedures have been proposed for both the full theory and its universal fragment. However, previous work has been limited in various ways, including an inability to deal with multiple con ..."
Abstract

Cited by 22 (6 self)
 Add to MetaCart
(Show Context)
The theory of recursive data types is a valuable modeling tool for software verification. In the past, decision procedures have been proposed for both the full theory and its universal fragment. However, previous work has been limited in various ways, including an inability to deal with multiple constructors, multisorted logic, and mutually recursive data types. More significantly, previous algorithms for the universal case have been based on inefficient nondeterministic guesses and have been described in fairly complex procedural terms. We present an algorithm which addresses these issues for the universal theory. The algorithm is presented declaratively as a set of abstract rules which are terminating, sound, and complete. We also describe strategies for applying the rules and explain why our recommended strategy is more efficient than those used by previous algorithms. Finally, we discuss how the algorithm can be used within a broader framework of cooperating decision procedures.
Relational analysis of algebraic datatypes
 In Joint 10th European Software Engineering Conference (ESEC) and 13th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE
, 2005
"... We present a technique that enables the use of finite model finding to check the satisfiability of certain formulas whose intended models are infinite. Such formulas arise when using the language of sets and relations to reason about structured values such as algebraic datatypes. The key idea of our ..."
Abstract

Cited by 21 (2 self)
 Add to MetaCart
We present a technique that enables the use of finite model finding to check the satisfiability of certain formulas whose intended models are infinite. Such formulas arise when using the language of sets and relations to reason about structured values such as algebraic datatypes. The key idea of our technique is to identify a natural syntactic class of formulas in relational logic for which reasoning about infinite structures can be reduced to reasoning about finite structures. As a result, when a formula belongs to this class, we can use existing finite model finding tools to check whether the formula holds in the desired infinite model. 1
Decision procedures for term algebras with integer constraints
 Information and Computation
, 2004
"... Term algebras can model recursive data structures which are widely used in programming languages. To verify programs we must be able to reason about these structures. However, as programming languages often involve multiple data domains, in program verification decision procedures for a single theor ..."
Abstract

Cited by 11 (3 self)
 Add to MetaCart
(Show Context)
Term algebras can model recursive data structures which are widely used in programming languages. To verify programs we must be able to reason about these structures. However, as programming languages often involve multiple data domains, in program verification decision procedures for a single theory are usually not applicable. An important class of mixed constraints consists of combinations of data structures with integer constraints on the size of data structures. Such constraints can express memory safety properties such as absence of memory overflow and outofbound array access, which are crucial for program correctness. In this paper we extend the theory of term algebras with the length function which maps a term to its size, resulting in a combined theory of term algebras and Presburger arithmetic. This arithmetic extension provides a natural but tight coupling between the two theories, and hence the general purpose combination methods like NelsonOppen combination are not applicable. We present decision procedures for quantifierfree theories in structures with an infinite constant domain and with a finite constant domain. We also present a quantifier elimination procedure for the extended firstorder theory that can remove a block of existential quantifiers in one step. Key words: decision procedures, recursive data structures, term algebras, Presburger arithmetic, quantifier elimination, combination of satisfiability procedures
Decision procedures for queues with integer constraints
 of Lecture Notes in Computer Science
, 2005
"... Abstract. Queues are a widely used data structure in programming languages. They also provide an important synchronization mechanism in modeling distributed protocols. In this paper we extend the theory of queues with a length function that maps a queue to its size, resulting in a combined theory of ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
(Show Context)
Abstract. Queues are a widely used data structure in programming languages. They also provide an important synchronization mechanism in modeling distributed protocols. In this paper we extend the theory of queues with a length function that maps a queue to its size, resulting in a combined theory of queues and Presburger arithmetic. This extension provides a natural but tight coupling between the two theories, and hence the general NelsonOppen combination method for decision procedures is not applicable. We present a decision procedure for the quantifierfree theory and a quantifier elimination procedure for the firstorder theory that can remove a block of existential quantifiers in one step. 1 Introduction. Queues are a widely used data structure in programming languages. They also provide an important synchronization mechanism in modeling distributed protocols. To verify programs or protocols using queues we must be able to reason about this data structure. Single theory decision procedures, however, are
An Abstract Decision Procedure for a Theory of Inductive Data Types
, 2006
"... Inductive data types are a valuable modeling tool for software verification. In the past, decision procedures have been proposed for various theories of inductive data types, some focused on the universal fragment, and some focused on handling arbitrary quantifiers. Because of the complexity of the ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Inductive data types are a valuable modeling tool for software verification. In the past, decision procedures have been proposed for various theories of inductive data types, some focused on the universal fragment, and some focused on handling arbitrary quantifiers. Because of the complexity of the full theory, previous work on the full theory has not focused on strategies for practical implementation. However, even for the universal fragment, previous work has been limited in several significant ways. In this paper, we present a general and practical algorithm for the universal fragment. The algorithm is presented declaratively as a set of abstract rules which we show to be terminating, sound, and complete. We show how other algorithms can be realized as strategies within our general framework, and we propose a new strategy and give experimental results indicating that it performs well in practice. We conclude with a discussion of several useful ways the algorithm can be extended.
Arithmetic Integration of Decision Procedures?
"... fficiency and increase the analysis accuracy. ..."
On Relational Analysis of Algebraic Datatypes
"... Abstract We present a technique that enables the use of finite model finding to check the satisfiability of certain formulas whose intended models are infinite. Such formulas arise when using the language of sets and relations to reason about structured values such as algebraic datatypes. The key id ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract We present a technique that enables the use of finite model finding to check the satisfiability of certain formulas whose intended models are infinite. Such formulas arise when using the language of sets and relations to reason about structured values such as algebraic datatypes. The key idea of our technique is to identify a natural syntactic class of formulas in relational logic for which reasoning about infinite structures can be reduced to reasoning about finite structures. As a result, when a formula belongs to this class, we can use existing finite model finding tools to check whether the formula holds in the desired infinite model. 1 Introduction A new kind of analysis has become popular in the last decade in which a system is examined by considering all small cases within some bound. The rationale is that flaws are revealed more readily by this method than by conventional testing: exhausting a huge space of small cases works better than considering a much smaller suite of cases, even if it includes larger ones. Model checking is the preeminent example of this approach, and bounds the set of reachable states and sometimes also the length of execution traces. The success of model checking in hardware verification has generated great interest in applying it to software. Most model checkers, though, offer only rudimentary support for data structures, so most applications of model checking to software until now have focused on control properties, and data has either been ignored or abstracted away.
Relational Analysis of Algebraic Datatypes
"... ABSTRACT We present a technique that enables the use of finite model finding to check the satisfiability of certain formulas whose intended models are infinite. Such formulas arise when using the language of sets and relations to reason about structured values such as algebraic datatypes. The key id ..."
Abstract
 Add to MetaCart
(Show Context)
ABSTRACT We present a technique that enables the use of finite model finding to check the satisfiability of certain formulas whose intended models are infinite. Such formulas arise when using the language of sets and relations to reason about structured values such as algebraic datatypes. The key idea of our technique is to identify a natural syntactic class of formulas in relational logic for which reasoning about infinite structures can be reduced to reasoning about finite structures. As a result, when a formula belongs to this class, we can use existing finite model finding tools to check whether the formula holds in the desired infinite model. Categories and Subject Descriptors D.2.4 [Software Engineering]: Software/Program Verificationmodel checking, formal methods; F.3.1 [Logics and Meanings of Programs]: Specifying and Verifying and Reasoning about Programslogics of programs, mechanical verification, specification techniques
AND THE COMMITTEE ON GRADUATE STUDIES
, 2006
"... dissertation for the degree of Doctor of Philosophy. ..."
Relational Analysis of Algebraic Datatypes
"... ABSTRACT We present a technique that enables the use of finite model finding to check the satisfiability of certain formulas whose intended models are infinite. Such formulas arise when using the language of sets and relations to reason about structured values such as algebraic datatypes. The key id ..."
Abstract
 Add to MetaCart
(Show Context)
ABSTRACT We present a technique that enables the use of finite model finding to check the satisfiability of certain formulas whose intended models are infinite. Such formulas arise when using the language of sets and relations to reason about structured values such as algebraic datatypes. The key idea of our technique is to identify a natural syntactic class of formulas in relational logic for which reasoning about infinite structures can be reduced to reasoning about finite structures. As a result, when a formula belongs to this class, we can use existing finite model finding tools to check whether the formula holds in the desired infinite model. Categories and Subject Descriptors D.2.4 [Software Engineering]: Software/Program Verificationmodel checking, formal methods; F.3.1 [Logics and Meanings of Programs]: Specifying and Verifying and Reasoning about Programslogics of programs, mechanical verification, specification techniques