WORST_CASE(Omega(n^1),O(n^1)) * Step 1: Sum WORST_CASE(Omega(n^1),O(n^1)) + Considered Problem: - Strict TRS: comp_f_g#1(plus_x(x3),comp_f_g(x1,x2),0()) -> plus_x#1(x3,comp_f_g#1(x1,x2,0())) comp_f_g#1(plus_x(x3),id(),0()) -> plus_x#1(x3,0()) foldr#3(Cons(x32,x6)) -> comp_f_g(x32,foldr#3(x6)) foldr#3(Nil()) -> id() foldr_f#3(Cons(x16,x5),x24) -> comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) -> 0() main(x3) -> foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) -> Cons(plus_x(x16),map#2(x6)) map#2(Nil()) -> Nil() plus_x#1(0(),x6) -> x6 plus_x#1(S(x8),x10) -> S(plus_x#1(x8,x10)) - Signature: {comp_f_g#1/3,foldr#3/1,foldr_f#3/2,main/1,map#2/1,plus_x#1/2} / {0/0,Cons/2,Nil/0,S/1,comp_f_g/2,id/0 ,plus_x/1} - Obligation: innermost runtime complexity wrt. defined symbols {comp_f_g#1,foldr#3,foldr_f#3,main,map#2 ,plus_x#1} and constructors {0,Cons,Nil,S,comp_f_g,id,plus_x} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () ** Step 1.a:1: DecreasingLoops WORST_CASE(Omega(n^1),?) + Considered Problem: - Strict TRS: comp_f_g#1(plus_x(x3),comp_f_g(x1,x2),0()) -> plus_x#1(x3,comp_f_g#1(x1,x2,0())) comp_f_g#1(plus_x(x3),id(),0()) -> plus_x#1(x3,0()) foldr#3(Cons(x32,x6)) -> comp_f_g(x32,foldr#3(x6)) foldr#3(Nil()) -> id() foldr_f#3(Cons(x16,x5),x24) -> comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) -> 0() main(x3) -> foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) -> Cons(plus_x(x16),map#2(x6)) map#2(Nil()) -> Nil() plus_x#1(0(),x6) -> x6 plus_x#1(S(x8),x10) -> S(plus_x#1(x8,x10)) - Signature: {comp_f_g#1/3,foldr#3/1,foldr_f#3/2,main/1,map#2/1,plus_x#1/2} / {0/0,Cons/2,Nil/0,S/1,comp_f_g/2,id/0 ,plus_x/1} - Obligation: innermost runtime complexity wrt. defined symbols {comp_f_g#1,foldr#3,foldr_f#3,main,map#2 ,plus_x#1} and constructors {0,Cons,Nil,S,comp_f_g,id,plus_x} + Applied Processor: DecreasingLoops {bound = AnyLoop, narrow = 10} + Details: The system has following decreasing Loops: foldr#3(y){y -> Cons(x,y)} = foldr#3(Cons(x,y)) ->^+ comp_f_g(x,foldr#3(y)) = C[foldr#3(y) = foldr#3(y){}] ** Step 1.b:1: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: comp_f_g#1(plus_x(x3),comp_f_g(x1,x2),0()) -> plus_x#1(x3,comp_f_g#1(x1,x2,0())) comp_f_g#1(plus_x(x3),id(),0()) -> plus_x#1(x3,0()) foldr#3(Cons(x32,x6)) -> comp_f_g(x32,foldr#3(x6)) foldr#3(Nil()) -> id() foldr_f#3(Cons(x16,x5),x24) -> comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) -> 0() main(x3) -> foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) -> Cons(plus_x(x16),map#2(x6)) map#2(Nil()) -> Nil() plus_x#1(0(),x6) -> x6 plus_x#1(S(x8),x10) -> S(plus_x#1(x8,x10)) - Signature: {comp_f_g#1/3,foldr#3/1,foldr_f#3/2,main/1,map#2/1,plus_x#1/2} / {0/0,Cons/2,Nil/0,S/1,comp_f_g/2,id/0 ,plus_x/1} - Obligation: innermost runtime complexity wrt. defined symbols {comp_f_g#1,foldr#3,foldr_f#3,main,map#2 ,plus_x#1} and constructors {0,Cons,Nil,S,comp_f_g,id,plus_x} + 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: uargs(Cons) = {2}, uargs(S) = {1}, uargs(comp_f_g) = {2}, uargs(comp_f_g#1) = {2}, uargs(foldr_f#3) = {1}, uargs(plus_x#1) = {2} Following symbols are considered usable: {comp_f_g#1,foldr#3,foldr_f#3,main,map#2,plus_x#1} TcT has computed the following interpretation: p(0) = 8 p(Cons) = 8 + x2 p(Nil) = 5 p(S) = x1 p(comp_f_g) = x2 p(comp_f_g#1) = 13 + 4*x2 p(foldr#3) = 2 p(foldr_f#3) = 6 + 2*x1 + x2 p(id) = 1 p(main) = 15 + 8*x1 p(map#2) = 2*x1 p(plus_x) = 0 p(plus_x#1) = x2 Following rules are strictly oriented: comp_f_g#1(plus_x(x3),id(),0()) = 17 > 8 = plus_x#1(x3,0()) foldr#3(Nil()) = 2 > 1 = id() foldr_f#3(Cons(x16,x5),x24) = 22 + x24 + 2*x5 > 21 = comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) = 24 > 8 = 0() main(x3) = 15 + 8*x3 > 14 + 4*x3 = foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) = 16 + 2*x6 > 8 + 2*x6 = Cons(plus_x(x16),map#2(x6)) map#2(Nil()) = 10 > 5 = Nil() Following rules are (at-least) weakly oriented: comp_f_g#1(plus_x(x3),comp_f_g(x1,x2),0()) = 13 + 4*x2 >= 13 + 4*x2 = plus_x#1(x3,comp_f_g#1(x1,x2,0())) foldr#3(Cons(x32,x6)) = 2 >= 2 = comp_f_g(x32,foldr#3(x6)) plus_x#1(0(),x6) = x6 >= x6 = x6 plus_x#1(S(x8),x10) = x10 >= x10 = S(plus_x#1(x8,x10)) ** Step 1.b:2: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: comp_f_g#1(plus_x(x3),comp_f_g(x1,x2),0()) -> plus_x#1(x3,comp_f_g#1(x1,x2,0())) foldr#3(Cons(x32,x6)) -> comp_f_g(x32,foldr#3(x6)) plus_x#1(0(),x6) -> x6 plus_x#1(S(x8),x10) -> S(plus_x#1(x8,x10)) - Weak TRS: comp_f_g#1(plus_x(x3),id(),0()) -> plus_x#1(x3,0()) foldr#3(Nil()) -> id() foldr_f#3(Cons(x16,x5),x24) -> comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) -> 0() main(x3) -> foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) -> Cons(plus_x(x16),map#2(x6)) map#2(Nil()) -> Nil() - Signature: {comp_f_g#1/3,foldr#3/1,foldr_f#3/2,main/1,map#2/1,plus_x#1/2} / {0/0,Cons/2,Nil/0,S/1,comp_f_g/2,id/0 ,plus_x/1} - Obligation: innermost runtime complexity wrt. defined symbols {comp_f_g#1,foldr#3,foldr_f#3,main,map#2 ,plus_x#1} and constructors {0,Cons,Nil,S,comp_f_g,id,plus_x} + 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: uargs(Cons) = {2}, uargs(S) = {1}, uargs(comp_f_g) = {2}, uargs(comp_f_g#1) = {2}, uargs(foldr_f#3) = {1}, uargs(plus_x#1) = {2} Following symbols are considered usable: {comp_f_g#1,foldr#3,foldr_f#3,main,map#2,plus_x#1} TcT has computed the following interpretation: p(0) = 1 p(Cons) = 1 + x2 p(Nil) = 0 p(S) = x1 p(comp_f_g) = x2 p(comp_f_g#1) = 5 + x2 p(foldr#3) = 2 + 8*x1 p(foldr_f#3) = 11 + 8*x1 + x2 p(id) = 1 p(main) = 12 + 9*x1 p(map#2) = x1 p(plus_x) = 2 p(plus_x#1) = x2 Following rules are strictly oriented: foldr#3(Cons(x32,x6)) = 10 + 8*x6 > 2 + 8*x6 = comp_f_g(x32,foldr#3(x6)) Following rules are (at-least) weakly oriented: comp_f_g#1(plus_x(x3),comp_f_g(x1,x2),0()) = 5 + x2 >= 5 + x2 = plus_x#1(x3,comp_f_g#1(x1,x2,0())) comp_f_g#1(plus_x(x3),id(),0()) = 6 >= 1 = plus_x#1(x3,0()) foldr#3(Nil()) = 2 >= 1 = id() foldr_f#3(Cons(x16,x5),x24) = 19 + x24 + 8*x5 >= 7 + 8*x5 = comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) = 12 >= 1 = 0() main(x3) = 12 + 9*x3 >= 12 + 8*x3 = foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) = 1 + x6 >= 1 + x6 = Cons(plus_x(x16),map#2(x6)) map#2(Nil()) = 0 >= 0 = Nil() plus_x#1(0(),x6) = x6 >= x6 = x6 plus_x#1(S(x8),x10) = x10 >= x10 = S(plus_x#1(x8,x10)) ** Step 1.b:3: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: comp_f_g#1(plus_x(x3),comp_f_g(x1,x2),0()) -> plus_x#1(x3,comp_f_g#1(x1,x2,0())) plus_x#1(0(),x6) -> x6 plus_x#1(S(x8),x10) -> S(plus_x#1(x8,x10)) - Weak TRS: comp_f_g#1(plus_x(x3),id(),0()) -> plus_x#1(x3,0()) foldr#3(Cons(x32,x6)) -> comp_f_g(x32,foldr#3(x6)) foldr#3(Nil()) -> id() foldr_f#3(Cons(x16,x5),x24) -> comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) -> 0() main(x3) -> foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) -> Cons(plus_x(x16),map#2(x6)) map#2(Nil()) -> Nil() - Signature: {comp_f_g#1/3,foldr#3/1,foldr_f#3/2,main/1,map#2/1,plus_x#1/2} / {0/0,Cons/2,Nil/0,S/1,comp_f_g/2,id/0 ,plus_x/1} - Obligation: innermost runtime complexity wrt. defined symbols {comp_f_g#1,foldr#3,foldr_f#3,main,map#2 ,plus_x#1} and constructors {0,Cons,Nil,S,comp_f_g,id,plus_x} + 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: uargs(Cons) = {2}, uargs(S) = {1}, uargs(comp_f_g) = {2}, uargs(comp_f_g#1) = {2}, uargs(foldr_f#3) = {1}, uargs(plus_x#1) = {2} Following symbols are considered usable: {comp_f_g#1,foldr#3,foldr_f#3,main,map#2,plus_x#1} TcT has computed the following interpretation: p(0) = 0 p(Cons) = 8 + x2 p(Nil) = 3 p(S) = x1 p(comp_f_g) = 1 + x2 p(comp_f_g#1) = 8 + x2 p(foldr#3) = 2*x1 p(foldr_f#3) = 2*x1 + x2 p(id) = 0 p(main) = 13 + 8*x1 p(map#2) = 6 + x1 p(plus_x) = 8 + x1 p(plus_x#1) = x2 Following rules are strictly oriented: comp_f_g#1(plus_x(x3),comp_f_g(x1,x2),0()) = 9 + x2 > 8 + x2 = plus_x#1(x3,comp_f_g#1(x1,x2,0())) Following rules are (at-least) weakly oriented: comp_f_g#1(plus_x(x3),id(),0()) = 8 >= 0 = plus_x#1(x3,0()) foldr#3(Cons(x32,x6)) = 16 + 2*x6 >= 1 + 2*x6 = comp_f_g(x32,foldr#3(x6)) foldr#3(Nil()) = 6 >= 0 = id() foldr_f#3(Cons(x16,x5),x24) = 16 + x24 + 2*x5 >= 8 + 2*x5 = comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) = 6 >= 0 = 0() main(x3) = 13 + 8*x3 >= 12 + 2*x3 = foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) = 14 + x6 >= 14 + x6 = Cons(plus_x(x16),map#2(x6)) map#2(Nil()) = 9 >= 3 = Nil() plus_x#1(0(),x6) = x6 >= x6 = x6 plus_x#1(S(x8),x10) = x10 >= x10 = S(plus_x#1(x8,x10)) ** Step 1.b:4: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: plus_x#1(0(),x6) -> x6 plus_x#1(S(x8),x10) -> S(plus_x#1(x8,x10)) - Weak TRS: comp_f_g#1(plus_x(x3),comp_f_g(x1,x2),0()) -> plus_x#1(x3,comp_f_g#1(x1,x2,0())) comp_f_g#1(plus_x(x3),id(),0()) -> plus_x#1(x3,0()) foldr#3(Cons(x32,x6)) -> comp_f_g(x32,foldr#3(x6)) foldr#3(Nil()) -> id() foldr_f#3(Cons(x16,x5),x24) -> comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) -> 0() main(x3) -> foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) -> Cons(plus_x(x16),map#2(x6)) map#2(Nil()) -> Nil() - Signature: {comp_f_g#1/3,foldr#3/1,foldr_f#3/2,main/1,map#2/1,plus_x#1/2} / {0/0,Cons/2,Nil/0,S/1,comp_f_g/2,id/0 ,plus_x/1} - Obligation: innermost runtime complexity wrt. defined symbols {comp_f_g#1,foldr#3,foldr_f#3,main,map#2 ,plus_x#1} and constructors {0,Cons,Nil,S,comp_f_g,id,plus_x} + 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: uargs(Cons) = {2}, uargs(S) = {1}, uargs(comp_f_g) = {2}, uargs(comp_f_g#1) = {2}, uargs(foldr_f#3) = {1}, uargs(plus_x#1) = {2} Following symbols are considered usable: {comp_f_g#1,foldr#3,foldr_f#3,main,map#2,plus_x#1} TcT has computed the following interpretation: p(0) = 2 p(Cons) = 8 + x2 p(Nil) = 4 p(S) = x1 p(comp_f_g) = 8 + x2 p(comp_f_g#1) = 12 + x2 + x3 p(foldr#3) = 1 + 2*x1 p(foldr_f#3) = 3*x1 + x2 p(id) = 1 p(main) = 7 + 4*x1 p(map#2) = 1 + x1 p(plus_x) = 1 + x1 p(plus_x#1) = 4 + x2 Following rules are strictly oriented: plus_x#1(0(),x6) = 4 + x6 > x6 = x6 Following rules are (at-least) weakly oriented: comp_f_g#1(plus_x(x3),comp_f_g(x1,x2),0()) = 22 + x2 >= 18 + x2 = plus_x#1(x3,comp_f_g#1(x1,x2,0())) comp_f_g#1(plus_x(x3),id(),0()) = 15 >= 6 = plus_x#1(x3,0()) foldr#3(Cons(x32,x6)) = 17 + 2*x6 >= 9 + 2*x6 = comp_f_g(x32,foldr#3(x6)) foldr#3(Nil()) = 9 >= 1 = id() foldr_f#3(Cons(x16,x5),x24) = 24 + x24 + 3*x5 >= 13 + x24 + 2*x5 = comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) = 14 >= 2 = 0() main(x3) = 7 + 4*x3 >= 5 + 3*x3 = foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) = 9 + x6 >= 9 + x6 = Cons(plus_x(x16),map#2(x6)) map#2(Nil()) = 5 >= 4 = Nil() plus_x#1(S(x8),x10) = 4 + x10 >= 4 + x10 = S(plus_x#1(x8,x10)) ** Step 1.b:5: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: plus_x#1(S(x8),x10) -> S(plus_x#1(x8,x10)) - Weak TRS: comp_f_g#1(plus_x(x3),comp_f_g(x1,x2),0()) -> plus_x#1(x3,comp_f_g#1(x1,x2,0())) comp_f_g#1(plus_x(x3),id(),0()) -> plus_x#1(x3,0()) foldr#3(Cons(x32,x6)) -> comp_f_g(x32,foldr#3(x6)) foldr#3(Nil()) -> id() foldr_f#3(Cons(x16,x5),x24) -> comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) -> 0() main(x3) -> foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) -> Cons(plus_x(x16),map#2(x6)) map#2(Nil()) -> Nil() plus_x#1(0(),x6) -> x6 - Signature: {comp_f_g#1/3,foldr#3/1,foldr_f#3/2,main/1,map#2/1,plus_x#1/2} / {0/0,Cons/2,Nil/0,S/1,comp_f_g/2,id/0 ,plus_x/1} - Obligation: innermost runtime complexity wrt. defined symbols {comp_f_g#1,foldr#3,foldr_f#3,main,map#2 ,plus_x#1} and constructors {0,Cons,Nil,S,comp_f_g,id,plus_x} + 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: uargs(Cons) = {2}, uargs(S) = {1}, uargs(comp_f_g) = {2}, uargs(comp_f_g#1) = {2}, uargs(foldr_f#3) = {1}, uargs(plus_x#1) = {2} Following symbols are considered usable: {comp_f_g#1,foldr#3,foldr_f#3,main,map#2,plus_x#1} TcT has computed the following interpretation: p(0) = 0 p(Cons) = 3 + x1 + x2 p(Nil) = 4 p(S) = 1 + x1 p(comp_f_g) = x1 + x2 p(comp_f_g#1) = 1 + 3*x1 + 3*x2 p(foldr#3) = 3 + x1 p(foldr_f#3) = 8 + 3*x1 + x2 p(id) = 0 p(main) = 9 + 15*x1 p(map#2) = 5*x1 p(plus_x) = 10 + x1 p(plus_x#1) = 1 + 3*x1 + x2 Following rules are strictly oriented: plus_x#1(S(x8),x10) = 4 + x10 + 3*x8 > 2 + x10 + 3*x8 = S(plus_x#1(x8,x10)) Following rules are (at-least) weakly oriented: comp_f_g#1(plus_x(x3),comp_f_g(x1,x2),0()) = 31 + 3*x1 + 3*x2 + 3*x3 >= 2 + 3*x1 + 3*x2 + 3*x3 = plus_x#1(x3,comp_f_g#1(x1,x2,0())) comp_f_g#1(plus_x(x3),id(),0()) = 31 + 3*x3 >= 1 + 3*x3 = plus_x#1(x3,0()) foldr#3(Cons(x32,x6)) = 6 + x32 + x6 >= 3 + x32 + x6 = comp_f_g(x32,foldr#3(x6)) foldr#3(Nil()) = 7 >= 0 = id() foldr_f#3(Cons(x16,x5),x24) = 17 + 3*x16 + x24 + 3*x5 >= 10 + 3*x16 + 3*x5 = comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) = 20 >= 0 = 0() main(x3) = 9 + 15*x3 >= 8 + 15*x3 = foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) = 15 + 5*x16 + 5*x6 >= 13 + x16 + 5*x6 = Cons(plus_x(x16),map#2(x6)) map#2(Nil()) = 20 >= 4 = Nil() plus_x#1(0(),x6) = 1 + x6 >= x6 = x6 ** Step 1.b:6: EmptyProcessor WORST_CASE(?,O(1)) + Considered Problem: - Weak TRS: comp_f_g#1(plus_x(x3),comp_f_g(x1,x2),0()) -> plus_x#1(x3,comp_f_g#1(x1,x2,0())) comp_f_g#1(plus_x(x3),id(),0()) -> plus_x#1(x3,0()) foldr#3(Cons(x32,x6)) -> comp_f_g(x32,foldr#3(x6)) foldr#3(Nil()) -> id() foldr_f#3(Cons(x16,x5),x24) -> comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) -> 0() main(x3) -> foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) -> Cons(plus_x(x16),map#2(x6)) map#2(Nil()) -> Nil() plus_x#1(0(),x6) -> x6 plus_x#1(S(x8),x10) -> S(plus_x#1(x8,x10)) - Signature: {comp_f_g#1/3,foldr#3/1,foldr_f#3/2,main/1,map#2/1,plus_x#1/2} / {0/0,Cons/2,Nil/0,S/1,comp_f_g/2,id/0 ,plus_x/1} - Obligation: innermost runtime complexity wrt. defined symbols {comp_f_g#1,foldr#3,foldr_f#3,main,map#2 ,plus_x#1} and constructors {0,Cons,Nil,S,comp_f_g,id,plus_x} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(Omega(n^1),O(n^1))