Many algorithms on data structures such as terms (finitely branching trees) are naturally implemented by second-order recursion: A first-order procedure f passes itself as an arg...
In order to support the verification of programs, verification tools such as ACL2 or Isabelle try to extract suitable induction axioms from the definitions of terminating, recursiv...
Abstract. Matching is a basic operation extensively used in computation. Second-order matching, in particular, provides an adequate environment for expressing program transformatio...
We introduce calling context graphs and various static and theorem proving based analyses that together provide a powerful method for proving termination of programs written in fea...
We present a goal replacement rule whose main applicability condition is based on termination properties of the resulting transformed program. The goal replacement rule together wi...