/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 cons : [o * o] --> o false : [] --> o head : [o] --> o if : [o * o * o * o * o] --> o length : [o] --> o lt : [o * o] --> o nil : [] --> o rev : [o * o * o * o] --> o reverse : [o] --> o s : [o] --> o tail : [o] --> o true : [] --> o undefined : [] --> o length(nil) => 0 length(cons(X, Y)) => s(length(Y)) lt(X, 0) => false lt(0, s(X)) => true lt(s(X), s(Y)) => lt(X, Y) head(cons(X, Y)) => X head(nil) => undefined tail(nil) => nil tail(cons(X, Y)) => Y reverse(X) => rev(0, X, nil, X) rev(X, Y, Z, U) => if(lt(X, length(U)), X, Y, Z, U) if(true, X, Y, Z, U) => rev(s(X), tail(Y), cons(head(Y), Z), U) if(false, X, Y, Z, U) => Z 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 : [] --> od cons : [od * qd] --> qd false : [] --> wc head : [qd] --> od if : [wc * od * qd * qd * qd] --> qd length : [qd] --> od lt : [od * od] --> wc nil : [] --> qd rev : [od * qd * qd * qd] --> qd reverse : [qd] --> qd s : [od] --> od tail : [qd] --> qd true : [] --> wc undefined : [] --> od +++ 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.