Results 1 
6 of
6
Partial Functions in ACL2
 Journal of Automated Reasoning
"... We describe a macro for introducing \partial functions" into ACL2, i.e., functions not dened everywhere. The function \denitions" are actually admitted via the encapsulation principle. We discuss the basic issues surrounding partial functions in ACL2 and illustrate theorems that can be ..."
Abstract

Cited by 35 (7 self)
 Add to MetaCart
(Show Context)
We describe a macro for introducing \partial functions" into ACL2, i.e., functions not dened everywhere. The function \denitions" are actually admitted via the encapsulation principle. We discuss the basic issues surrounding partial functions in ACL2 and illustrate theorems that can be proved about such functions.
ContextMoving Transformations for Function Verification
, 1999
"... Several induction theorem provers have been developed which support mechanized verification of functional programs. Unfortunately, a major problem is that they often fail in verifying tail recursive functions (which correspond to imperative programs). However, in practice imperative programs are ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
Several induction theorem provers have been developed which support mechanized verification of functional programs. Unfortunately, a major problem is that they often fail in verifying tail recursive functions (which correspond to imperative programs). However, in practice imperative programs are used almost exclusively. We present an automatic transformation to tackle this problem. It transforms functions which are hard to verify into functions whose correctness can be shown by the existing provers. In contrast to classical program transformations, the aim of our technique is not to increase efficiency, but to increase veriability. Therefore, this paper introduces a novel application area for program transformations and it shows that such techniques can in fact solve some of the most urgent current challenge problems in automated verification and induction theorem proving.
Proving partial correctness of partial functions
 PROC. CADEWORKSHOP MECHANIZATION OF PARTIAL FUNCTIONS
, 1996
"... We present a method for automated induction proofs about partial functions. This method cannot only be used to verify the partial correctness of functional programs, but it also solves some other challenge problems where reasoning about partial functions is necessary. For a further analysis of part ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
We present a method for automated induction proofs about partial functions. This method cannot only be used to verify the partial correctness of functional programs, but it also solves some other challenge problems where reasoning about partial functions is necessary. For a further analysis of partial functions we also developed a method to determine (nontrivial subsets of) their domains automatically.
Partial functions in induction theorem proving
 THE PROCEEDINGS OF CADE15 WORKSHOP ON MECHANISATION OF PARTIAL FUNCTIONS
, 1998
"... We present an approach for automated induction proofs with partial functions. Most wellknown techniques developed for (explicit) induction theorem proving are unsound when dealing with partial functions. But surprisingly, by slightly restricting the application of these techniques, it is possible t ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We present an approach for automated induction proofs with partial functions. Most wellknown techniques developed for (explicit) induction theorem proving are unsound when dealing with partial functions. But surprisingly, by slightly restricting the application of these techniques, it is possible to develop a calculus for automated induction proofs with partial functions. In particular, under certain conditions one may even generate induction schemes from the recursions of nonterminating algorithms. The need for such induction schemes and the power of our approach have been demonstrated on a large collection of nontrivial theorems (including Knuth and Bendix' critical pair lemma). In this way, existing induction theorem provers can be directly extended to partial functions without changing their logical framework.
Closure Induction in a Zlike Language
, 2000
"... Simplytyped settheoretic languages such as Z and B are widely used for program and system specifications. The main technique for reasoning about such specifications is induction. However, while partiality is an important concept in these languages, many standard approaches to automating induct ..."
Abstract
 Add to MetaCart
Simplytyped settheoretic languages such as Z and B are widely used for program and system specifications. The main technique for reasoning about such specifications is induction. However, while partiality is an important concept in these languages, many standard approaches to automating induction proofs rely on the totality of all occurring functions. Reinterpreting the second author's recently proposed induction technique for partial functional programs, we introduce in this paper the new principle of "closure induction" for reasoning about the inductive properties of partial functions in simplytyped settheoretic languages. In particular, closure induction allows us to prove partial correctness, that is, to prove those instances of conjectures for which designated partial functions are explicitly defined.
Journal of Automated Reasoning manuscript No. (will be inserted by the editor) A TwoValued Logic for Properties of Strict Functional Programs allowing Partial Functions
"... Abstract A typed program logic LMF for recursive specification and verification is presented. It comprises a strict functional programming language with polymorphic and recursively defined partial functions and polymorphic data types. The logic is twovalued with the equality symbol as only predica ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract A typed program logic LMF for recursive specification and verification is presented. It comprises a strict functional programming language with polymorphic and recursively defined partial functions and polymorphic data types. The logic is twovalued with the equality symbol as only predicate. Quantifiers range over the values, which permits inductive proofs of properties. The semantics is based on a contextual (observational) semantics, which gives a consistent presentation of higherorder functions. Our analysis also sheds new light on the the role of partial functions and loose specifications. It is also an analysis of influence of extensions of programs on the tautologies. The main result is that universally quantified equations are conservative, which is also the base for several other conservative classes of formulas.