WORST_CASE(Omega(n^1),O(n^1)) * Step 1: Sum WORST_CASE(Omega(n^1),O(n^1)) + Considered Problem: - Strict TRS: merge(x,nil()) -> x merge(++(x,y),++(u(),v())) -> ++(x,merge(y,++(u(),v()))) merge(++(x,y),++(u(),v())) -> ++(u(),merge(++(x,y),v())) merge(nil(),y) -> y - Signature: {merge/2} / {++/2,nil/0,u/0,v/0} - Obligation: innermost runtime complexity wrt. defined symbols {merge} and constructors {++,nil,u,v} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () ** Step 1.a:1: DecreasingLoops WORST_CASE(Omega(n^1),?) + Considered Problem: - Strict TRS: merge(x,nil()) -> x merge(++(x,y),++(u(),v())) -> ++(x,merge(y,++(u(),v()))) merge(++(x,y),++(u(),v())) -> ++(u(),merge(++(x,y),v())) merge(nil(),y) -> y - Signature: {merge/2} / {++/2,nil/0,u/0,v/0} - Obligation: innermost runtime complexity wrt. defined symbols {merge} and constructors {++,nil,u,v} + Applied Processor: DecreasingLoops {bound = AnyLoop, narrow = 10} + Details: The system has following decreasing Loops: merge(y,++(u(),v())){y -> ++(x,y)} = merge(++(x,y),++(u(),v())) ->^+ ++(x,merge(y,++(u(),v()))) = C[merge(y,++(u(),v())) = merge(y,++(u(),v())){}] ** Step 1.b:1: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: merge(x,nil()) -> x merge(++(x,y),++(u(),v())) -> ++(x,merge(y,++(u(),v()))) merge(++(x,y),++(u(),v())) -> ++(u(),merge(++(x,y),v())) merge(nil(),y) -> y - Signature: {merge/2} / {++/2,nil/0,u/0,v/0} - Obligation: innermost runtime complexity wrt. defined symbols {merge} and constructors {++,nil,u,v} + 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(++) = {2} Following symbols are considered usable: {merge} TcT has computed the following interpretation: p(++) = 9 + x2 p(merge) = 2 + x1 + x2 p(nil) = 3 p(u) = 0 p(v) = 11 Following rules are strictly oriented: merge(x,nil()) = 5 + x > x = x merge(nil(),y) = 5 + y > y = y Following rules are (at-least) weakly oriented: merge(++(x,y),++(u(),v())) = 31 + y >= 31 + y = ++(x,merge(y,++(u(),v()))) merge(++(x,y),++(u(),v())) = 31 + y >= 31 + y = ++(u(),merge(++(x,y),v())) ** Step 1.b:2: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: merge(++(x,y),++(u(),v())) -> ++(x,merge(y,++(u(),v()))) merge(++(x,y),++(u(),v())) -> ++(u(),merge(++(x,y),v())) - Weak TRS: merge(x,nil()) -> x merge(nil(),y) -> y - Signature: {merge/2} / {++/2,nil/0,u/0,v/0} - Obligation: innermost runtime complexity wrt. defined symbols {merge} and constructors {++,nil,u,v} + 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(++) = {2} Following symbols are considered usable: {merge} TcT has computed the following interpretation: p(++) = 2 + x1 + x2 p(merge) = 8*x1 + x2 p(nil) = 0 p(u) = 0 p(v) = 0 Following rules are strictly oriented: merge(++(x,y),++(u(),v())) = 18 + 8*x + 8*y > 4 + x + 8*y = ++(x,merge(y,++(u(),v()))) Following rules are (at-least) weakly oriented: merge(x,nil()) = 8*x >= x = x merge(++(x,y),++(u(),v())) = 18 + 8*x + 8*y >= 18 + 8*x + 8*y = ++(u(),merge(++(x,y),v())) merge(nil(),y) = y >= y = y ** Step 1.b:3: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: merge(++(x,y),++(u(),v())) -> ++(u(),merge(++(x,y),v())) - Weak TRS: merge(x,nil()) -> x merge(++(x,y),++(u(),v())) -> ++(x,merge(y,++(u(),v()))) merge(nil(),y) -> y - Signature: {merge/2} / {++/2,nil/0,u/0,v/0} - Obligation: innermost runtime complexity wrt. defined symbols {merge} and constructors {++,nil,u,v} + 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(++) = {2} Following symbols are considered usable: {merge} TcT has computed the following interpretation: p(++) = 1 + x1 + x2 p(merge) = 1 + 8*x1 + 2*x2 p(nil) = 0 p(u) = 10 p(v) = 0 Following rules are strictly oriented: merge(++(x,y),++(u(),v())) = 31 + 8*x + 8*y > 20 + 8*x + 8*y = ++(u(),merge(++(x,y),v())) Following rules are (at-least) weakly oriented: merge(x,nil()) = 1 + 8*x >= x = x merge(++(x,y),++(u(),v())) = 31 + 8*x + 8*y >= 24 + x + 8*y = ++(x,merge(y,++(u(),v()))) merge(nil(),y) = 1 + 2*y >= y = y ** Step 1.b:4: EmptyProcessor WORST_CASE(?,O(1)) + Considered Problem: - Weak TRS: merge(x,nil()) -> x merge(++(x,y),++(u(),v())) -> ++(x,merge(y,++(u(),v()))) merge(++(x,y),++(u(),v())) -> ++(u(),merge(++(x,y),v())) merge(nil(),y) -> y - Signature: {merge/2} / {++/2,nil/0,u/0,v/0} - Obligation: innermost runtime complexity wrt. defined symbols {merge} and constructors {++,nil,u,v} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(Omega(n^1),O(n^1))