/export/starexec/sandbox/solver/bin/starexec_run_HigherOrder /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES We consider the system theBenchmark. Alphabet: f : [N -> N * N] --> N g : [] --> N -> N h : [N] --> N Rules: f(g, x) => h(x) f(i, x) => i x h(x) => f(/\y.y, x) 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]): f(g, X) >? h(X) f(F, X) >? F X h(X) >? f(/\x.x, X) We orient these requirements with a polynomial interpretation in the natural numbers. The following interpretation satisfies the requirements: f = \G0y1.y1 + 2G0(y1) g = \y0.3 + 3y0 h = \y0.3y0 Using this interpretation, the requirements translate to: [[f(g, _x0)]] = 6 + 7x0 > 3x0 = [[h(_x0)]] [[f(_F0, _x1)]] = x1 + 2F0(x1) >= x1 + F0(x1) = [[_F0 _x1]] [[h(_x0)]] = 3x0 >= 3x0 = [[f(/\x.x, _x0)]] We can thus remove the following rules: f(g, X) => h(X) We use rule removal, following [Kop12, Theorem 2.23]. This gives the following requirements (possibly using Theorems 2.25 and 2.26 in [Kop12]): f(F, X) >? F X h(X) >? f(/\x.x, X) We orient these requirements with a polynomial interpretation in the natural numbers. The following interpretation satisfies the requirements: f = \G0y1.y1 + G0(y1) h = \y0.3 + 3y0 Using this interpretation, the requirements translate to: [[f(_F0, _x1)]] = x1 + F0(x1) >= x1 + F0(x1) = [[_F0 _x1]] [[h(_x0)]] = 3 + 3x0 > 2x0 = [[f(/\x.x, _x0)]] We can thus remove the following rules: h(X) => f(/\x.x, X) We use rule removal, following [Kop12, Theorem 2.23]. This gives the following requirements (possibly using Theorems 2.25 and 2.26 in [Kop12]): f(F, X) >? F X We orient these requirements with a polynomial interpretation in the natural numbers. The following interpretation satisfies the requirements: f = \G0y1.1 + y1 + G0(y1) Using this interpretation, the requirements translate to: [[f(_F0, _x1)]] = 1 + x1 + F0(x1) > x1 + F0(x1) = [[_F0 _x1]] We can thus remove the following rules: f(F, X) => F X 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.