WORST_CASE(?,O(n^1)) * Step 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 2: NaturalMI 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: 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: 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) = [1] x2 + [4] p(Nil) = [0] p(S) = [1] x1 + [0] p(comp_f_g) = [1] x2 + [0] p(comp_f_g#1) = [2] x2 + [1] x3 + [14] p(foldr#3) = [2] x1 + [1] p(foldr_f#3) = [4] x1 + [1] x2 + [0] p(id) = [1] p(main) = [8] x1 + [2] p(map#2) = [2] x1 + [0] p(plus_x) = [2] p(plus_x#1) = [1] x2 + [0] Following rules are strictly oriented: foldr#3(Cons(x32,x6)) = [2] x6 + [9] > [2] x6 + [1] = 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()) = [2] x2 + [16] >= [2] x2 + [16] = plus_x#1(x3,comp_f_g#1(x1,x2,0())) comp_f_g#1(plus_x(x3),id(),0()) = [18] >= [2] = plus_x#1(x3,0()) foldr#3(Nil()) = [1] >= [1] = id() foldr_f#3(Cons(x16,x5),x24) = [1] x24 + [4] x5 + [16] >= [1] x24 + [4] x5 + [16] = comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) = [2] >= [2] = 0() main(x3) = [8] x3 + [2] >= [8] x3 + [2] = foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) = [2] x6 + [8] >= [2] x6 + [4] = Cons(plus_x(x16),map#2(x6)) map#2(Nil()) = [0] >= [0] = Nil() plus_x#1(0(),x6) = [1] x6 + [0] >= [1] x6 + [0] = x6 plus_x#1(S(x8),x10) = [1] x10 + [0] >= [1] x10 + [0] = S(plus_x#1(x8,x10)) * Step 3: NaturalMI 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: 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: 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 + [2] p(Nil) = [4] p(S) = [1] x1 + [0] p(comp_f_g) = [1] x2 + [2] p(comp_f_g#1) = [1] x2 + [0] p(foldr#3) = [4] x1 + [0] p(foldr_f#3) = [6] x1 + [1] p(id) = [4] p(main) = [12] x1 + [1] p(map#2) = [2] x1 + [0] p(plus_x) = [1] x1 + [0] p(plus_x#1) = [1] x2 + [0] Following rules are strictly oriented: comp_f_g#1(plus_x(x3),comp_f_g(x1,x2),0()) = [1] x2 + [2] > [1] x2 + [0] = 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()) = [4] >= [1] = plus_x#1(x3,0()) foldr#3(Cons(x32,x6)) = [4] x6 + [8] >= [4] x6 + [2] = comp_f_g(x32,foldr#3(x6)) foldr#3(Nil()) = [16] >= [4] = id() foldr_f#3(Cons(x16,x5),x24) = [6] x5 + [13] >= [4] x5 + [0] = comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) = [25] >= [1] = 0() main(x3) = [12] x3 + [1] >= [12] x3 + [1] = foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) = [2] x6 + [4] >= [2] x6 + [2] = Cons(plus_x(x16),map#2(x6)) map#2(Nil()) = [8] >= [4] = Nil() plus_x#1(0(),x6) = [1] x6 + [0] >= [1] x6 + [0] = x6 plus_x#1(S(x8),x10) = [1] x10 + [0] >= [1] x10 + [0] = S(plus_x#1(x8,x10)) * Step 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 5: NaturalMI 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: 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: 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) = [1] x1 + [1] x2 + [4] p(Nil) = [2] p(S) = [1] x1 + [4] p(comp_f_g) = [1] x1 + [1] x2 + [0] p(comp_f_g#1) = [2] x1 + [2] x2 + [2] x3 + [3] p(foldr#3) = [2] x1 + [7] p(foldr_f#3) = [4] x1 + [2] x2 + [1] p(id) = [0] p(main) = [8] x1 + [9] p(map#2) = [2] x1 + [1] p(plus_x) = [1] x1 + [4] p(plus_x#1) = [2] x1 + [1] x2 + [0] Following rules are strictly oriented: plus_x#1(S(x8),x10) = [1] x10 + [2] x8 + [8] > [1] x10 + [2] x8 + [4] = 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()) = [2] x1 + [2] x2 + [2] x3 + [15] >= [2] x1 + [2] x2 + [2] x3 + [7] = plus_x#1(x3,comp_f_g#1(x1,x2,0())) comp_f_g#1(plus_x(x3),id(),0()) = [2] x3 + [15] >= [2] x3 + [2] = plus_x#1(x3,0()) foldr#3(Cons(x32,x6)) = [2] x32 + [2] x6 + [15] >= [1] x32 + [2] x6 + [7] = comp_f_g(x32,foldr#3(x6)) foldr#3(Nil()) = [11] >= [0] = id() foldr_f#3(Cons(x16,x5),x24) = [4] x16 + [2] x24 + [4] x5 + [17] >= [2] x16 + [2] x24 + [4] x5 + [17] = comp_f_g#1(x16,foldr#3(x5),x24) foldr_f#3(Nil(),0()) = [13] >= [2] = 0() main(x3) = [8] x3 + [9] >= [8] x3 + [9] = foldr_f#3(map#2(x3),0()) map#2(Cons(x16,x6)) = [2] x16 + [2] x6 + [9] >= [1] x16 + [2] x6 + [9] = Cons(plus_x(x16),map#2(x6)) map#2(Nil()) = [5] >= [2] = Nil() plus_x#1(0(),x6) = [1] x6 + [4] >= [1] x6 + [0] = x6 * Step 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(?,O(n^1))