WORST_CASE(?,O(n^1)) * Step 1: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: a__eq(X,Y) -> false() a__eq(X1,X2) -> eq(X1,X2) a__eq(0(),0()) -> true() a__eq(s(X),s(Y)) -> a__eq(X,Y) a__inf(X) -> cons(X,inf(s(X))) a__inf(X) -> inf(X) a__length(X) -> length(X) a__length(cons(X,L)) -> s(length(L)) a__length(nil()) -> 0() a__take(X1,X2) -> take(X1,X2) a__take(0(),X) -> nil() a__take(s(X),cons(Y,L)) -> cons(Y,take(X,L)) mark(0()) -> 0() mark(cons(X1,X2)) -> cons(X1,X2) mark(eq(X1,X2)) -> a__eq(X1,X2) mark(false()) -> false() mark(inf(X)) -> a__inf(mark(X)) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(X) mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) mark(true()) -> true() - Signature: {a__eq/2,a__inf/1,a__length/1,a__take/2,mark/1} / {0/0,cons/2,eq/2,false/0,inf/1,length/1,nil/0,s/1,take/2 ,true/0} - Obligation: innermost runtime complexity wrt. defined symbols {a__eq,a__inf,a__length,a__take,mark} and constructors {0 ,cons,eq,false,inf,length,nil,s,take,true} + Applied Processor: NaturalPI {shape = Linear, restrict = NoRestrict, uargs = UArgs, urules = URules, selector = Nothing} + Details: We apply a polynomial interpretation of kind constructor-based(linear): The following argument positions are considered usable: uargs(a__inf) = {1}, uargs(a__length) = {1}, uargs(a__take) = {1,2} Following symbols are considered usable: {a__eq,a__inf,a__length,a__take,mark} TcT has computed the following interpretation: p(0) = 4 p(a__eq) = 3 + 2*x2 p(a__inf) = 7 + x1 p(a__length) = 4 + x1 p(a__take) = 3 + x1 + x2 p(cons) = 1 + x2 p(eq) = 2 + x2 p(false) = 1 p(inf) = 4 + x1 p(length) = 3 + x1 p(mark) = 2*x1 p(nil) = 4 p(s) = 1 + x1 p(take) = 2 + x1 + x2 p(true) = 4 Following rules are strictly oriented: a__eq(X,Y) = 3 + 2*Y > 1 = false() a__eq(X1,X2) = 3 + 2*X2 > 2 + X2 = eq(X1,X2) a__eq(0(),0()) = 11 > 4 = true() a__eq(s(X),s(Y)) = 5 + 2*Y > 3 + 2*Y = a__eq(X,Y) a__inf(X) = 7 + X > 6 + X = cons(X,inf(s(X))) a__inf(X) = 7 + X > 4 + X = inf(X) a__length(X) = 4 + X > 3 + X = length(X) a__length(cons(X,L)) = 5 + L > 4 + L = s(length(L)) a__length(nil()) = 8 > 4 = 0() a__take(X1,X2) = 3 + X1 + X2 > 2 + X1 + X2 = take(X1,X2) a__take(0(),X) = 7 + X > 4 = nil() a__take(s(X),cons(Y,L)) = 5 + L + X > 3 + L + X = cons(Y,take(X,L)) mark(0()) = 8 > 4 = 0() mark(cons(X1,X2)) = 2 + 2*X2 > 1 + X2 = cons(X1,X2) mark(eq(X1,X2)) = 4 + 2*X2 > 3 + 2*X2 = a__eq(X1,X2) mark(false()) = 2 > 1 = false() mark(inf(X)) = 8 + 2*X > 7 + 2*X = a__inf(mark(X)) mark(length(X)) = 6 + 2*X > 4 + 2*X = a__length(mark(X)) mark(nil()) = 8 > 4 = nil() mark(s(X)) = 2 + 2*X > 1 + X = s(X) mark(take(X1,X2)) = 4 + 2*X1 + 2*X2 > 3 + 2*X1 + 2*X2 = a__take(mark(X1),mark(X2)) mark(true()) = 8 > 4 = true() Following rules are (at-least) weakly oriented: WORST_CASE(?,O(n^1))