WORST_CASE(Omega(n^1),O(n^1)) * Step 1: Sum WORST_CASE(Omega(n^1),O(n^1)) + Considered Problem: - Strict TRS: goal(x) -> list(x) list(Cons(x,xs)) -> list(xs) list(Nil()) -> True() list(Nil()) -> isEmpty[Match](Nil()) notEmpty(Cons(x,xs)) -> True() notEmpty(Nil()) -> False() - Signature: {goal/1,list/1,notEmpty/1} / {Cons/2,False/0,Nil/0,True/0,isEmpty[Match]/1} - Obligation: innermost runtime complexity wrt. defined symbols {goal,list,notEmpty} and constructors {Cons,False,Nil,True ,isEmpty[Match]} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () ** Step 1.a:1: DecreasingLoops WORST_CASE(Omega(n^1),?) + Considered Problem: - Strict TRS: goal(x) -> list(x) list(Cons(x,xs)) -> list(xs) list(Nil()) -> True() list(Nil()) -> isEmpty[Match](Nil()) notEmpty(Cons(x,xs)) -> True() notEmpty(Nil()) -> False() - Signature: {goal/1,list/1,notEmpty/1} / {Cons/2,False/0,Nil/0,True/0,isEmpty[Match]/1} - Obligation: innermost runtime complexity wrt. defined symbols {goal,list,notEmpty} and constructors {Cons,False,Nil,True ,isEmpty[Match]} + Applied Processor: DecreasingLoops {bound = AnyLoop, narrow = 10} + Details: The system has following decreasing Loops: list(y){y -> Cons(x,y)} = list(Cons(x,y)) ->^+ list(y) = C[list(y) = list(y){}] ** Step 1.b:1: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: goal(x) -> list(x) list(Cons(x,xs)) -> list(xs) list(Nil()) -> True() list(Nil()) -> isEmpty[Match](Nil()) notEmpty(Cons(x,xs)) -> True() notEmpty(Nil()) -> False() - Signature: {goal/1,list/1,notEmpty/1} / {Cons/2,False/0,Nil/0,True/0,isEmpty[Match]/1} - Obligation: innermost runtime complexity wrt. defined symbols {goal,list,notEmpty} and constructors {Cons,False,Nil,True ,isEmpty[Match]} + Applied Processor: NaturalPI {shape = Linear, restrict = Restrict, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a polynomial interpretation of kind constructor-based(linear): The following argument positions are considered usable: none Following symbols are considered usable: {goal,list,notEmpty} TcT has computed the following interpretation: p(Cons) = 0 p(False) = 0 p(Nil) = 0 p(True) = 0 p(goal) = 8 p(isEmpty[Match]) = 0 p(list) = 0 p(notEmpty) = 0 Following rules are strictly oriented: goal(x) = 8 > 0 = list(x) Following rules are (at-least) weakly oriented: list(Cons(x,xs)) = 0 >= 0 = list(xs) list(Nil()) = 0 >= 0 = True() list(Nil()) = 0 >= 0 = isEmpty[Match](Nil()) notEmpty(Cons(x,xs)) = 0 >= 0 = True() notEmpty(Nil()) = 0 >= 0 = False() ** Step 1.b:2: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: list(Cons(x,xs)) -> list(xs) list(Nil()) -> True() list(Nil()) -> isEmpty[Match](Nil()) notEmpty(Cons(x,xs)) -> True() notEmpty(Nil()) -> False() - Weak TRS: goal(x) -> list(x) - Signature: {goal/1,list/1,notEmpty/1} / {Cons/2,False/0,Nil/0,True/0,isEmpty[Match]/1} - Obligation: innermost runtime complexity wrt. defined symbols {goal,list,notEmpty} and constructors {Cons,False,Nil,True ,isEmpty[Match]} + Applied Processor: NaturalPI {shape = Linear, restrict = Restrict, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a polynomial interpretation of kind constructor-based(linear): The following argument positions are considered usable: none Following symbols are considered usable: {goal,list,notEmpty} TcT has computed the following interpretation: p(Cons) = 1 + x2 p(False) = 0 p(Nil) = 0 p(True) = 0 p(goal) = 11 + 9*x1 p(isEmpty[Match]) = 0 p(list) = 10 + 9*x1 p(notEmpty) = 13 + 4*x1 Following rules are strictly oriented: list(Cons(x,xs)) = 19 + 9*xs > 10 + 9*xs = list(xs) list(Nil()) = 10 > 0 = True() list(Nil()) = 10 > 0 = isEmpty[Match](Nil()) notEmpty(Cons(x,xs)) = 17 + 4*xs > 0 = True() notEmpty(Nil()) = 13 > 0 = False() Following rules are (at-least) weakly oriented: goal(x) = 11 + 9*x >= 10 + 9*x = list(x) ** Step 1.b:3: EmptyProcessor WORST_CASE(?,O(1)) + Considered Problem: - Weak TRS: goal(x) -> list(x) list(Cons(x,xs)) -> list(xs) list(Nil()) -> True() list(Nil()) -> isEmpty[Match](Nil()) notEmpty(Cons(x,xs)) -> True() notEmpty(Nil()) -> False() - Signature: {goal/1,list/1,notEmpty/1} / {Cons/2,False/0,Nil/0,True/0,isEmpty[Match]/1} - Obligation: innermost runtime complexity wrt. defined symbols {goal,list,notEmpty} and constructors {Cons,False,Nil,True ,isEmpty[Match]} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(Omega(n^1),O(n^1))