/export/starexec/sandbox/solver/bin/starexec_run_FirstOrder /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES We consider the system theBenchmark. We are asked to determine termination of the following first-order TRS. !3220 : [o * o] --> o !div : [o * o] --> o !dot : [o * o] --> o e : [] --> o !3220(X, X) => e !div(X, X) => e !dot(e, X) => X !dot(X, e) => X !3220(e, X) => X !div(X, e) => X !dot(X, !3220(X, Y)) => Y !dot(!div(X, Y), Y) => X !3220(X, !dot(X, Y)) => Y !div(!dot(X, Y), Y) => X !div(X, !3220(Y, X)) => Y !3220(!div(X, Y), X) => Y We use rule removal, following [Kop12, Theorem 2.23]. This gives the following requirements (possibly using Theorems 2.25 and 2.26 in [Kop12]): !3220(X, X) >? e !div(X, X) >? e !dot(e, X) >? X !dot(X, e) >? X !3220(e, X) >? X !div(X, e) >? X !dot(X, !3220(X, Y)) >? Y !dot(!div(X, Y), Y) >? X !3220(X, !dot(X, Y)) >? Y !div(!dot(X, Y), Y) >? X !div(X, !3220(Y, X)) >? Y !3220(!div(X, Y), X) >? Y We orient these requirements with a polynomial interpretation in the natural numbers. The following interpretation satisfies the requirements: !3220 = \y0y1.3 + y0 + y1 !div = \y0y1.3 + y0 + y1 !dot = \y0y1.3 + y0 + y1 e = 0 Using this interpretation, the requirements translate to: [[!3220(_x0, _x0)]] = 3 + 2x0 > 0 = [[e]] [[!div(_x0, _x0)]] = 3 + 2x0 > 0 = [[e]] [[!dot(e, _x0)]] = 3 + x0 > x0 = [[_x0]] [[!dot(_x0, e)]] = 3 + x0 > x0 = [[_x0]] [[!3220(e, _x0)]] = 3 + x0 > x0 = [[_x0]] [[!div(_x0, e)]] = 3 + x0 > x0 = [[_x0]] [[!dot(_x0, !3220(_x0, _x1))]] = 6 + x1 + 2x0 > x1 = [[_x1]] [[!dot(!div(_x0, _x1), _x1)]] = 6 + x0 + 2x1 > x0 = [[_x0]] [[!3220(_x0, !dot(_x0, _x1))]] = 6 + x1 + 2x0 > x1 = [[_x1]] [[!div(!dot(_x0, _x1), _x1)]] = 6 + x0 + 2x1 > x0 = [[_x0]] [[!div(_x0, !3220(_x1, _x0))]] = 6 + x1 + 2x0 > x1 = [[_x1]] [[!3220(!div(_x0, _x1), _x0)]] = 6 + x1 + 2x0 > x1 = [[_x1]] We can thus remove the following rules: !3220(X, X) => e !div(X, X) => e !dot(e, X) => X !dot(X, e) => X !3220(e, X) => X !div(X, e) => X !dot(X, !3220(X, Y)) => Y !dot(!div(X, Y), Y) => X !3220(X, !dot(X, Y)) => Y !div(!dot(X, Y), Y) => X !div(X, !3220(Y, X)) => Y !3220(!div(X, Y), X) => Y 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.