Results 1  10
of
11
Online ProofProducing Decision Procedure for MixedInteger Linear Arithmetic
, 2003
"... Efficient decision procedures for arithmetic play a very important role in formal verification. In practical examples, however, arithmetic constraints are often mixed with constraints from other theories like the theory of arrays, Boolean satisfiability (SAT), bitvectors, etc. Therefore, decision ..."
Abstract

Cited by 19 (1 self)
 Add to MetaCart
Efficient decision procedures for arithmetic play a very important role in formal verification. In practical examples, however, arithmetic constraints are often mixed with constraints from other theories like the theory of arrays, Boolean satisfiability (SAT), bitvectors, etc. Therefore, decision procedures for arithmetic are especially useful in combination with other decision procedures. The framework for such a combination is implemented at Stanford in the tool called Cooperating Validity Checker (CVC) [SBD02]. This work augments CVC with a decision procedure for the theory of mixed integer linear arithmetic based on the Omegatest [Pug91] extended to be online and proof producing. These extensions are the most important and challenging part of the work, and are necessary to make the combination efficient in practice.
A Practical Approach to Partial Functions in CVC Lite
, 2004
"... Most verification approaches assume a mathematical formalism in which functions are total, even though partial functions occur naturally in many applications. Furthermore, although there have been various proposals for logics of partial functions, there is no consensus on which is "the right&qu ..."
Abstract

Cited by 17 (8 self)
 Add to MetaCart
Most verification approaches assume a mathematical formalism in which functions are total, even though partial functions occur naturally in many applications. Furthermore, although there have been various proposals for logics of partial functions, there is no consensus on which is "the right" logic to use for verification applications. In this paper, we propose using a threevalued Kleene logic, where partial functions return the "undefined" value when applied outside of their domains. The particular semantics are chosen according to the principle of least surprise to the user; if there is disagreement among the various approaches on what the value of the formula should be, its evaluation is undefined. We show that the problem of checking validity in the threevalued logic can be reduced to checking validity in a standard twovalued logic, and describe how this approach has been successfully implemented in our tool, CVC Lite.
The Algebra of Equality Proofs
 IN JÜRGEN GIESL, EDITOR, 16TH INTERNATIONAL CONFERENCE ON REWRITING TECHNIQUES AND APPLICATIONS
, 2005
"... Proofs of equalities may be built from assumptions using proof rules for reflexivity, symmetry, and transitivity. Reflexivity is an axiom proving x=x for any x; symmetry is a 1premise rule taking a proof of x=y and returning a proof of y=x; and transitivity is a 2premise rule taking proofs of x= ..."
Abstract

Cited by 11 (5 self)
 Add to MetaCart
Proofs of equalities may be built from assumptions using proof rules for reflexivity, symmetry, and transitivity. Reflexivity is an axiom proving x=x for any x; symmetry is a 1premise rule taking a proof of x=y and returning a proof of y=x; and transitivity is a 2premise rule taking proofs of x=y and y=z, and returning a proof of x=z. Define an equivalence relation to hold between proofs iff they prove a theorem in common. The main theoretical result of the paper is that if all assumptions are independent, this equivalence relation is axiomatized by the standard axioms of group theory: reflexivity is the unit of the group, symmetry is the inverse, and transitivity is the multiplication. Using a standard completion of the group axioms, we obtain a rewrite system which puts equality proofs into canonical form. Proofs in this canonical form use the fewest possible assumptions, and a proof can be canonized in linear time using a simple strategy. This result is applied to obtain a simple extension of the unionfind algorithm for ground equational reasoning which produces minimal proofs. The time complexity of the original unionfind operations is preserved, and minimal proofs are produced in worstcase time O(n log 2 3), where n is the number of expressions being equated. As a second application, the approach is used to achieve significant performance improvements for the CVC cooperating decision procedure.
Validated ProofProducing Decision Procedures
, 2004
"... A widely used technique to integrate decision procedures (DPs) with other systems is to have the DPs emit proofs of the formulas they report valid. One problem that arises is debugging the proofproducing code; it is very easy in standard programming languages to write code which produces an incorre ..."
Abstract

