/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 false : [] --> o if : [o * o * o * o] --> o inc : [o] --> o le : [o * o] --> o log : [o] --> o logIter : [o * o] --> o logZeroError : [] --> o minus : [o * o] --> o quot : [o * o] --> o s : [o] --> o true : [] --> o minus(X, 0) => X minus(s(X), s(Y)) => minus(X, Y) quot(0, s(X)) => 0 quot(s(X), s(Y)) => s(quot(minus(X, Y), s(Y))) le(0, X) => true le(s(X), 0) => false le(s(X), s(Y)) => le(X, Y) inc(s(X)) => s(inc(X)) inc(0) => s(0) log(X) => logIter(X, 0) logIter(X, Y) => if(le(s(0), X), le(s(s(0)), X), quot(X, s(s(0))), inc(Y)) if(false, X, Y, Z) => logZeroError if(true, false, X, s(Y)) => Y if(true, true, X, Y) => logIter(X, 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 : [] --> ne false : [] --> rd if : [rd * rd * ne * ne] --> ne inc : [ne] --> ne le : [ne * ne] --> rd log : [ne] --> ne logIter : [ne * ne] --> ne logZeroError : [] --> ne minus : [ne * ne] --> ne quot : [ne * ne] --> ne s : [ne] --> ne true : [] --> rd +++ 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.