419 research outputs found
Argument filterings and usable rules in higher-order rewrite systems
The static dependency pair method is a method for proving the termination of
higher-order rewrite systems a la Nipkow. It combines the dependency pair
method introduced for first-order rewrite systems with the notion of strong
computability introduced for typed lambda-calculi. Argument filterings and
usable rules are two important methods of the dependency pair framework used by
current state-of-the-art first-order automated termination provers. In this
paper, we extend the class of higher-order systems on which the static
dependency pair method can be applied. Then, we extend argument filterings and
usable rules to higher-order rewriting, hence providing the basis for a
powerful automated termination prover for higher-order rewrite systems
Termination of rewrite relations on -terms based on Girard's notion of reducibility
In this paper, we show how to extend the notion of reducibility introduced by
Girard for proving the termination of -reduction in the polymorphic
-calculus, to prove the termination of various kinds of rewrite
relations on -terms, including rewriting modulo some equational theory
and rewriting with matching modulo , by using the notion of
computability closure. This provides a powerful termination criterion for
various higher-order rewriting frameworks, including Klop's Combinatory
Reductions Systems with simple types and Nipkow's Higher-order Rewrite Systems
Refinement Types as Higher Order Dependency Pairs
Refinement types are a well-studied manner of performing in-depth analysis on
functional programs. The dependency pair method is a very powerful method used
to prove termination of rewrite systems; however its extension to higher order
rewrite systems is still the object of active research. We observe that a
variant of refinement types allow us to express a form of higher-order
dependency pair criterion that only uses information at the type level, and we
prove the correctness of this criterion
Dynamic Dependency Pairs for Algebraic Functional Systems
We extend the higher-order termination method of dynamic dependency pairs to
Algebraic Functional Systems (AFSs). In this setting, simply typed lambda-terms
with algebraic reduction and separate {\beta}-steps are considered. For
left-linear AFSs, the method is shown to be complete. For so-called local AFSs
we define a variation of usable rules and an extension of argument filterings.
All these techniques have been implemented in the higher-order termination tool
WANDA
Polynomial Interpretations for Higher-Order Rewriting
The termination method of weakly monotonic algebras, which has been defined
for higher-order rewriting in the HRS formalism, offers a lot of power, but has
seen little use in recent years. We adapt and extend this method to the
alternative formalism of algebraic functional systems, where the simply-typed
lambda-calculus is combined with algebraic reduction. Using this theory, we
define higher-order polynomial interpretations, and show how the implementation
challenges of this technique can be tackled. A full implementation is provided
in the termination tool WANDA
The computability path ordering
This paper aims at carrying out termination proofs for simply typed
higher-order calculi automatically by using ordering comparisons. To this end,
we introduce the computability path ordering (CPO), a recursive relation on
terms obtained by lifting a precedence on function symbols. A first version,
core CPO, is essentially obtained from the higher-order recursive path ordering
(HORPO) by eliminating type checks from some recursive calls and by
incorporating the treatment of bound variables as in the com-putability
closure. The well-foundedness proof shows that core CPO captures the essence of
computability arguments \'a la Tait and Girard, therefore explaining its name.
We further show that no further type check can be eliminated from its recursive
calls without loosing well-foundedness, but for one for which we found no
counterexample yet. Two extensions of core CPO are then introduced which allow
one to consider: the first, higher-order inductive types; the second, a
precedence in which some function symbols are smaller than application and
abstraction
Dependency Pairs Termination in Dependent Type Theory Modulo Rewriting
Dependency pairs are a key concept at the core of modern automated termination provers for first-order term rewriting systems. In this paper, we introduce an extension of this technique for a large class of dependently-typed higher-order rewriting systems. This extends previous results by Wahlstedt on the one hand and the first author on the other hand to strong normalization and non-orthogonal rewriting systems. This new criterion is implemented in the type-checker Dedukti
- …