Polymorphic higher-order recursive path orderings
read more
Citations
Term Rewriting Systems
The DP framework for proving termination of term rewriting
The Termination and Complexity Competition
References
Term rewriting and all that
Proofs and types
CHAPTER 6 – Rewrite Systems
Rewrite systems
Term rewriting and all that
Related Papers (5)
Frequently Asked Questions (14)
Q2. What are the future works in "Polymorphic higher-order recursive path orderings" ?
The higher-order recursive path ordering should be seen as a firm step to undergo further developments in different directions. The authors suggest below a path to an extension of the higher-order recursive path ordering defined here to a dependent type framework.
Q3. What are the main goals of rewrite rules?
Rewrite rules are used in programming languages and logical systems, with three main goals: defining functions by pattern matching; encoding rule-based decision procedures; describing computations over lambda-terms used as a suitable abstract syntax for encoding functional objects like programs or specifications.
Q4. What can be done to prove the ordering is normalized?
a modification of their ordering described in a companion paper can be used to prove strong normalization of higher-order rewrite rules operating on terms in η-long β-normal form and using higher-order pattern matching for firing rules [Jouannaud and Rubio 2006].
Q5. What is the problem with the iter(F, l)?
Trying to type the term iter(F, l) in the environment Ran(γ) = {F : pair(IN, α′)→ α′, l : list(pair(α′, IB))} results again in a failure, since the Functions rule generates the very same unsolvable unification problem as before.
Q6. What is the problem with the ordering computations?
Since the ordering computations involve subterms, a potential difficulty is that a term of a ground type may have subterms of a non-ground type.
Q7. What are the two lemmas needed to justify the construction of the candidate interpretations?
Two lemmas are needed to justify their coming construction of the candidate interpretations: preservation of groundness first; second, any type ordering is included into an ordering enjoying the subterm property.
Q8. What is the definition of computability for candidate terms of a ground type?
Their definition of computability for candidate terms of a ground type is standard, but the authors must make sure that it is compatible with the equivalence =TS on types.
Q9. What is the trick to show that the lefthand side is bigger than the righthand side?
The trick is to invent a middle term, and show that the lefthand side is bigger than the righthand one in the transitive closure of the ordering.
Q10. What is the definition of computability of candidate terms of variable type?
Computability of candidate terms of variable type is reduced to the computability of candidate terms of ground type by type instantiation.
Q11. What are the other extensions of the higher-order recursive path ordering?
Other extensions are specific to the higher-order case: incorporating the computability closure into the ordering definition; enriching the type system with inductive types, a problem considered in the framework of the general schema by Blanqui [Blanqui et al. 2002; Blanqui 2003]; enriching the type system with dependent types, considered for the original version of the higher-order recursive path ordering [Jouannaud and Rubio 1999] by Walukiewicz [2003].
Q12. What is the reason why the structure of terms is lost?
since the structure of terms is lost because of the translation, these methods must be based on an analysis of the flow of redexes in terms.
Q13. What is the proof of well-foundedness of RPO?
This simple well-foundedness proof of RPO proof does not use Kruskal’s tree theorem, and of course, does not show that the recursive path ordering is a well-order.
Q14. What is the simplest way to solve the iter(F, l) problem?
Let Σ = {IN, IB : ∗, pair : ∗2 ⇒ ∗, list : ∗ ⇒ ∗}; {α, β, α′ : ∗}; {iter : (α→ β)×list(α)⇒ list(β)}.Consider the term iter(F, l) in the environment {F : α → β, l : list(α)} which will be used in the rest of the example as the domain for a substitution γ.