WORST_CASE(?,O(n^1)) * Step 1: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: group3(@l) -> group3#1(@l) group3#1(::(@x,@xs)) -> group3#2(@xs,@x) group3#1(nil()) -> nil() group3#2(::(@y,@ys),@x) -> group3#3(@ys,@x,@y) group3#2(nil(),@x) -> nil() group3#3(::(@z,@zs),@x,@y) -> ::(tuple#3(@x,@y,@z),group3(@zs)) group3#3(nil(),@x,@y) -> nil() zip3(@l1,@l2,@l3) -> zip3#1(@l1,@l2,@l3) zip3#1(::(@x,@xs),@l2,@l3) -> zip3#2(@l2,@l3,@x,@xs) zip3#1(nil(),@l2,@l3) -> nil() zip3#2(::(@y,@ys),@l3,@x,@xs) -> zip3#3(@l3,@x,@xs,@y,@ys) zip3#2(nil(),@l3,@x,@xs) -> nil() zip3#3(::(@z,@zs),@x,@xs,@y,@ys) -> ::(tuple#3(@x,@y,@z),zip3(@xs,@ys,@zs)) zip3#3(nil(),@x,@xs,@y,@ys) -> nil() - Signature: {group3/1,group3#1/1,group3#2/2,group3#3/3,zip3/3,zip3#1/3,zip3#2/4,zip3#3/5} / {::/2,nil/0,tuple#3/3} - Obligation: innermost runtime complexity wrt. defined symbols {group3,group3#1,group3#2,group3#3,zip3,zip3#1,zip3#2 ,zip3#3} and constructors {::,nil,tuple#3} + Applied Processor: NaturalPI {shape = Linear, restrict = NoRestrict, uargs = UArgs, urules = URules, selector = Nothing} + 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: {group3,group3#1,group3#2,group3#3,zip3,zip3#1,zip3#2,zip3#3} TcT has computed the following interpretation: p(::) = 1 + x1 + x2 p(group3) = 6 + 5*x1 p(group3#1) = 2 + 5*x1 p(group3#2) = 3 + 5*x1 p(group3#3) = 4 + 5*x1 p(nil) = 2 p(tuple#3) = 0 p(zip3) = 1 + 5*x1 + 4*x3 p(zip3#1) = 5*x1 + 4*x3 p(zip3#2) = 3 + 4*x2 + 5*x4 p(zip3#3) = 1 + 4*x1 + 5*x3 Following rules are strictly oriented: group3(@l) = 6 + 5*@l > 2 + 5*@l = group3#1(@l) group3#1(::(@x,@xs)) = 7 + 5*@x + 5*@xs > 3 + 5*@xs = group3#2(@xs,@x) group3#1(nil()) = 12 > 2 = nil() group3#2(::(@y,@ys),@x) = 8 + 5*@y + 5*@ys > 4 + 5*@ys = group3#3(@ys,@x,@y) group3#2(nil(),@x) = 13 > 2 = nil() group3#3(::(@z,@zs),@x,@y) = 9 + 5*@z + 5*@zs > 7 + 5*@zs = ::(tuple#3(@x,@y,@z),group3(@zs)) group3#3(nil(),@x,@y) = 14 > 2 = nil() zip3(@l1,@l2,@l3) = 1 + 5*@l1 + 4*@l3 > 5*@l1 + 4*@l3 = zip3#1(@l1,@l2,@l3) zip3#1(::(@x,@xs),@l2,@l3) = 5 + 4*@l3 + 5*@x + 5*@xs > 3 + 4*@l3 + 5*@xs = zip3#2(@l2,@l3,@x,@xs) zip3#1(nil(),@l2,@l3) = 10 + 4*@l3 > 2 = nil() zip3#2(::(@y,@ys),@l3,@x,@xs) = 3 + 4*@l3 + 5*@xs > 1 + 4*@l3 + 5*@xs = zip3#3(@l3,@x,@xs,@y,@ys) zip3#2(nil(),@l3,@x,@xs) = 3 + 4*@l3 + 5*@xs > 2 = nil() zip3#3(::(@z,@zs),@x,@xs,@y,@ys) = 5 + 5*@xs + 4*@z + 4*@zs > 2 + 5*@xs + 4*@zs = ::(tuple#3(@x,@y,@z),zip3(@xs,@ys,@zs)) zip3#3(nil(),@x,@xs,@y,@ys) = 9 + 5*@xs > 2 = nil() Following rules are (at-least) weakly oriented: WORST_CASE(?,O(n^1))