0.00/0.14 YES 0.00/0.14 We consider the system theBenchmark. 0.00/0.14 0.00/0.14 Alphabet: 0.00/0.14 0.00/0.14 cons : [nat -> nat * funlist] --> funlist 0.00/0.14 false : [] --> bool 0.00/0.14 head : [funlist] --> nat -> nat 0.00/0.14 if : [bool * nat -> string * nat -> string] --> nat -> string 0.00/0.14 nil : [] --> funlist 0.00/0.14 s : [nat] --> nat 0.00/0.14 tail : [funlist] --> funlist 0.00/0.14 test : [nat -> nat] --> bool 0.00/0.14 true : [] --> bool 0.00/0.14 0.00/0.14 Rules: 0.00/0.14 0.00/0.14 if(true, f, g) => f 0.00/0.14 if(false, f, g) => g 0.00/0.14 test(/\x.s(x)) => true 0.00/0.14 head(cons(f, x)) => f 0.00/0.14 tail(cons(f, x)) => x 0.00/0.14 0.00/0.14 This AFS is converted to an AFSM simply by replacing all free variables by meta-variables (with arity 0). 0.00/0.14 0.00/0.14 We use the dependency pair framework as described in [Kop12, Ch. 6/7], with static dependency pairs (see [KusIsoSakBla09] and the adaptation for AFSMs and accessible arguments in [Kop13]). 0.00/0.14 0.00/0.14 In order to do so, we start by eta-expanding the system, which gives: 0.00/0.14 0.00/0.14 if(true, F, G, X) => F X 0.00/0.14 if(false, F, G, X) => G X 0.00/0.14 test(/\x.s(x)) => true 0.00/0.14 head(cons(F, X), Y) => F Y 0.00/0.14 tail(cons(F, X)) => X 0.00/0.14 0.00/0.14 We thus obtain the following dependency pair problem (P_0, R_0, static, formative): 0.00/0.14 0.00/0.14 Dependency Pairs P_0: 0.00/0.14 0.00/0.14 0.00/0.14 Rules R_0: 0.00/0.14 0.00/0.14 if(true, F, G, X) => F X 0.00/0.14 if(false, F, G, X) => G X 0.00/0.14 test(/\x.s(x)) => true 0.00/0.14 head(cons(F, X), Y) => F Y 0.00/0.14 tail(cons(F, X)) => X 0.00/0.14 0.00/0.14 Thus, the original system is terminating if (P_0, R_0, static, formative) is finite. 0.00/0.14 0.00/0.14 We consider the dependency pair problem (P_0, R_0, static, formative). 0.00/0.14 0.00/0.14 We place the elements of P in a dependency graph approximation G (see e.g. [Kop12, Thm. 7.27, 7.29], as follows: 0.00/0.14 0.00/0.14 0.00/0.14 This graph has no strongly connected components. By [Kop12, Thm. 7.31], this implies finiteness of the dependency pair problem. 0.00/0.14 0.00/0.14 As all dependency pair problems were succesfully simplified with sound (and complete) processors until nothing remained, we conclude termination. 0.00/0.14 0.00/0.14 0.00/0.14 +++ Citations +++ 0.00/0.14 0.00/0.14 [Kop12] C. Kop. Higher Order Termination. PhD Thesis, 2012. 0.00/0.14 [Kop13] C. Kop. Static Dependency Pairs with Accessibility. Unpublished manuscript, http://cl-informatik.uibk.ac.at/users/kop/static.pdf, 2013. 0.00/0.14 [KusIsoSakBla09] K. Kusakari, Y. Isogai, M. Sakai, and F. Blanqui. Static Dependency Pair Method Based On Strong Computability for Higher-Order Rewrite Systems. In volume 92(10) of IEICE Transactions on Information and Systems. 2007--2015, 2009. 0.00/0.14 EOF