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(comp_f_g(x4,x5),comp_f_g(x2,x3),x1) -> comp_f_g#1(x4,x5,comp_f_g#1(x2,x3,x1)) comp_f_g#1(comp_f_g(x7,x9),cons_x(x2),x4) -> comp_f_g#1(x7,x9,Cons(x2,x4)) comp_f_g#1(cons_x(x2),comp_f_g(x5,x7),x3) -> Cons(x2,comp_f_g#1(x5,x7,x3)) comp_f_g#1(cons_x(x5),cons_x(x2),x4) -> Cons(x5,Cons(x2,x4)) main(Leaf(x4)) -> Cons(x4,Nil()) main(Node(x9,x5)) -> comp_f_g#1(walk#1(x9),walk#1(x5),Nil()) walk#1(Leaf(x2)) -> cons_x(x2) walk#1(Node(x5,x3)) -> comp_f_g(walk#1(x5),walk#1(x3)) - Signature: {comp_f_g#1/3,main/1,walk#1/1} / {Cons/2,Leaf/1,Nil/0,Node/2,comp_f_g/2,cons_x/1} - Obligation: innermost runtime complexity wrt. defined symbols {comp_f_g#1,main,walk#1} and constructors {Cons,Leaf,Nil ,Node,comp_f_g,cons_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(comp_f_g(x4,x5),comp_f_g(x2,x3),x1) -> comp_f_g#1(x4,x5,comp_f_g#1(x2,x3,x1)) comp_f_g#1(comp_f_g(x7,x9),cons_x(x2),x4) -> comp_f_g#1(x7,x9,Cons(x2,x4)) comp_f_g#1(cons_x(x2),comp_f_g(x5,x7),x3) -> Cons(x2,comp_f_g#1(x5,x7,x3)) comp_f_g#1(cons_x(x5),cons_x(x2),x4) -> Cons(x5,Cons(x2,x4)) main(Leaf(x4)) -> Cons(x4,Nil()) main(Node(x9,x5)) -> comp_f_g#1(walk#1(x9),walk#1(x5),Nil()) walk#1(Leaf(x2)) -> cons_x(x2) walk#1(Node(x5,x3)) -> comp_f_g(walk#1(x5),walk#1(x3)) - Signature: {comp_f_g#1/3,main/1,walk#1/1} / {Cons/2,Leaf/1,Nil/0,Node/2,comp_f_g/2,cons_x/1} - Obligation: innermost runtime complexity wrt. defined symbols {comp_f_g#1,main,walk#1} and constructors {Cons,Leaf,Nil ,Node,comp_f_g,cons_x} + Applied Processor: DecreasingLoops {bound = AnyLoop, narrow = 10} + Details: The system has following decreasing Loops: walk#1(x){x -> Node(x,y)} = walk#1(Node(x,y)) ->^+ comp_f_g(walk#1(x),walk#1(y)) = C[walk#1(x) = walk#1(x){}] ** Step 1.b:1: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: comp_f_g#1(comp_f_g(x4,x5),comp_f_g(x2,x3),x1) -> comp_f_g#1(x4,x5,comp_f_g#1(x2,x3,x1)) comp_f_g#1(comp_f_g(x7,x9),cons_x(x2),x4) -> comp_f_g#1(x7,x9,Cons(x2,x4)) comp_f_g#1(cons_x(x2),comp_f_g(x5,x7),x3) -> Cons(x2,comp_f_g#1(x5,x7,x3)) comp_f_g#1(cons_x(x5),cons_x(x2),x4) -> Cons(x5,Cons(x2,x4)) main(Leaf(x4)) -> Cons(x4,Nil()) main(Node(x9,x5)) -> comp_f_g#1(walk#1(x9),walk#1(x5),Nil()) walk#1(Leaf(x2)) -> cons_x(x2) walk#1(Node(x5,x3)) -> comp_f_g(walk#1(x5),walk#1(x3)) - Signature: {comp_f_g#1/3,main/1,walk#1/1} / {Cons/2,Leaf/1,Nil/0,Node/2,comp_f_g/2,cons_x/1} - Obligation: innermost runtime complexity wrt. defined symbols {comp_f_g#1,main,walk#1} and constructors {Cons,Leaf,Nil ,Node,comp_f_g,cons_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(comp_f_g) = {1,2}, uargs(comp_f_g#1) = {1,2,3} Following symbols are considered usable: {comp_f_g#1,main,walk#1} TcT has computed the following interpretation: p(Cons) = x2 p(Leaf) = 2 p(Nil) = 0 p(Node) = x2 p(comp_f_g) = x1 + x2 p(comp_f_g#1) = 2*x1 + 2*x2 + x3 p(cons_x) = 0 p(main) = 6 + x1 p(walk#1) = 0 Following rules are strictly oriented: main(Leaf(x4)) = 8 > 0 = Cons(x4,Nil()) main(Node(x9,x5)) = 6 + x5 > 0 = comp_f_g#1(walk#1(x9),walk#1(x5),Nil()) Following rules are (at-least) weakly oriented: comp_f_g#1(comp_f_g(x4,x5),comp_f_g(x2,x3),x1) = x1 + 2*x2 + 2*x3 + 2*x4 + 2*x5 >= x1 + 2*x2 + 2*x3 + 2*x4 + 2*x5 = comp_f_g#1(x4,x5,comp_f_g#1(x2,x3,x1)) comp_f_g#1(comp_f_g(x7,x9),cons_x(x2),x4) = x4 + 2*x7 + 2*x9 >= x4 + 2*x7 + 2*x9 = comp_f_g#1(x7,x9,Cons(x2,x4)) comp_f_g#1(cons_x(x2),comp_f_g(x5,x7),x3) = x3 + 2*x5 + 2*x7 >= x3 + 2*x5 + 2*x7 = Cons(x2,comp_f_g#1(x5,x7,x3)) comp_f_g#1(cons_x(x5),cons_x(x2),x4) = x4 >= x4 = Cons(x5,Cons(x2,x4)) walk#1(Leaf(x2)) = 0 >= 0 = cons_x(x2) walk#1(Node(x5,x3)) = 0 >= 0 = comp_f_g(walk#1(x5),walk#1(x3)) ** Step 1.b:2: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: comp_f_g#1(comp_f_g(x4,x5),comp_f_g(x2,x3),x1) -> comp_f_g#1(x4,x5,comp_f_g#1(x2,x3,x1)) comp_f_g#1(comp_f_g(x7,x9),cons_x(x2),x4) -> comp_f_g#1(x7,x9,Cons(x2,x4)) comp_f_g#1(cons_x(x2),comp_f_g(x5,x7),x3) -> Cons(x2,comp_f_g#1(x5,x7,x3)) comp_f_g#1(cons_x(x5),cons_x(x2),x4) -> Cons(x5,Cons(x2,x4)) walk#1(Leaf(x2)) -> cons_x(x2) walk#1(Node(x5,x3)) -> comp_f_g(walk#1(x5),walk#1(x3)) - Weak TRS: main(Leaf(x4)) -> Cons(x4,Nil()) main(Node(x9,x5)) -> comp_f_g#1(walk#1(x9),walk#1(x5),Nil()) - Signature: {comp_f_g#1/3,main/1,walk#1/1} / {Cons/2,Leaf/1,Nil/0,Node/2,comp_f_g/2,cons_x/1} - Obligation: innermost runtime complexity wrt. defined symbols {comp_f_g#1,main,walk#1} and constructors {Cons,Leaf,Nil ,Node,comp_f_g,cons_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(comp_f_g) = {1,2}, uargs(comp_f_g#1) = {1,2,3} Following symbols are considered usable: {comp_f_g#1,main,walk#1} TcT has computed the following interpretation: p(Cons) = x2 p(Leaf) = 2 p(Nil) = 2 p(Node) = x1 + x2 p(comp_f_g) = x1 + x2 p(comp_f_g#1) = 4*x1 + 4*x2 + x3 p(cons_x) = 0 p(main) = 5 + 4*x1 p(walk#1) = x1 Following rules are strictly oriented: walk#1(Leaf(x2)) = 2 > 0 = cons_x(x2) Following rules are (at-least) weakly oriented: comp_f_g#1(comp_f_g(x4,x5),comp_f_g(x2,x3),x1) = x1 + 4*x2 + 4*x3 + 4*x4 + 4*x5 >= x1 + 4*x2 + 4*x3 + 4*x4 + 4*x5 = comp_f_g#1(x4,x5,comp_f_g#1(x2,x3,x1)) comp_f_g#1(comp_f_g(x7,x9),cons_x(x2),x4) = x4 + 4*x7 + 4*x9 >= x4 + 4*x7 + 4*x9 = comp_f_g#1(x7,x9,Cons(x2,x4)) comp_f_g#1(cons_x(x2),comp_f_g(x5,x7),x3) = x3 + 4*x5 + 4*x7 >= x3 + 4*x5 + 4*x7 = Cons(x2,comp_f_g#1(x5,x7,x3)) comp_f_g#1(cons_x(x5),cons_x(x2),x4) = x4 >= x4 = Cons(x5,Cons(x2,x4)) main(Leaf(x4)) = 13 >= 2 = Cons(x4,Nil()) main(Node(x9,x5)) = 5 + 4*x5 + 4*x9 >= 2 + 4*x5 + 4*x9 = comp_f_g#1(walk#1(x9),walk#1(x5),Nil()) walk#1(Node(x5,x3)) = x3 + x5 >= x3 + x5 = comp_f_g(walk#1(x5),walk#1(x3)) ** Step 1.b:3: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: comp_f_g#1(comp_f_g(x4,x5),comp_f_g(x2,x3),x1) -> comp_f_g#1(x4,x5,comp_f_g#1(x2,x3,x1)) comp_f_g#1(comp_f_g(x7,x9),cons_x(x2),x4) -> comp_f_g#1(x7,x9,Cons(x2,x4)) comp_f_g#1(cons_x(x2),comp_f_g(x5,x7),x3) -> Cons(x2,comp_f_g#1(x5,x7,x3)) comp_f_g#1(cons_x(x5),cons_x(x2),x4) -> Cons(x5,Cons(x2,x4)) walk#1(Node(x5,x3)) -> comp_f_g(walk#1(x5),walk#1(x3)) - Weak TRS: main(Leaf(x4)) -> Cons(x4,Nil()) main(Node(x9,x5)) -> comp_f_g#1(walk#1(x9),walk#1(x5),Nil()) walk#1(Leaf(x2)) -> cons_x(x2) - Signature: {comp_f_g#1/3,main/1,walk#1/1} / {Cons/2,Leaf/1,Nil/0,Node/2,comp_f_g/2,cons_x/1} - Obligation: innermost runtime complexity wrt. defined symbols {comp_f_g#1,main,walk#1} and constructors {Cons,Leaf,Nil ,Node,comp_f_g,cons_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(comp_f_g) = {1,2}, uargs(comp_f_g#1) = {1,2,3} Following symbols are considered usable: {comp_f_g#1,main,walk#1} TcT has computed the following interpretation: p(Cons) = 3 + x2 p(Leaf) = 1 p(Nil) = 4 p(Node) = 1 + x1 + x2 p(comp_f_g) = 1 + x1 + x2 p(comp_f_g#1) = 4 + 4*x1 + 4*x2 + x3 p(cons_x) = 1 p(main) = 4 + 4*x1 p(walk#1) = x1 Following rules are strictly oriented: comp_f_g#1(comp_f_g(x4,x5),comp_f_g(x2,x3),x1) = 12 + x1 + 4*x2 + 4*x3 + 4*x4 + 4*x5 > 8 + x1 + 4*x2 + 4*x3 + 4*x4 + 4*x5 = comp_f_g#1(x4,x5,comp_f_g#1(x2,x3,x1)) comp_f_g#1(comp_f_g(x7,x9),cons_x(x2),x4) = 12 + x4 + 4*x7 + 4*x9 > 7 + x4 + 4*x7 + 4*x9 = comp_f_g#1(x7,x9,Cons(x2,x4)) comp_f_g#1(cons_x(x2),comp_f_g(x5,x7),x3) = 12 + x3 + 4*x5 + 4*x7 > 7 + x3 + 4*x5 + 4*x7 = Cons(x2,comp_f_g#1(x5,x7,x3)) comp_f_g#1(cons_x(x5),cons_x(x2),x4) = 12 + x4 > 6 + x4 = Cons(x5,Cons(x2,x4)) Following rules are (at-least) weakly oriented: main(Leaf(x4)) = 8 >= 7 = Cons(x4,Nil()) main(Node(x9,x5)) = 8 + 4*x5 + 4*x9 >= 8 + 4*x5 + 4*x9 = comp_f_g#1(walk#1(x9),walk#1(x5),Nil()) walk#1(Leaf(x2)) = 1 >= 1 = cons_x(x2) walk#1(Node(x5,x3)) = 1 + x3 + x5 >= 1 + x3 + x5 = comp_f_g(walk#1(x5),walk#1(x3)) ** Step 1.b:4: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: walk#1(Node(x5,x3)) -> comp_f_g(walk#1(x5),walk#1(x3)) - Weak TRS: comp_f_g#1(comp_f_g(x4,x5),comp_f_g(x2,x3),x1) -> comp_f_g#1(x4,x5,comp_f_g#1(x2,x3,x1)) comp_f_g#1(comp_f_g(x7,x9),cons_x(x2),x4) -> comp_f_g#1(x7,x9,Cons(x2,x4)) comp_f_g#1(cons_x(x2),comp_f_g(x5,x7),x3) -> Cons(x2,comp_f_g#1(x5,x7,x3)) comp_f_g#1(cons_x(x5),cons_x(x2),x4) -> Cons(x5,Cons(x2,x4)) main(Leaf(x4)) -> Cons(x4,Nil()) main(Node(x9,x5)) -> comp_f_g#1(walk#1(x9),walk#1(x5),Nil()) walk#1(Leaf(x2)) -> cons_x(x2) - Signature: {comp_f_g#1/3,main/1,walk#1/1} / {Cons/2,Leaf/1,Nil/0,Node/2,comp_f_g/2,cons_x/1} - Obligation: innermost runtime complexity wrt. defined symbols {comp_f_g#1,main,walk#1} and constructors {Cons,Leaf,Nil ,Node,comp_f_g,cons_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(comp_f_g) = {1,2}, uargs(comp_f_g#1) = {1,2,3} Following symbols are considered usable: {comp_f_g#1,main,walk#1} TcT has computed the following interpretation: p(Cons) = x1 + x2 p(Leaf) = x1 p(Nil) = 0 p(Node) = 6 + x1 + x2 p(comp_f_g) = 7 + x1 + x2 p(comp_f_g#1) = x1 + x2 + x3 p(cons_x) = x1 p(main) = 1 + 2*x1 p(walk#1) = 2*x1 Following rules are strictly oriented: walk#1(Node(x5,x3)) = 12 + 2*x3 + 2*x5 > 7 + 2*x3 + 2*x5 = comp_f_g(walk#1(x5),walk#1(x3)) Following rules are (at-least) weakly oriented: comp_f_g#1(comp_f_g(x4,x5),comp_f_g(x2,x3),x1) = 14 + x1 + x2 + x3 + x4 + x5 >= x1 + x2 + x3 + x4 + x5 = comp_f_g#1(x4,x5,comp_f_g#1(x2,x3,x1)) comp_f_g#1(comp_f_g(x7,x9),cons_x(x2),x4) = 7 + x2 + x4 + x7 + x9 >= x2 + x4 + x7 + x9 = comp_f_g#1(x7,x9,Cons(x2,x4)) comp_f_g#1(cons_x(x2),comp_f_g(x5,x7),x3) = 7 + x2 + x3 + x5 + x7 >= x2 + x3 + x5 + x7 = Cons(x2,comp_f_g#1(x5,x7,x3)) comp_f_g#1(cons_x(x5),cons_x(x2),x4) = x2 + x4 + x5 >= x2 + x4 + x5 = Cons(x5,Cons(x2,x4)) main(Leaf(x4)) = 1 + 2*x4 >= x4 = Cons(x4,Nil()) main(Node(x9,x5)) = 13 + 2*x5 + 2*x9 >= 2*x5 + 2*x9 = comp_f_g#1(walk#1(x9),walk#1(x5),Nil()) walk#1(Leaf(x2)) = 2*x2 >= x2 = cons_x(x2) ** Step 1.b:5: EmptyProcessor WORST_CASE(?,O(1)) + Considered Problem: - Weak TRS: comp_f_g#1(comp_f_g(x4,x5),comp_f_g(x2,x3),x1) -> comp_f_g#1(x4,x5,comp_f_g#1(x2,x3,x1)) comp_f_g#1(comp_f_g(x7,x9),cons_x(x2),x4) -> comp_f_g#1(x7,x9,Cons(x2,x4)) comp_f_g#1(cons_x(x2),comp_f_g(x5,x7),x3) -> Cons(x2,comp_f_g#1(x5,x7,x3)) comp_f_g#1(cons_x(x5),cons_x(x2),x4) -> Cons(x5,Cons(x2,x4)) main(Leaf(x4)) -> Cons(x4,Nil()) main(Node(x9,x5)) -> comp_f_g#1(walk#1(x9),walk#1(x5),Nil()) walk#1(Leaf(x2)) -> cons_x(x2) walk#1(Node(x5,x3)) -> comp_f_g(walk#1(x5),walk#1(x3)) - Signature: {comp_f_g#1/3,main/1,walk#1/1} / {Cons/2,Leaf/1,Nil/0,Node/2,comp_f_g/2,cons_x/1} - Obligation: innermost runtime complexity wrt. defined symbols {comp_f_g#1,main,walk#1} and constructors {Cons,Leaf,Nil ,Node,comp_f_g,cons_x} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(Omega(n^1),O(n^1))