0.00/0.03 YES 0.00/0.03 We consider the system theBenchmark. 0.00/0.03 0.00/0.03 Alphabet: 0.00/0.03 0.00/0.03 cons : [a * list] --> list 0.00/0.03 map : [list * a -> a] --> list 0.00/0.03 nil : [] --> list 0.00/0.03 0.00/0.03 Rules: 0.00/0.03 0.00/0.03 map(nil, f) => nil 0.00/0.03 map(cons(x, y), f) => cons(f x, map(y, f)) 0.00/0.03 0.00/0.03 This AFS is converted to an AFSM simply by replacing all free variables by meta-variables (with arity 0). 0.00/0.03 0.00/0.03 We use rule removal, following [Kop12, Theorem 2.23]. 0.00/0.03 0.00/0.03 This gives the following requirements (possibly using Theorems 2.25 and 2.26 in [Kop12]): 0.00/0.03 0.00/0.03 map(nil, F) >? nil 0.00/0.03 map(cons(X, Y), F) >? cons(F X, map(Y, F)) 0.00/0.03 0.00/0.03 We orient these requirements with a polynomial interpretation in the natural numbers. 0.00/0.03 0.00/0.03 The following interpretation satisfies the requirements: 0.00/0.03 0.00/0.03 cons = \y0y1.3 + y0 + y1 0.00/0.03 map = \y0G1.3 + 3y0 + G1(y0) + 3y0G1(y0) 0.00/0.03 nil = 2 0.00/0.03 0.00/0.03 Using this interpretation, the requirements translate to: 0.00/0.03 0.00/0.03 [[map(nil, _F0)]] = 9 + 7F0(2) > 2 = [[nil]] 0.00/0.03 [[map(cons(_x0, _x1), _F2)]] = 12 + 3x0 + 3x1 + 3x0F2(3 + x0 + x1) + 3x1F2(3 + x0 + x1) + 10F2(3 + x0 + x1) > 6 + x0 + 3x1 + F2(x0) + F2(x1) + 3x1F2(x1) = [[cons(_F2 _x0, map(_x1, _F2))]] 0.00/0.03 0.00/0.03 We can thus remove the following rules: 0.00/0.03 0.00/0.03 map(nil, F) => nil 0.00/0.03 map(cons(X, Y), F) => cons(F X, map(Y, F)) 0.00/0.03 0.00/0.03 All rules were succesfully removed. Thus, termination of the original system has been reduced to termination of the beta-rule, which is well-known to hold. 0.00/0.03 0.00/0.03 0.00/0.03 +++ Citations +++ 0.00/0.03 0.00/0.03 [Kop12] C. Kop. Higher Order Termination. PhD Thesis, 2012. 0.00/0.03 EOF