WORST_CASE(?,O(n^1)) * Step 1: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: add0(x,Nil()) -> x add0(x',Cons(x,xs)) -> add0(Cons(Cons(Nil(),Nil()),x'),xs) goal(x,y) -> add0(x,y) notEmpty(Cons(x,xs)) -> True() notEmpty(Nil()) -> False() - Signature: {add0/2,goal/2,notEmpty/1} / {Cons/2,False/0,Nil/0,True/0} - Obligation: innermost runtime complexity wrt. defined symbols {add0,goal,notEmpty} and constructors {Cons,False,Nil ,True} + 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: {add0,goal,notEmpty} TcT has computed the following interpretation: p(Cons) = x1 + x2 p(False) = 0 p(Nil) = 0 p(True) = 0 p(add0) = 2 + 8*x1 p(goal) = 2 + 8*x1 p(notEmpty) = 0 Following rules are strictly oriented: add0(x,Nil()) = 2 + 8*x > x = x Following rules are (at-least) weakly oriented: add0(x',Cons(x,xs)) = 2 + 8*x' >= 2 + 8*x' = add0(Cons(Cons(Nil(),Nil()),x'),xs) goal(x,y) = 2 + 8*x >= 2 + 8*x = add0(x,y) notEmpty(Cons(x,xs)) = 0 >= 0 = True() notEmpty(Nil()) = 0 >= 0 = False() * Step 2: NaturalMI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: add0(x',Cons(x,xs)) -> add0(Cons(Cons(Nil(),Nil()),x'),xs) goal(x,y) -> add0(x,y) notEmpty(Cons(x,xs)) -> True() notEmpty(Nil()) -> False() - Weak TRS: add0(x,Nil()) -> x - Signature: {add0/2,goal/2,notEmpty/1} / {Cons/2,False/0,Nil/0,True/0} - Obligation: innermost runtime complexity wrt. defined symbols {add0,goal,notEmpty} and constructors {Cons,False,Nil ,True} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: none Following symbols are considered usable: {add0,goal,notEmpty} TcT has computed the following interpretation: p(Cons) = [1] x1 + [0] p(False) = [13] p(Nil) = [0] p(True) = [13] p(add0) = [2] x1 + [7] p(goal) = [8] x1 + [11] p(notEmpty) = [13] Following rules are strictly oriented: goal(x,y) = [8] x + [11] > [2] x + [7] = add0(x,y) Following rules are (at-least) weakly oriented: add0(x,Nil()) = [2] x + [7] >= [1] x + [0] = x add0(x',Cons(x,xs)) = [2] x' + [7] >= [7] = add0(Cons(Cons(Nil(),Nil()),x'),xs) notEmpty(Cons(x,xs)) = [13] >= [13] = True() notEmpty(Nil()) = [13] >= [13] = False() * Step 3: NaturalMI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: add0(x',Cons(x,xs)) -> add0(Cons(Cons(Nil(),Nil()),x'),xs) notEmpty(Cons(x,xs)) -> True() notEmpty(Nil()) -> False() - Weak TRS: add0(x,Nil()) -> x goal(x,y) -> add0(x,y) - Signature: {add0/2,goal/2,notEmpty/1} / {Cons/2,False/0,Nil/0,True/0} - Obligation: innermost runtime complexity wrt. defined symbols {add0,goal,notEmpty} and constructors {Cons,False,Nil ,True} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: none Following symbols are considered usable: {add0,goal,notEmpty} TcT has computed the following interpretation: p(Cons) = [1] x2 + [8] p(False) = [5] p(Nil) = [0] p(True) = [1] p(add0) = [1] x1 + [2] x2 + [8] p(goal) = [1] x1 + [2] x2 + [12] p(notEmpty) = [15] Following rules are strictly oriented: add0(x',Cons(x,xs)) = [1] x' + [2] xs + [24] > [1] x' + [2] xs + [16] = add0(Cons(Cons(Nil(),Nil()),x'),xs) notEmpty(Cons(x,xs)) = [15] > [1] = True() notEmpty(Nil()) = [15] > [5] = False() Following rules are (at-least) weakly oriented: add0(x,Nil()) = [1] x + [8] >= [1] x + [0] = x goal(x,y) = [1] x + [2] y + [12] >= [1] x + [2] y + [8] = add0(x,y) * Step 4: EmptyProcessor WORST_CASE(?,O(1)) + Considered Problem: - Weak TRS: add0(x,Nil()) -> x add0(x',Cons(x,xs)) -> add0(Cons(Cons(Nil(),Nil()),x'),xs) goal(x,y) -> add0(x,y) notEmpty(Cons(x,xs)) -> True() notEmpty(Nil()) -> False() - Signature: {add0/2,goal/2,notEmpty/1} / {Cons/2,False/0,Nil/0,True/0} - Obligation: innermost runtime complexity wrt. defined symbols {add0,goal,notEmpty} and constructors {Cons,False,Nil ,True} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(?,O(n^1))