WORST_CASE(?,O(n^1)) * Step 1: WeightGap WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: a(C(x1,x2),y,z) -> C(a(x1,y,z),a(x2,y,y)) a(Z(),y,z) -> Z() eqZList(C(x1,x2),C(y1,y2)) -> and(eqZList(x1,y1),eqZList(x2,y2)) eqZList(C(x1,x2),Z()) -> False() eqZList(Z(),C(y1,y2)) -> False() eqZList(Z(),Z()) -> True() first(C(x1,x2)) -> x1 second(C(x1,x2)) -> x2 - Weak TRS: and(False(),False()) -> False() and(False(),True()) -> False() and(True(),False()) -> False() and(True(),True()) -> True() - Signature: {a/3,and/2,eqZList/2,first/1,second/1} / {C/2,False/0,True/0,Z/0} - Obligation: innermost runtime complexity wrt. defined symbols {a,and,eqZList,first,second} and constructors {C,False ,True,Z} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following nonconstant growth matrix-interpretation: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(C) = {1,2}, uargs(and) = {1,2} Following symbols are considered usable: all TcT has computed the following interpretation: p(C) = [1] x1 + [1] x2 + [1] p(False) = [8] p(True) = [7] p(Z) = [1] p(a) = [1] x1 + [15] p(and) = [1] x1 + [1] x2 + [2] p(eqZList) = [3] x1 + [6] x2 + [0] p(first) = [5] x1 + [0] p(second) = [1] x1 + [15] Following rules are strictly oriented: a(Z(),y,z) = [16] > [1] = Z() eqZList(C(x1,x2),C(y1,y2)) = [3] x1 + [3] x2 + [6] y1 + [6] y2 + [9] > [3] x1 + [3] x2 + [6] y1 + [6] y2 + [2] = and(eqZList(x1,y1),eqZList(x2,y2)) eqZList(C(x1,x2),Z()) = [3] x1 + [3] x2 + [9] > [8] = False() eqZList(Z(),C(y1,y2)) = [6] y1 + [6] y2 + [9] > [8] = False() eqZList(Z(),Z()) = [9] > [7] = True() first(C(x1,x2)) = [5] x1 + [5] x2 + [5] > [1] x1 + [0] = x1 second(C(x1,x2)) = [1] x1 + [1] x2 + [16] > [1] x2 + [0] = x2 Following rules are (at-least) weakly oriented: a(C(x1,x2),y,z) = [1] x1 + [1] x2 + [16] >= [1] x1 + [1] x2 + [31] = C(a(x1,y,z),a(x2,y,y)) and(False(),False()) = [18] >= [8] = False() and(False(),True()) = [17] >= [8] = False() and(True(),False()) = [17] >= [8] = False() and(True(),True()) = [16] >= [7] = True() Further, it can be verified that all rules not oriented are covered by the weightgap condition. * Step 2: WeightGap WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: a(C(x1,x2),y,z) -> C(a(x1,y,z),a(x2,y,y)) - Weak TRS: a(Z(),y,z) -> Z() and(False(),False()) -> False() and(False(),True()) -> False() and(True(),False()) -> False() and(True(),True()) -> True() eqZList(C(x1,x2),C(y1,y2)) -> and(eqZList(x1,y1),eqZList(x2,y2)) eqZList(C(x1,x2),Z()) -> False() eqZList(Z(),C(y1,y2)) -> False() eqZList(Z(),Z()) -> True() first(C(x1,x2)) -> x1 second(C(x1,x2)) -> x2 - Signature: {a/3,and/2,eqZList/2,first/1,second/1} / {C/2,False/0,True/0,Z/0} - Obligation: innermost runtime complexity wrt. defined symbols {a,and,eqZList,first,second} and constructors {C,False ,True,Z} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following nonconstant growth matrix-interpretation: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(C) = {1,2}, uargs(and) = {1,2} Following symbols are considered usable: all TcT has computed the following interpretation: p(C) = [1] x1 + [1] x2 + [4] p(False) = [0] p(True) = [2] p(Z) = [1] p(a) = [2] x1 + [0] p(and) = [1] x1 + [1] x2 + [4] p(eqZList) = [2] x1 + [0] p(first) = [1] x1 + [0] p(second) = [2] x1 + [4] Following rules are strictly oriented: a(C(x1,x2),y,z) = [2] x1 + [2] x2 + [8] > [2] x1 + [2] x2 + [4] = C(a(x1,y,z),a(x2,y,y)) Following rules are (at-least) weakly oriented: a(Z(),y,z) = [2] >= [1] = Z() and(False(),False()) = [4] >= [0] = False() and(False(),True()) = [6] >= [0] = False() and(True(),False()) = [6] >= [0] = False() and(True(),True()) = [8] >= [2] = True() eqZList(C(x1,x2),C(y1,y2)) = [2] x1 + [2] x2 + [8] >= [2] x1 + [2] x2 + [4] = and(eqZList(x1,y1),eqZList(x2,y2)) eqZList(C(x1,x2),Z()) = [2] x1 + [2] x2 + [8] >= [0] = False() eqZList(Z(),C(y1,y2)) = [2] >= [0] = False() eqZList(Z(),Z()) = [2] >= [2] = True() first(C(x1,x2)) = [1] x1 + [1] x2 + [4] >= [1] x1 + [0] = x1 second(C(x1,x2)) = [2] x1 + [2] x2 + [12] >= [1] x2 + [0] = x2 Further, it can be verified that all rules not oriented are covered by the weightgap condition. * Step 3: EmptyProcessor WORST_CASE(?,O(1)) + Considered Problem: - Weak TRS: a(C(x1,x2),y,z) -> C(a(x1,y,z),a(x2,y,y)) a(Z(),y,z) -> Z() and(False(),False()) -> False() and(False(),True()) -> False() and(True(),False()) -> False() and(True(),True()) -> True() eqZList(C(x1,x2),C(y1,y2)) -> and(eqZList(x1,y1),eqZList(x2,y2)) eqZList(C(x1,x2),Z()) -> False() eqZList(Z(),C(y1,y2)) -> False() eqZList(Z(),Z()) -> True() first(C(x1,x2)) -> x1 second(C(x1,x2)) -> x2 - Signature: {a/3,and/2,eqZList/2,first/1,second/1} / {C/2,False/0,True/0,Z/0} - Obligation: innermost runtime complexity wrt. defined symbols {a,and,eqZList,first,second} and constructors {C,False ,True,Z} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(?,O(n^1))