We consider the system AotoYamada_05__006. Alphabet: branch : [a * b * b] --> b leaf : [a] --> b mapbt : [a -> a * b] --> b Rules: mapbt(f, leaf(x)) => leaf(f x) mapbt(f, branch(x, y, z)) => branch(f x, mapbt(f, y), mapbt(f, z)) This AFS is converted to an AFSM simply by replacing all free variables by meta-variables (with arity 0). We use rule removal, following [Kop12, Theorem 2.23]. This gives the following requirements (possibly using Theorems 2.25 and 2.26 in [Kop12]): mapbt(F, leaf(X)) >? leaf(F X) mapbt(F, branch(X, Y, Z)) >? branch(F X, mapbt(F, Y), mapbt(F, Z)) We orient these requirements with a polynomial interpretation in the natural numbers. The following interpretation satisfies the requirements: branch = Lam[y0;y1;y2].3 + y0 + y1 + y2 leaf = Lam[y0].1 + y0 mapbt = Lam[G0;y1].2 + 3*y1 + 2*G0(0) + 3*y1*G0(y1) Using this interpretation, the requirements translate to: [[mapbt(_F0, leaf(_x1))]] = 5 + 3*x1 + 2*F0(0) + 3*x1*F0(1 + x1) + 3*F0(1 + x1) > 1 + x1 + F0(x1) = [[leaf(_F0 _x1)]] [[mapbt(_F0, branch(_x1, _x2, _x3))]] = 11 + 3*x1 + 3*x2 + 3*x3 + 2*F0(0) + 3*x1*F0(3 + x1 + x2 + x3) + 3*x2*F0(3 + x1 + x2 + x3) + 3*x3*F0(3 + x1 + x2 + x3) + 9*F0(3 + x1 + x2 + x3) > 7 + x1 + 3*x2 + 3*x3 + F0(x1) + 3*x2*F0(x2) + 3*x3*F0(x3) + 4*F0(0) = [[branch(_F0 _x1, mapbt(_F0, _x2), mapbt(_F0, _x3))]] We can thus remove the following rules: mapbt(F, leaf(X)) => leaf(F X) mapbt(F, branch(X, Y, Z)) => branch(F X, mapbt(F, Y), mapbt(F, Z)) 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. +++ Citations +++ [Kop12] C. Kop. Higher Order Termination. PhD Thesis, 2012.