Results 1  10
of
10
A Grand Challenge Proposal for Formal Methods: A Verified Stack
"... We propose a grand challenge for the formal methods community: build and mechanically verify a practical embedded system, from transistors to software. We propose that each group within the formal methods community design and verify, by the methods appropriate to that group, an embedded system of ..."
Abstract

Cited by 30 (1 self)
 Add to MetaCart
We propose a grand challenge for the formal methods community: build and mechanically verify a practical embedded system, from transistors to software. We propose that each group within the formal methods community design and verify, by the methods appropriate to that group, an embedded system of their choice. The point is not to have just one integrated formal method or just one verified application, but to encourage groups to develop the techniques and methodologies necessary for systemlevel verification.
Inductive invariants for nested recursion
 Theorem Proving in Higher Order Logics (TPHOLS'03), volume 2758 of LNCS
, 2003
"... Abstract. We show that certain inputoutput relations, termed inductive invariants are of central importance for termination proofs of algorithms defined by nested recursion. Inductive invariants can be used to enhance recursive function definition packages in higherorder logic mechanizations. We d ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
Abstract. We show that certain inputoutput relations, termed inductive invariants are of central importance for termination proofs of algorithms defined by nested recursion. Inductive invariants can be used to enhance recursive function definition packages in higherorder logic mechanizations. We demonstrate the usefulness of inductive invariants on a large example of the BDD algorithm Apply. Finally, we introduce a related concept of inductive fixpoints with the property that for every functional in higherorder logic there exists a largest partial function that is such a fixpoint. 1
Checking ACL2 Theorems via SAT Checking
 Information and Computation
, 2002
"... We present a procedure for checking a suitablybounded ACL2 theorem using a SAT checker. The check is carried out by first translating the ACL2 theorem into an equivalent theorem defined with functions which only use the primitives if, cons, car, cdr, and nil. ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
We present a procedure for checking a suitablybounded ACL2 theorem using a SAT checker. The check is carried out by first translating the ACL2 theorem into an equivalent theorem defined with functions which only use the primitives if, cons, car, cdr, and nil.
A mechanized program verifier
 In IFIP Working Conference on the Program Verifier Challenge
, 2005
"... Abstract. In my view, the “verification problem ” is the theorem proving problem, restricted to a computational logic. My approach is: adopt a functional programming language, build a general purpose formal reasoning engine around it, integrate it into a program and proof development environment, an ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
(Show Context)
Abstract. In my view, the “verification problem ” is the theorem proving problem, restricted to a computational logic. My approach is: adopt a functional programming language, build a general purpose formal reasoning engine around it, integrate it into a program and proof development environment, and apply it to model and verify a wide variety of computing artifacts, usually modeled operationally within the functional programming language. Everything done in this approach is software verification since the models are runnable programs in a subset of an ANSI standard programming language (Common Lisp). But this approach is of interest to proponents of other approaches (e.g., verification of procedural programs or synthesis) because of the nature of the mathematics of computing. I summarize the progress so far using this approach, sketch the key research challenges ahead and describe my vision of the role and shape of a useful verification system. 1
Verification of an inplace quicksort in ACL2
 Proceedings of the 3rd International Workshop onthe ACL2 Theorem Prover and Its Applications, 2002. See URL http://www.cs.utexas.edu/users/moore/acl2/workshop2002/. [46] H. Rogers, Jr. Theory of Recursive Functions and Effective
, 1987
"... We present a proof of an efficient, inplace Quicksort implementation [1] using singlethreaded objects (stobjs) in ACL2 [3, 4]. We demonstrate that the Quicksort implementation is equivalent to a simple insertionsort function that is shown to produce an ordered permutation of its input. For ease o ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
We present a proof of an efficient, inplace Quicksort implementation [1] using singlethreaded objects (stobjs) in ACL2 [3, 4]. We demonstrate that the Quicksort implementation is equivalent to a simple insertionsort function that is shown to produce an ordered permutation of its input. For ease of reasoning, the demonstration is carried out by verifying a series of ”intermediate ” sorting functions. The intermediate functions are equivalent to the efficient Quicksort implementation, but written in a more applicative style, and hence easier to reason about. We then decompose the proof into a verification of the equivalence of the efficient implementation with an intermediate implementation, and a proof of correctness of the intermediate implementation. We show how this decomposition allows us to simplify our reasoning about stobjs and obtain a cleaner proof of the implementation. 1
Using Theorem Proving with Algorithmic Techniques for LargeScale System Verification
"... ..."
(Show Context)
Progress Report: Term Dags Using Stobjs
, 2002
"... We explore in this paper the use of e#cient data structures to implement operations on firstorder terms, that can be formally verified. Specifically, we present the status of our work on defining and verifying a unification algorithm acting on terms represented as directed acyclic graphs (dags). Th ..."
Abstract
 Add to MetaCart
We explore in this paper the use of e#cient data structures to implement operations on firstorder terms, that can be formally verified. Specifically, we present the status of our work on defining and verifying a unification algorithm acting on terms represented as directed acyclic graphs (dags). This implementation is done using single threaded objects (stobjs) to store a dag representing the unification problem.
Enforcing correct programming of libraries: A case study on hash tables
"... Abstract. This paper presents the formalisation and correctness proofs of large parts of a hash table library used to represent multivalued decision diagrams (MDDs). This data structure is used, for instance, in Saturation, a nontrivial algorithm used to store state spaces of asynchronous systems. ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. This paper presents the formalisation and correctness proofs of large parts of a hash table library used to represent multivalued decision diagrams (MDDs). This data structure is used, for instance, in Saturation, a nontrivial algorithm used to store state spaces of asynchronous systems. We have conducted the correctness proofs of the main functionalities of the hash table in PVS. We outline a proof approach that can be reused by practitioners interested in using formal methods to check their applications. We show how PVS can be used to discover inconsistencies in the implementation of an application, or to improve it. 1
A Certied PolynomialBased Decision Procedure for Propositional Logic
"... Abstract. In this paper we present the formalization of a decision procedure for Propositional Logic based on polynomial normalization. This formalization is suitable for its automatic verication in an applicative logic like Acl2. This application of polynomials has been developed by reusing a prev ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. In this paper we present the formalization of a decision procedure for Propositional Logic based on polynomial normalization. This formalization is suitable for its automatic verication in an applicative logic like Acl2. This application of polynomials has been developed by reusing a previous work on polynomial rings [19], showing that a proper formalization leads to a high level of reusability. Two checkers are dened: the rst for contradiction formulas and the second for tautology formulas. The main theorems state that both checkers are sound and complete. Moreover, functions for generating models and counterexamples of formulas are provided. This facility plays also an important role in the main proofs. Finally, it is shown that this allows for a highly automated proof development. 1
Enforcing correct programming of libraries: A case study on hash tables
"... Abstract. This paper presents the formalisation and correctness proofs of large parts of a hash table library used to represent multivalued decision diagrams (MDDs). This data structure is used, for instance, in Saturation, a nontrivial algorithm used to store state spaces of asynchronous system ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. This paper presents the formalisation and correctness proofs of large parts of a hash table library used to represent multivalued decision diagrams (MDDs). This data structure is used, for instance, in Saturation, a nontrivial algorithm used to store state spaces of asynchronous systems. We have conducted the correctness proofs of the main functionalities of the hash table in PVS. We outline a proof approach that can be reused by practitioners interested in using formal methods to check their applications. We show how PVS can be used to discover inconsistencies in the implementation of an application, or to improve it. 1