Results 1  10
of
40
INKA: The Next Generation
, 1996
"... . The INKA system is a firstorder theorem prover with induction based on the explicit induction paradigm. Since 1986 when a first version of the INKA system was developed there have been many improvements. In this description we will give a short overview of the current system state and its abiliti ..."
Abstract

Cited by 41 (9 self)
 Add to MetaCart
. The INKA system is a firstorder theorem prover with induction based on the explicit induction paradigm. Since 1986 when a first version of the INKA system was developed there have been many improvements. In this description we will give a short overview of the current system state and its abilities. 1 Introduction The original INKA system dates back to 1986 [2]. The current version of the INKA system which will be described below has been developed at DFKI GmbH 1 between 1991 and 1995. The INKA system is a firstorder theorem prover with induction based on the explicit induction paradigm. In contrast to Nqthm, the BoyerMoore prover, [3], the system is based on a full firstorder calculus, a special variant of an ordersorted resolution calculus with paramodulation, [7]. However, it is not specialized on inductive proofs but possesses a powerful predicatelogic proof component. INKA is designed to be used for practical applications of inductive theorem proving, for instance, in th...
Termination of Nested and Mutually Recursive Algorithms
, 1996
"... This paper deals with automated termination analysis for functional programs. Previously developed methods for automated termination proofs of functional programs often fail for algorithms with nested recursion and they cannot handle algorithms with mutual recursion. We show that termination proofs ..."
Abstract

Cited by 39 (9 self)
 Add to MetaCart
