/export/starexec/sandbox/solver/bin/starexec_run_FirstOrder /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE We consider the system theBenchmark. We are asked to determine termination of the following first-order TRS. 0 : [] --> o div : [o * o * o] --> o divides : [o * o] --> o false : [] --> o gt : [o * o] --> o if1 : [o * o * o] --> o if2 : [o * o * o] --> o prime : [o] --> o s : [o] --> o test : [o * o] --> o true : [] --> o gt(s(X), 0) => true gt(0, X) => false gt(s(X), s(Y)) => gt(X, Y) divides(X, Y) => div(X, Y, Y) div(0, 0, X) => true div(0, s(X), Y) => false div(s(X), 0, s(Y)) => div(s(X), s(Y), s(Y)) div(s(X), s(Y), Z) => div(X, Y, Z) prime(X) => test(X, s(s(0))) test(X, Y) => if1(gt(X, Y), X, Y) if1(true, X, Y) => if2(divides(X, Y), X, Y) if1(false, X, Y) => true if2(true, X, Y) => false if2(false, X, Y) => test(X, s(Y)) As the system is orthogonal, it is terminating if it is innermost terminating by [Gra95]. Then, by [FuhGieParSchSwi11], it suffices to prove (innermost) termination of the typed system, with sort annotations chosen to respect the rules, as follows: 0 : [] --> le div : [le * le * le] --> me divides : [le * le] --> me false : [] --> me gt : [le * le] --> me if1 : [me * le * le] --> me if2 : [me * le * le] --> me prime : [le] --> me s : [le] --> le test : [le * le] --> me true : [] --> me +++ Citations +++ [FuhGieParSchSwi11] C. Fuhs, J. Giesl, M. Parting, P. Schneider-Kamp, and S. Swiderski. Proving Termination by Dependency Pairs and Inductive Theorem Proving. In volume 47(2) of Journal of Automated Reasoning. 133--160, 2011. [Gra95] B. Gramlich. Abstract Relations Between Restricted Termination and Confluence Properties of Rewrite Systems. In volume 24(1-2) of Fundamentae Informaticae. 3--23, 1995.