Cited by 10 (5 self)
 Add to MetaCart
A widely used technique to integrate decision procedures (DPs) with other systems is to have the DPs emit proofs of the formulas they report valid. One problem that arises is debugging the proofproducing code; it is very easy in standard programming languages to write code which produces an incorrect proof. This paper demonstrates how proofproducing DPs may be implemented in a programming language, called RogueSigmaPi (RSP), whose type system ensures that proofs are manipulated correctly. RSP combines the Rogue rewriting language and the Edinburgh Logical Framework (LF). Typecorrect RSP programs are partially correct: essentially, any putative LF proof object produced by a typecorrect RSP program is guaranteed to type check in LF. The paper describes a simple proofproducing combination of propositional satisfiability checking and congruence closure implemented in RSP.
TLSim and EVC: a termlevel symbolic simulator and an efficient decision procedure for the logic of equality with uninterpreted functions and memories
 Int. J. Embedded Systems
, 2005
"... ..."
Subset Types and Partial Functions
 19th International Conference on Automated Deduction
, 2003
"... Abstract. A classical higherorder logic PFsub of partial functions is defined. The logic extends a version of Farmer’s logic PF by enriching the type system of the logic with subset types and dependent types. Validity in PFsub is then reduced to validity in PF by a translation. 1 ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. A classical higherorder logic PFsub of partial functions is defined. The logic extends a version of Farmer’s logic PF by enriching the type system of the logic with subset types and dependent types. Validity in PFsub is then reduced to validity in PF by a translation. 1
Principal Adviser
, 2007
"... Decision procedures, also referred to as satisfiability procedures or constraint solvers, that can check satisfiability of formulas over mathematical theories such as Boolean logic, real and integer arithmetic are increasingly being used in varied areas of computer science like formal verification, ..."
Abstract
 Add to MetaCart
Decision procedures, also referred to as satisfiability procedures or constraint solvers, that can check satisfiability of formulas over mathematical theories such as Boolean logic, real and integer arithmetic are increasingly being used in varied areas of computer science like formal verification, program analysis, and artificial intelligence. There are two primary reasons for this trend. First, many decision problems in computer science are easily translated into satisfiability problems in some mathematical theory. Second, in the last decade considerable progress has been made in the design and implementation of practical and efficient decision procedures. The improvement has been so dramatic that for many problems, translation to the satisfiability problem over some logic, followed by invocation of a decision procedure for that logic is often better than specialpurpose algorithms. Also, for certain applications, decision procedures have proved to be an enabling technology. For example, the recent rapid adoption of decision procedures in automated bugfinding tools has enabled these tools to find many hard to detect bugs in realworld software, deemed infeasible a few years ago. As applications cover new ground, they generate larger, more complex formulas,
A randomized satisfiability procedure for arithmetic and uninterpreted function symbols
 In 19th International Conference on Automated Deduction. LNCS
, 2003
"... We present a new randomized algorithm for checking the satisfiability of a conjunction of literals in the combined theory of linear equalities and uninterpreted functions. The key idea of the algorithm is to process the literals incrementally and to maintain at all times a set of random variable ass ..."
Abstract
 Add to MetaCart
We present a new randomized algorithm for checking the satisfiability of a conjunction of literals in the combined theory of linear equalities and uninterpreted functions. The key idea of the algorithm is to process the literals incrementally and to maintain at all times a set of random variable assignments that satisfy the literals seen so far. We prove that this algorithm is complete (i.e., it identifies all unsatisfiable conjunctions) and is probabilistically sound (i.e., the probability that it fails to identify satisfiable conjunctions is very small). The algorithm has the ability to retract assumptions incrementally with almost no additional space overhead. The algorithm can also be easily adapted to produce proofs for its output. The key advantage of the algorithm is its simplicity. We also show experimentally that the randomized algorithm has performance competitive with the existing deterministic symbolic algorithms.