This paper deals with automated termination analysis for functional programs. Previously developed methods for automated termination proofs of functional programs often fail for algorithms with nested recursion and they cannot handle algorithms with mutual recursion. We show that termination proofs for nested and mutually recursive algorithms can be performed without having to prove the correctness of the algorithms simultaneously. Using this result, nested and mutually recursive algorithms do no longer constitute a special problem and the existing methods for automated termination analysis can be extended to nested and mutual recursion in a straightforward way. We give some examples of algorithms whose termination can now be proved automatically (including wellknown challenge problems such as McCarthy's f_91 function).
Automated Termination Analysis for Haskell: From Term Rewriting to Programming Languages
 In Proc. RTA ’06, LNCS
, 2006
"... Abstract. There are many powerful techniques for automated termination analysis of term rewriting. However, up to now they have hardly been used for real programming languages. We present a new approach which permits the application of existing techniques from term rewriting in order to prove termin ..."
Abstract

Cited by 33 (10 self)
 Add to MetaCart
Abstract. There are many powerful techniques for automated termination analysis of term rewriting. However, up to now they have hardly been used for real programming languages. We present a new approach which permits the application of existing techniques from term rewriting in order to prove termination of programs in the functional language Haskell. In particular, we show how termination techniques for ordinary rewriting can be used to handle those features of Haskell which are missing in term rewriting (e.g., lazy evaluation, polymorphic types, and higherorder functions). We implemented our results in the termination prover AProVE and successfully evaluated them on existing Haskelllibraries. 1
Termination analysis for functional programs using term orderings
 IN PROCEEDINGS OF THE SECOND INTERNATIONAL STATIC ANALYSIS SYMPOSIUM, LNCS 983
, 1995
"... To prove the termination of a functional program there has to be a wellfounded ordering such that the arguments in each recursive call are smaller than the corresponding inputs. In this paper we present a procedure for automated termination proofs of functional programs. In contrast to previously p ..."
Abstract

Cited by 31 (12 self)
 Add to MetaCart
To prove the termination of a functional program there has to be a wellfounded ordering such that the arguments in each recursive call are smaller than the corresponding inputs. In this paper we present a procedure for automated termination proofs of functional programs. In contrast to previously presented methods a suited wellfounded ordering does not have to be fixed in advance by the user, but can be synthesized automatically. For that purpose we use approaches developed in the area of term rewriting systems for the automated generation of suited wellfounded term orderings. But unfortunately term orderings cannot be directly used for termination proofs of functional programs which call other algorithms in the arguments of their recursive calls. The reason is that while for the termination of term rewriting systems orderings between terms are needed, for functional programs we need orderings between objects of algebraic data types. Our method solves this problem and enables term orderings to be used for termination proofs of functional programs.
Modularity of Termination Using Dependency Pairs
 Proc. 9th RTA
, 1997
"... . The framework of dependency pairs allows automated termination and innermost termination proofs for many TRSs where such proofs were not possible before. In this paper we present a refinement of this framework in order to prove termination in a modular way. Our modularity results significantly inc ..."
Abstract

Cited by 18 (10 self)
 Add to MetaCart
. The framework of dependency pairs allows automated termination and innermost termination proofs for many TRSs where such proofs were not possible before. In this paper we present a refinement of this framework in order to prove termination in a modular way. Our modularity results significantly increase the class of term rewriting systems where termination resp. innermost termination can be proved automatically. Moreover, the modular approach to dependency pairs yields new modularity criteria which extend previous results in this area considerably. In particular, existing results for modularity of innermost termination can easily be obtained as direct consequences of our new criteria. 1 Introduction Termination is one of the most important properties of a term rewriting system (TRS). While in general this problem is undecidable [HL78], several methods for proving termination have been developed (for surveys see e.g. [Der87, Ste95b, DH95]). However, most methods that are amenable to a...
Walther Recursion
 Proceedings CADE 13, Springer LNCS
, 1996
"... . Primitive recursion is a well known syntactic restriction on recursive definitions which guarantees termination. Unfortunately many natural definitions, such as the most common definition of Euclid's GCD algorithm, are not primitive recursive. Walther has recently given a proof system for veri ..."
Abstract

Cited by 17 (0 self)
 Add to MetaCart
. Primitive recursion is a well known syntactic restriction on recursive definitions which guarantees termination. Unfortunately many natural definitions, such as the most common definition of Euclid's GCD algorithm, are not primitive recursive. Walther has recently given a proof system for verifying termination of a broader class of definitions. Although Walther's system is highly automatible, the class of acceptable definitions remains only semidecidable. Here we simplify Walther's calculus and give a syntactic criterion on definitions which guarantees termination. This syntactic criteria generalizes primitive recursion and handles most of the examples given by Walther. We call the corresponding class of acceptable definitions "Walther recursive". 1 Introduction One of the central problems in verification logics, such as the BoyerMoore theorem prover [2], [10], is the need to prove termination for recursive definitions. Many logics, such as that of Boyer and Moore, assu...
Constructing induction rules for deductive synthesis proofs
 LFCS University of Edinburgh
, 2005
"... We describe novel computational techniques for constructing induction rules for deductive synthesis proofs. Deductive synthesis holds out the promise of automated construction of correct computer programs from specifications of their desired behaviour. Synthesis of programs with iteration or recursi ..."
Abstract

Cited by 15 (7 self)
 Add to MetaCart
We describe novel computational techniques for constructing induction rules for deductive synthesis proofs. Deductive synthesis holds out the promise of automated construction of correct computer programs from specifications of their desired behaviour. Synthesis of programs with iteration or recursion requires inductive proof, but standard techniques for the construction of appropriate induction rules are restricted to recycling the recursive structure of the specifications. What is needed is induction rule construction techniques that can introduce novel recursive structures. We show that a combination of rippling and the use of metavariables as a leastcommitment device can provide such novelty. Key words: deductive synthesis, proof planning, induction, theorem proving, middleout reasoning. 1
Finding lexicographic orders for termination proofs in Isabelle/HOL
 Theorem Proving in Higher Order Logics: TPHOLs 2007, volume 4732 of Lecture Notes in Computer Science
, 2007
"... Abstract. We present a simple method to formally prove termination of recursive functions by searching for lexicographic combinations of size measures. Despite its simplicity, the method turns out to be powerful enough to solve a large majority of termination problems encountered in daily theorem pr ..."
Abstract

Cited by 14 (5 self)
 Add to MetaCart
Abstract. We present a simple method to formally prove termination of recursive functions by searching for lexicographic combinations of size measures. Despite its simplicity, the method turns out to be powerful enough to solve a large majority of termination problems encountered in daily theorem proving practice. 1
Termination and Reduction Checking for HigherOrder Logic Programs
 In First International Joint Conference on Automated Reasoning (IJCAR
"... . In this paper, we present a syntaxdirected termination and reduction checker for higherorder logic programs. The reduction checker verifies parametric higherorder subterm orderings describing input and output relations. These reduction orderings are exploited during termination checking to ..."
Abstract

Cited by 13 (3 self)
 Add to MetaCart
. In this paper, we present a syntaxdirected termination and reduction checker for higherorder logic programs. The reduction checker verifies parametric higherorder subterm orderings describing input and output relations. These reduction orderings are exploited during termination checking to infer that a specified termination order holds. To reason about parametric higherorder subterm orderings, we introduce a deductive system as a logical foundation for proving termination. This allows the study of prooftheoretical properties, such as consistency, local soundness and completeness and decidability. We concentrate here on proving consistency of the presented inference system. The termination and reduction checker are implemented as part of the Twelf system and enables us to verify proofs by complete induction. 1 Introduction One of the central problems in verifying specifications and checking proofs about them is the need to prove termination. Several automated methods...