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: Sum. 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: Sum {left = someStrategy, right = someStrategy} + Details: () ** Step 1.a:2: 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: NaturalMI. 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: 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(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) = [1] x2 + [4] p(Leaf) = [2] p(Nil) = [8] p(Node) = [1] x1 + [1] x2 + [2] p(comp_f_g) = [1] x1 + [1] x2 + [0] p(comp_f_g#1) = [4] x1 + [4] x2 + [1] x3 + [0] p(cons_x) = [3] p(main) = [8] x1 + [8] p(walk#1) = [2] x1 + [0] Following rules are strictly oriented: comp_f_g#1(comp_f_g(x7,x9),cons_x(x2),x4) = [1] x4 + [4] x7 + [4] x9 + [12] > [1] x4 + [4] x7 + [4] x9 + [4] = comp_f_g#1(x7,x9,Cons(x2,x4)) comp_f_g#1(cons_x(x2),comp_f_g(x5,x7),x3) = [1] x3 + [4] x5 + [4] x7 + [12] > [1] x3 + [4] x5 + [4] x7 + [4] = Cons(x2,comp_f_g#1(x5,x7,x3)) comp_f_g#1(cons_x(x5),cons_x(x2),x4) = [1] x4 + [24] > [1] x4 + [8] = Cons(x5,Cons(x2,x4)) main(Leaf(x4)) = [24] > [12] = Cons(x4,Nil()) main(Node(x9,x5)) = [8] x5 + [8] x9 + [24] > [8] x5 + [8] x9 + [8] = comp_f_g#1(walk#1(x9),walk#1(x5),Nil()) walk#1(Leaf(x2)) = [4] > [3] = cons_x(x2) walk#1(Node(x5,x3)) = [2] x3 + [2] x5 + [4] > [2] x3 + [2] x5 + [0] = 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) = [1] x1 + [4] x2 + [4] x3 + [4] x4 + [4] x5 + [0] >= [1] x1 + [4] x2 + [4] x3 + [4] x4 + [4] x5 + [0] = comp_f_g#1(x4,x5,comp_f_g#1(x2,x3,x1)) ** Step 1.b:2: NaturalMI. 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)) - Weak TRS: 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: 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(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) = [1] x2 + [0] p(Leaf) = [1] p(Nil) = [15] p(Node) = [1] x1 + [1] x2 + [2] p(comp_f_g) = [1] x1 + [1] x2 + [4] p(comp_f_g#1) = [1] x1 + [1] x2 + [1] x3 + [0] p(cons_x) = [0] p(main) = [14] x1 + [2] p(walk#1) = [4] x1 + [0] Following rules are strictly oriented: comp_f_g#1(comp_f_g(x4,x5),comp_f_g(x2,x3),x1) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [1] x5 + [8] > [1] x1 + [1] x2 + [1] x3 + [1] x4 + [1] x5 + [0] = comp_f_g#1(x4,x5,comp_f_g#1(x2,x3,x1)) Following rules are (at-least) weakly oriented: comp_f_g#1(comp_f_g(x7,x9),cons_x(x2),x4) = [1] x4 + [1] x7 + [1] x9 + [4] >= [1] x4 + [1] x7 + [1] x9 + [0] = comp_f_g#1(x7,x9,Cons(x2,x4)) comp_f_g#1(cons_x(x2),comp_f_g(x5,x7),x3) = [1] x3 + [1] x5 + [1] x7 + [4] >= [1] x3 + [1] x5 + [1] x7 + [0] = Cons(x2,comp_f_g#1(x5,x7,x3)) comp_f_g#1(cons_x(x5),cons_x(x2),x4) = [1] x4 + [0] >= [1] x4 + [0] = Cons(x5,Cons(x2,x4)) main(Leaf(x4)) = [16] >= [15] = Cons(x4,Nil()) main(Node(x9,x5)) = [14] x5 + [14] x9 + [30] >= [4] x5 + [4] x9 + [15] = comp_f_g#1(walk#1(x9),walk#1(x5),Nil()) walk#1(Leaf(x2)) = [4] >= [0] = cons_x(x2) walk#1(Node(x5,x3)) = [4] x3 + [4] x5 + [8] >= [4] x3 + [4] x5 + [4] = comp_f_g(walk#1(x5),walk#1(x3)) ** Step 1.b:3: 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))