/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 U11 : [o * o] --> o U21 : [o] --> o U31 : [o * o * o * o] --> o a!6220!6220U11 : [o * o] --> o a!6220!6220U21 : [o] --> o a!6220!6220U31 : [o * o * o * o] --> o a!6220!6220and : [o * o] --> o a!6220!6220isNat : [o] --> o a!6220!6220isNatIList : [o] --> o a!6220!6220isNatList : [o] --> o a!6220!6220length : [o] --> o a!6220!6220take : [o * o] --> o a!6220!6220zeros : [] --> o and : [o * o] --> o cons : [o * o] --> o isNat : [o] --> o isNatIList : [o] --> o isNatList : [o] --> o length : [o] --> o mark : [o] --> o nil : [] --> o s : [o] --> o take : [o * o] --> o tt : [] --> o zeros : [] --> o a!6220!6220zeros => cons(0, zeros) a!6220!6220U11(tt, X) => s(a!6220!6220length(mark(X))) a!6220!6220U21(tt) => nil a!6220!6220U31(tt, X, Y, Z) => cons(mark(Z), take(Y, X)) a!6220!6220and(tt, X) => mark(X) a!6220!6220isNat(0) => tt a!6220!6220isNat(length(X)) => a!6220!6220isNatList(X) a!6220!6220isNat(s(X)) => a!6220!6220isNat(X) a!6220!6220isNatIList(X) => a!6220!6220isNatList(X) a!6220!6220isNatIList(zeros) => tt a!6220!6220isNatIList(cons(X, Y)) => a!6220!6220and(a!6220!6220isNat(X), isNatIList(Y)) a!6220!6220isNatList(nil) => tt a!6220!6220isNatList(cons(X, Y)) => a!6220!6220and(a!6220!6220isNat(X), isNatList(Y)) a!6220!6220isNatList(take(X, Y)) => a!6220!6220and(a!6220!6220isNat(X), isNatIList(Y)) a!6220!6220length(nil) => 0 a!6220!6220length(cons(X, Y)) => a!6220!6220U11(a!6220!6220and(a!6220!6220isNatList(Y), isNat(X)), Y) a!6220!6220take(0, X) => a!6220!6220U21(a!6220!6220isNatIList(X)) a!6220!6220take(s(X), cons(Y, Z)) => a!6220!6220U31(a!6220!6220and(a!6220!6220isNatIList(Z), and(isNat(X), isNat(Y))), Z, X, Y) mark(zeros) => a!6220!6220zeros mark(U11(X, Y)) => a!6220!6220U11(mark(X), Y) mark(length(X)) => a!6220!6220length(mark(X)) mark(U21(X)) => a!6220!6220U21(mark(X)) mark(U31(X, Y, Z, U)) => a!6220!6220U31(mark(X), Y, Z, U) mark(take(X, Y)) => a!6220!6220take(mark(X), mark(Y)) mark(and(X, Y)) => a!6220!6220and(mark(X), Y) mark(isNat(X)) => a!6220!6220isNat(X) mark(isNatList(X)) => a!6220!6220isNatList(X) mark(isNatIList(X)) => a!6220!6220isNatIList(X) mark(cons(X, Y)) => cons(mark(X), Y) mark(0) => 0 mark(tt) => tt mark(s(X)) => s(mark(X)) mark(nil) => nil a!6220!6220zeros => zeros a!6220!6220U11(X, Y) => U11(X, Y) a!6220!6220length(X) => length(X) a!6220!6220U21(X) => U21(X) a!6220!6220U31(X, Y, Z, U) => U31(X, Y, Z, U) a!6220!6220take(X, Y) => take(X, Y) a!6220!6220and(X, Y) => and(X, Y) a!6220!6220isNat(X) => isNat(X) a!6220!6220isNatList(X) => isNatList(X) a!6220!6220isNatIList(X) => isNatIList(X)