WORST_CASE(?,O(n^1)) * Step 1: Ara WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: activate(X) -> X activate(n__add(X1,X2)) -> add(X1,X2) activate(n__from(X)) -> from(X) activate(n__fst(X1,X2)) -> fst(X1,X2) activate(n__len(X)) -> len(X) add(X1,X2) -> n__add(X1,X2) add(0(),X) -> X add(s(X),Y) -> s(n__add(activate(X),Y)) from(X) -> cons(X,n__from(s(X))) from(X) -> n__from(X) fst(X1,X2) -> n__fst(X1,X2) fst(0(),Z) -> nil() fst(s(X),cons(Y,Z)) -> cons(Y,n__fst(activate(X),activate(Z))) len(X) -> n__len(X) len(cons(X,Z)) -> s(n__len(activate(Z))) len(nil()) -> 0() - Signature: {activate/1,add/2,from/1,fst/2,len/1} / {0/0,cons/2,n__add/2,n__from/1,n__fst/2,n__len/1,nil/0,s/1} - Obligation: innermost runtime complexity wrt. defined symbols {activate,add,from,fst,len} and constructors {0,cons ,n__add,n__from,n__fst,n__len,nil,s} + Applied Processor: Ara {heuristics_ = NoHeuristics, minDegree = 1, maxDegree = 3, araTimeout = 60, araFindStrictRules = Nothing, araSmtSolver = MiniSMT} + Details: Signatures used: ---------------- 0 :: [] -(0)-> A(2) 0 :: [] -(0)-> A(5) activate :: [A(2)] -(3)-> A(0) add :: [A(2) x A(0)] -(2)-> A(0) cons :: [A(0) x A(2)] -(2)-> A(2) cons :: [A(0) x A(0)] -(0)-> A(0) from :: [A(0)] -(1)-> A(0) fst :: [A(2) x A(2)] -(3)-> A(0) len :: [A(2)] -(4)-> A(0) n__add :: [A(2) x A(0)] -(0)-> A(2) n__add :: [A(0) x A(0)] -(0)-> A(0) n__from :: [A(0)] -(0)-> A(2) n__from :: [A(0)] -(0)-> A(0) n__fst :: [A(2) x A(2)] -(2)-> A(2) n__fst :: [A(1) x A(1)] -(1)-> A(1) n__fst :: [A(0) x A(0)] -(0)-> A(0) n__len :: [A(2)] -(2)-> A(2) n__len :: [A(0)] -(0)-> A(0) nil :: [] -(0)-> A(2) nil :: [] -(0)-> A(1) s :: [A(2)] -(2)-> A(2) s :: [A(0)] -(0)-> A(0) Cost-free Signatures used: -------------------------- 0 :: [] -(0)-> A_cf(0) activate :: [A_cf(0)] -(0)-> A_cf(0) add :: [A_cf(0) x A_cf(0)] -(0)-> A_cf(0) cons :: [A_cf(0) x A_cf(0)] -(0)-> A_cf(0) from :: [A_cf(0)] -(0)-> A_cf(0) fst :: [A_cf(0) x A_cf(0)] -(0)-> A_cf(0) len :: [A_cf(0)] -(0)-> A_cf(0) n__add :: [A_cf(0) x A_cf(0)] -(0)-> A_cf(0) n__from :: [A_cf(0)] -(0)-> A_cf(0) n__fst :: [A_cf(0) x A_cf(0)] -(0)-> A_cf(0) n__len :: [A_cf(0)] -(0)-> A_cf(0) nil :: [] -(0)-> A_cf(0) s :: [A_cf(0)] -(0)-> A_cf(0) Base Constructor Signatures used: --------------------------------- 0_A :: [] -(0)-> A(1) cons_A :: [A(0) x A(1)] -(1)-> A(1) n__add_A :: [A(0) x A(0)] -(0)-> A(1) n__from_A :: [A(0)] -(0)-> A(1) n__fst_A :: [A(0) x A(0)] -(1)-> A(1) n__len_A :: [A(0)] -(1)-> A(1) nil_A :: [] -(0)-> A(1) s_A :: [A(1)] -(1)-> A(1) * Step 2: Open MAYBE - Strict TRS: activate(X) -> X activate(n__add(X1,X2)) -> add(X1,X2) activate(n__from(X)) -> from(X) activate(n__fst(X1,X2)) -> fst(X1,X2) activate(n__len(X)) -> len(X) add(X1,X2) -> n__add(X1,X2) add(0(),X) -> X add(s(X),Y) -> s(n__add(activate(X),Y)) from(X) -> cons(X,n__from(s(X))) from(X) -> n__from(X) fst(X1,X2) -> n__fst(X1,X2) fst(0(),Z) -> nil() fst(s(X),cons(Y,Z)) -> cons(Y,n__fst(activate(X),activate(Z))) len(X) -> n__len(X) len(cons(X,Z)) -> s(n__len(activate(Z))) len(nil()) -> 0() - Signature: {activate/1,add/2,from/1,fst/2,len/1} / {0/0,cons/2,n__add/2,n__from/1,n__fst/2,n__len/1,nil/0,s/1} - Obligation: innermost runtime complexity wrt. defined symbols {activate,add,from,fst,len} and constructors {0,cons ,n__add,n__from,n__fst,n__len,nil,s} Following problems could not be solved: - Strict TRS: activate(X) -> X activate(n__add(X1,X2)) -> add(X1,X2) activate(n__from(X)) -> from(X) activate(n__fst(X1,X2)) -> fst(X1,X2) activate(n__len(X)) -> len(X) add(X1,X2) -> n__add(X1,X2) add(0(),X) -> X add(s(X),Y) -> s(n__add(activate(X),Y)) from(X) -> cons(X,n__from(s(X))) from(X) -> n__from(X) fst(X1,X2) -> n__fst(X1,X2) fst(0(),Z) -> nil() fst(s(X),cons(Y,Z)) -> cons(Y,n__fst(activate(X),activate(Z))) len(X) -> n__len(X) len(cons(X,Z)) -> s(n__len(activate(Z))) len(nil()) -> 0() - Signature: {activate/1,add/2,from/1,fst/2,len/1} / {0/0,cons/2,n__add/2,n__from/1,n__fst/2,n__len/1,nil/0,s/1} - Obligation: innermost runtime complexity wrt. defined symbols {activate,add,from,fst,len} and constructors {0,cons ,n__add,n__from,n__fst,n__len,nil,s} WORST_CASE(?,O(n^1))