/export/starexec/sandbox2/solver/bin/starexec_run_FirstOrder /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE We consider the system theBenchmark. We are asked to determine termination of the following first-order TRS. 0 : [] --> o cons : [o * o] --> o empty : [o] --> o false : [] --> o head : [o] --> o if : [o * o * o] --> o if2 : [o * o] --> o nil : [] --> o s : [o] --> o sum : [o * o] --> o tail : [o] --> o true : [] --> o weight : [o] --> o weight!6220undefined!6220error : [] --> o sum(cons(s(X), Y), cons(Z, U)) => sum(cons(X, Y), cons(s(Z), U)) sum(cons(0, X), Y) => sum(X, Y) sum(nil, X) => X empty(nil) => true empty(cons(X, Y)) => false tail(nil) => nil tail(cons(X, Y)) => Y head(cons(X, Y)) => X weight(X) => if(empty(X), empty(tail(X)), X) if(true, X, Y) => weight!6220undefined!6220error if(false, X, Y) => if2(X, Y) if2(true, X) => head(X) if2(false, X) => weight(sum(X, cons(0, tail(tail(X))))) 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 : [] --> zd cons : [zd * yd] --> yd empty : [yd] --> uc false : [] --> uc head : [yd] --> zd if : [uc * uc * yd] --> zd if2 : [uc * yd] --> zd nil : [] --> yd s : [zd] --> zd sum : [yd * yd] --> yd tail : [yd] --> yd true : [] --> uc weight : [yd] --> zd weight!6220undefined!6220error : [] --> zd +++ 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.