/export/starexec/sandbox2/solver/bin/starexec_run_FirstOrder /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES We consider the system theBenchmark. We are asked to determine termination of the following first-order TRS. a : [] --> o activate : [o] --> o f : [o] --> o g : [o] --> o n!6220!6220a : [] --> o n!6220!6220f : [o] --> o f(f(a)) => f(g(n!6220!6220f(n!6220!6220a))) f(X) => n!6220!6220f(X) a => n!6220!6220a activate(n!6220!6220f(X)) => f(activate(X)) activate(n!6220!6220a) => a activate(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(a)) >? f(g(n!6220!6220f(n!6220!6220a))) f(X) >? n!6220!6220f(X) a >? n!6220!6220a activate(n!6220!6220f(X)) >? f(activate(X)) activate(n!6220!6220a) >? a activate(X) >? X We orient these requirements with a polynomial interpretation in the natural numbers. The following interpretation satisfies the requirements: a = 0 activate = \y0.2y0 f = \y0.3 + y0 g = \y0.y0 n!6220!6220a = 0 n!6220!6220f = \y0.2 + y0 Using this interpretation, the requirements translate to: [[f(f(a))]] = 6 > 5 = [[f(g(n!6220!6220f(n!6220!6220a)))]] [[f(_x0)]] = 3 + x0 > 2 + x0 = [[n!6220!6220f(_x0)]] [[a]] = 0 >= 0 = [[n!6220!6220a]] [[activate(n!6220!6220f(_x0))]] = 4 + 2x0 > 3 + 2x0 = [[f(activate(_x0))]] [[activate(n!6220!6220a)]] = 0 >= 0 = [[a]] [[activate(_x0)]] = 2x0 >= x0 = [[_x0]] We can thus remove the following rules: f(f(a)) => f(g(n!6220!6220f(n!6220!6220a))) f(X) => n!6220!6220f(X) activate(n!6220!6220f(X)) => f(activate(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]): a >? n!6220!6220a activate(n!6220!6220a) >? a activate(X) >? X We orient these requirements with a polynomial interpretation in the natural numbers. The following interpretation satisfies the requirements: a = 3 activate = \y0.3 + 3y0 n!6220!6220a = 1 Using this interpretation, the requirements translate to: [[a]] = 3 > 1 = [[n!6220!6220a]] [[activate(n!6220!6220a)]] = 6 > 3 = [[a]] [[activate(_x0)]] = 3 + 3x0 > x0 = [[_x0]] We can thus remove the following rules: a => n!6220!6220a activate(n!6220!6220a) => a activate(X) => 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.