* Step 1: DependencyPairs WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: 0() -> n__0() activate(X) -> X activate(n__0()) -> 0() activate(n__s(X)) -> s(X) div(0(),n__s(Y)) -> 0() div(s(X),n__s(Y)) -> if(geq(X,activate(Y)),n__s(div(minus(X,activate(Y)),n__s(activate(Y)))),n__0()) geq(X,n__0()) -> true() geq(n__0(),n__s(Y)) -> false() geq(n__s(X),n__s(Y)) -> geq(activate(X),activate(Y)) if(false(),X,Y) -> activate(Y) if(true(),X,Y) -> activate(X) minus(n__0(),Y) -> 0() minus(n__s(X),n__s(Y)) -> minus(activate(X),activate(Y)) s(X) -> n__s(X) - Signature: {0/0,activate/1,div/2,geq/2,if/3,minus/2,s/1} / {false/0,n__0/0,n__s/1,true/0} - Obligation: runtime complexity wrt. defined symbols {0,activate,div,geq,if,minus,s} and constructors {false,n__0,n__s ,true} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following weak dependency pairs: Strict DPs 0#() -> c_1() activate#(X) -> c_2(X) activate#(n__0()) -> c_3(0#()) activate#(n__s(X)) -> c_4(s#(X)) div#(0(),n__s(Y)) -> c_5(0#()) div#(s(X),n__s(Y)) -> c_6(if#(geq(X,activate(Y)),n__s(div(minus(X,activate(Y)),n__s(activate(Y)))),n__0())) geq#(X,n__0()) -> c_7() geq#(n__0(),n__s(Y)) -> c_8() geq#(n__s(X),n__s(Y)) -> c_9(geq#(activate(X),activate(Y))) if#(false(),X,Y) -> c_10(activate#(Y)) if#(true(),X,Y) -> c_11(activate#(X)) minus#(n__0(),Y) -> c_12(0#()) minus#(n__s(X),n__s(Y)) -> c_13(minus#(activate(X),activate(Y))) s#(X) -> c_14(X) Weak DPs and mark the set of starting terms. * Step 2: UsableRules WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: 0#() -> c_1() activate#(X) -> c_2(X) activate#(n__0()) -> c_3(0#()) activate#(n__s(X)) -> c_4(s#(X)) div#(0(),n__s(Y)) -> c_5(0#()) div#(s(X),n__s(Y)) -> c_6(if#(geq(X,activate(Y)),n__s(div(minus(X,activate(Y)),n__s(activate(Y)))),n__0())) geq#(X,n__0()) -> c_7() geq#(n__0(),n__s(Y)) -> c_8() geq#(n__s(X),n__s(Y)) -> c_9(geq#(activate(X),activate(Y))) if#(false(),X,Y) -> c_10(activate#(Y)) if#(true(),X,Y) -> c_11(activate#(X)) minus#(n__0(),Y) -> c_12(0#()) minus#(n__s(X),n__s(Y)) -> c_13(minus#(activate(X),activate(Y))) s#(X) -> c_14(X) - Strict TRS: 0() -> n__0() activate(X) -> X activate(n__0()) -> 0() activate(n__s(X)) -> s(X) div(0(),n__s(Y)) -> 0() div(s(X),n__s(Y)) -> if(geq(X,activate(Y)),n__s(div(minus(X,activate(Y)),n__s(activate(Y)))),n__0()) geq(X,n__0()) -> true() geq(n__0(),n__s(Y)) -> false() geq(n__s(X),n__s(Y)) -> geq(activate(X),activate(Y)) if(false(),X,Y) -> activate(Y) if(true(),X,Y) -> activate(X) minus(n__0(),Y) -> 0() minus(n__s(X),n__s(Y)) -> minus(activate(X),activate(Y)) s(X) -> n__s(X) - Signature: {0/0,activate/1,div/2,geq/2,if/3,minus/2,s/1,0#/0,activate#/1,div#/2,geq#/2,if#/3,minus#/2,s#/1} / {false/0 ,n__0/0,n__s/1,true/0,c_1/0,c_2/1,c_3/1,c_4/1,c_5/1,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1 ,c_14/1} - Obligation: runtime complexity wrt. defined symbols {0#,activate#,div#,geq#,if#,minus#,s#} and constructors {false,n__0 ,n__s,true} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: 0() -> n__0() activate(X) -> X activate(n__0()) -> 0() activate(n__s(X)) -> s(X) s(X) -> n__s(X) 0#() -> c_1() activate#(X) -> c_2(X) activate#(n__0()) -> c_3(0#()) activate#(n__s(X)) -> c_4(s#(X)) geq#(X,n__0()) -> c_7() geq#(n__0(),n__s(Y)) -> c_8() geq#(n__s(X),n__s(Y)) -> c_9(geq#(activate(X),activate(Y))) if#(false(),X,Y) -> c_10(activate#(Y)) if#(true(),X,Y) -> c_11(activate#(X)) minus#(n__0(),Y) -> c_12(0#()) minus#(n__s(X),n__s(Y)) -> c_13(minus#(activate(X),activate(Y))) s#(X) -> c_14(X) * Step 3: PredecessorEstimation WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: 0#() -> c_1() activate#(X) -> c_2(X) activate#(n__0()) -> c_3(0#()) activate#(n__s(X)) -> c_4(s#(X)) geq#(X,n__0()) -> c_7() geq#(n__0(),n__s(Y)) -> c_8() geq#(n__s(X),n__s(Y)) -> c_9(geq#(activate(X),activate(Y))) if#(false(),X,Y) -> c_10(activate#(Y)) if#(true(),X,Y) -> c_11(activate#(X)) minus#(n__0(),Y) -> c_12(0#()) minus#(n__s(X),n__s(Y)) -> c_13(minus#(activate(X),activate(Y))) s#(X) -> c_14(X) - Strict TRS: 0() -> n__0() activate(X) -> X activate(n__0()) -> 0() activate(n__s(X)) -> s(X) s(X) -> n__s(X) - Signature: {0/0,activate/1,div/2,geq/2,if/3,minus/2,s/1,0#/0,activate#/1,div#/2,geq#/2,if#/3,minus#/2,s#/1} / {false/0 ,n__0/0,n__s/1,true/0,c_1/0,c_2/1,c_3/1,c_4/1,c_5/1,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1 ,c_14/1} - Obligation: runtime complexity wrt. defined symbols {0#,activate#,div#,geq#,if#,minus#,s#} and constructors {false,n__0 ,n__s,true} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,5,6} by application of Pre({1,5,6}) = {2,3,7,10,12}. Here rules are labelled as follows: 1: 0#() -> c_1() 2: activate#(X) -> c_2(X) 3: activate#(n__0()) -> c_3(0#()) 4: activate#(n__s(X)) -> c_4(s#(X)) 5: geq#(X,n__0()) -> c_7() 6: geq#(n__0(),n__s(Y)) -> c_8() 7: geq#(n__s(X),n__s(Y)) -> c_9(geq#(activate(X),activate(Y))) 8: if#(false(),X,Y) -> c_10(activate#(Y)) 9: if#(true(),X,Y) -> c_11(activate#(X)) 10: minus#(n__0(),Y) -> c_12(0#()) 11: minus#(n__s(X),n__s(Y)) -> c_13(minus#(activate(X),activate(Y))) 12: s#(X) -> c_14(X) * Step 4: PredecessorEstimation WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: activate#(X) -> c_2(X) activate#(n__0()) -> c_3(0#()) activate#(n__s(X)) -> c_4(s#(X)) geq#(n__s(X),n__s(Y)) -> c_9(geq#(activate(X),activate(Y))) if#(false(),X,Y) -> c_10(activate#(Y)) if#(true(),X,Y) -> c_11(activate#(X)) minus#(n__0(),Y) -> c_12(0#()) minus#(n__s(X),n__s(Y)) -> c_13(minus#(activate(X),activate(Y))) s#(X) -> c_14(X) - Strict TRS: 0() -> n__0() activate(X) -> X activate(n__0()) -> 0() activate(n__s(X)) -> s(X) s(X) -> n__s(X) - Weak DPs: 0#() -> c_1() geq#(X,n__0()) -> c_7() geq#(n__0(),n__s(Y)) -> c_8() - Signature: {0/0,activate/1,div/2,geq/2,if/3,minus/2,s/1,0#/0,activate#/1,div#/2,geq#/2,if#/3,minus#/2,s#/1} / {false/0 ,n__0/0,n__s/1,true/0,c_1/0,c_2/1,c_3/1,c_4/1,c_5/1,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1 ,c_14/1} - Obligation: runtime complexity wrt. defined symbols {0#,activate#,div#,geq#,if#,minus#,s#} and constructors {false,n__0 ,n__s,true} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {2,7} by application of Pre({2,7}) = {1,5,6,8,9}. Here rules are labelled as follows: 1: activate#(X) -> c_2(X) 2: activate#(n__0()) -> c_3(0#()) 3: activate#(n__s(X)) -> c_4(s#(X)) 4: geq#(n__s(X),n__s(Y)) -> c_9(geq#(activate(X),activate(Y))) 5: if#(false(),X,Y) -> c_10(activate#(Y)) 6: if#(true(),X,Y) -> c_11(activate#(X)) 7: minus#(n__0(),Y) -> c_12(0#()) 8: minus#(n__s(X),n__s(Y)) -> c_13(minus#(activate(X),activate(Y))) 9: s#(X) -> c_14(X) 10: 0#() -> c_1() 11: geq#(X,n__0()) -> c_7() 12: geq#(n__0(),n__s(Y)) -> c_8() * Step 5: WeightGap WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: activate#(X) -> c_2(X) activate#(n__s(X)) -> c_4(s#(X)) geq#(n__s(X),n__s(Y)) -> c_9(geq#(activate(X),activate(Y))) if#(false(),X,Y) -> c_10(activate#(Y)) if#(true(),X,Y) -> c_11(activate#(X)) minus#(n__s(X),n__s(Y)) -> c_13(minus#(activate(X),activate(Y))) s#(X) -> c_14(X) - Strict TRS: 0() -> n__0() activate(X) -> X activate(n__0()) -> 0() activate(n__s(X)) -> s(X) s(X) -> n__s(X) - Weak DPs: 0#() -> c_1() activate#(n__0()) -> c_3(0#()) geq#(X,n__0()) -> c_7() geq#(n__0(),n__s(Y)) -> c_8() minus#(n__0(),Y) -> c_12(0#()) - Signature: {0/0,activate/1,div/2,geq/2,if/3,minus/2,s/1,0#/0,activate#/1,div#/2,geq#/2,if#/3,minus#/2,s#/1} / {false/0 ,n__0/0,n__s/1,true/0,c_1/0,c_2/1,c_3/1,c_4/1,c_5/1,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1 ,c_14/1} - Obligation: runtime complexity wrt. defined symbols {0#,activate#,div#,geq#,if#,minus#,s#} and constructors {false,n__0 ,n__s,true} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 0, 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(geq#) = {1,2}, uargs(minus#) = {1,2}, uargs(c_3) = {1}, uargs(c_4) = {1}, uargs(c_9) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_13) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(0) = [1] p(activate) = [1] x1 + [0] p(div) = [0] p(false) = [0] p(geq) = [0] p(if) = [0] p(minus) = [0] p(n__0) = [0] p(n__s) = [1] x1 + [4] p(s) = [1] x1 + [0] p(true) = [6] p(0#) = [0] p(activate#) = [0] p(div#) = [0] p(geq#) = [1] x1 + [1] x2 + [8] p(if#) = [5] x1 + [0] p(minus#) = [1] x1 + [1] x2 + [0] p(s#) = [0] p(c_1) = [0] p(c_2) = [0] p(c_3) = [1] x1 + [0] p(c_4) = [1] x1 + [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [8] p(c_8) = [12] p(c_9) = [1] x1 + [0] p(c_10) = [1] x1 + [0] p(c_11) = [1] x1 + [0] p(c_12) = [1] x1 + [0] p(c_13) = [1] x1 + [0] p(c_14) = [0] Following rules are strictly oriented: geq#(n__s(X),n__s(Y)) = [1] X + [1] Y + [16] > [1] X + [1] Y + [8] = c_9(geq#(activate(X),activate(Y))) if#(true(),X,Y) = [30] > [0] = c_11(activate#(X)) minus#(n__s(X),n__s(Y)) = [1] X + [1] Y + [8] > [1] X + [1] Y + [0] = c_13(minus#(activate(X),activate(Y))) 0() = [1] > [0] = n__0() activate(n__s(X)) = [1] X + [4] > [1] X + [0] = s(X) Following rules are (at-least) weakly oriented: 0#() = [0] >= [0] = c_1() activate#(X) = [0] >= [0] = c_2(X) activate#(n__0()) = [0] >= [0] = c_3(0#()) activate#(n__s(X)) = [0] >= [0] = c_4(s#(X)) geq#(X,n__0()) = [1] X + [8] >= [8] = c_7() geq#(n__0(),n__s(Y)) = [1] Y + [12] >= [12] = c_8() if#(false(),X,Y) = [0] >= [0] = c_10(activate#(Y)) minus#(n__0(),Y) = [1] Y + [0] >= [0] = c_12(0#()) s#(X) = [0] >= [0] = c_14(X) activate(X) = [1] X + [0] >= [1] X + [0] = X activate(n__0()) = [0] >= [1] = 0() s(X) = [1] X + [0] >= [1] X + [4] = n__s(X) Further, it can be verified that all rules not oriented are covered by the weightgap condition. * Step 6: WeightGap WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: activate#(X) -> c_2(X) activate#(n__s(X)) -> c_4(s#(X)) if#(false(),X,Y) -> c_10(activate#(Y)) s#(X) -> c_14(X) - Strict TRS: activate(X) -> X activate(n__0()) -> 0() s(X) -> n__s(X) - Weak DPs: 0#() -> c_1() activate#(n__0()) -> c_3(0#()) geq#(X,n__0()) -> c_7() geq#(n__0(),n__s(Y)) -> c_8() geq#(n__s(X),n__s(Y)) -> c_9(geq#(activate(X),activate(Y))) if#(true(),X,Y) -> c_11(activate#(X)) minus#(n__0(),Y) -> c_12(0#()) minus#(n__s(X),n__s(Y)) -> c_13(minus#(activate(X),activate(Y))) - Weak TRS: 0() -> n__0() activate(n__s(X)) -> s(X) - Signature: {0/0,activate/1,div/2,geq/2,if/3,minus/2,s/1,0#/0,activate#/1,div#/2,geq#/2,if#/3,minus#/2,s#/1} / {false/0 ,n__0/0,n__s/1,true/0,c_1/0,c_2/1,c_3/1,c_4/1,c_5/1,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1 ,c_14/1} - Obligation: runtime complexity wrt. defined symbols {0#,activate#,div#,geq#,if#,minus#,s#} and constructors {false,n__0 ,n__s,true} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 0, 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(geq#) = {1,2}, uargs(minus#) = {1,2}, uargs(c_3) = {1}, uargs(c_4) = {1}, uargs(c_9) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_13) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(0) = [4] p(activate) = [1] x1 + [4] p(div) = [0] p(false) = [0] p(geq) = [0] p(if) = [0] p(minus) = [0] p(n__0) = [4] p(n__s) = [1] x1 + [4] p(s) = [1] x1 + [0] p(true) = [1] p(0#) = [5] p(activate#) = [2] x1 + [1] p(div#) = [0] p(geq#) = [1] x1 + [1] x2 + [4] p(if#) = [1] x1 + [2] x2 + [3] x3 + [2] p(minus#) = [1] x1 + [1] x2 + [1] p(s#) = [2] x1 + [0] p(c_1) = [0] p(c_2) = [0] p(c_3) = [1] x1 + [3] p(c_4) = [1] x1 + [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [1] p(c_8) = [2] p(c_9) = [1] x1 + [0] p(c_10) = [1] x1 + [3] p(c_11) = [1] x1 + [2] p(c_12) = [1] x1 + [0] p(c_13) = [1] x1 + [0] p(c_14) = [2] x1 + [0] Following rules are strictly oriented: activate#(X) = [2] X + [1] > [0] = c_2(X) activate#(n__s(X)) = [2] X + [9] > [2] X + [0] = c_4(s#(X)) activate(X) = [1] X + [4] > [1] X + [0] = X activate(n__0()) = [8] > [4] = 0() Following rules are (at-least) weakly oriented: 0#() = [5] >= [0] = c_1() activate#(n__0()) = [9] >= [8] = c_3(0#()) geq#(X,n__0()) = [1] X + [8] >= [1] = c_7() geq#(n__0(),n__s(Y)) = [1] Y + [12] >= [2] = c_8() geq#(n__s(X),n__s(Y)) = [1] X + [1] Y + [12] >= [1] X + [1] Y + [12] = c_9(geq#(activate(X),activate(Y))) if#(false(),X,Y) = [2] X + [3] Y + [2] >= [2] Y + [4] = c_10(activate#(Y)) if#(true(),X,Y) = [2] X + [3] Y + [3] >= [2] X + [3] = c_11(activate#(X)) minus#(n__0(),Y) = [1] Y + [5] >= [5] = c_12(0#()) minus#(n__s(X),n__s(Y)) = [1] X + [1] Y + [9] >= [1] X + [1] Y + [9] = c_13(minus#(activate(X),activate(Y))) s#(X) = [2] X + [0] >= [2] X + [0] = c_14(X) 0() = [4] >= [4] = n__0() activate(n__s(X)) = [1] X + [8] >= [1] X + [0] = s(X) s(X) = [1] X + [0] >= [1] X + [4] = n__s(X) Further, it can be verified that all rules not oriented are covered by the weightgap condition. * Step 7: WeightGap WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: if#(false(),X,Y) -> c_10(activate#(Y)) s#(X) -> c_14(X) - Strict TRS: s(X) -> n__s(X) - Weak DPs: 0#() -> c_1() activate#(X) -> c_2(X) activate#(n__0()) -> c_3(0#()) activate#(n__s(X)) -> c_4(s#(X)) geq#(X,n__0()) -> c_7() geq#(n__0(),n__s(Y)) -> c_8() geq#(n__s(X),n__s(Y)) -> c_9(geq#(activate(X),activate(Y))) if#(true(),X,Y) -> c_11(activate#(X)) minus#(n__0(),Y) -> c_12(0#()) minus#(n__s(X),n__s(Y)) -> c_13(minus#(activate(X),activate(Y))) - Weak TRS: 0() -> n__0() activate(X) -> X activate(n__0()) -> 0() activate(n__s(X)) -> s(X) - Signature: {0/0,activate/1,div/2,geq/2,if/3,minus/2,s/1,0#/0,activate#/1,div#/2,geq#/2,if#/3,minus#/2,s#/1} / {false/0 ,n__0/0,n__s/1,true/0,c_1/0,c_2/1,c_3/1,c_4/1,c_5/1,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1 ,c_14/1} - Obligation: runtime complexity wrt. defined symbols {0#,activate#,div#,geq#,if#,minus#,s#} and constructors {false,n__0 ,n__s,true} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 0, 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(geq#) = {1,2}, uargs(minus#) = {1,2}, uargs(c_3) = {1}, uargs(c_4) = {1}, uargs(c_9) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_13) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(0) = [4] p(activate) = [1] x1 + [5] p(div) = [2] x2 + [0] p(false) = [2] p(geq) = [0] p(if) = [2] x3 + [0] p(minus) = [0] p(n__0) = [2] p(n__s) = [1] x1 + [7] p(s) = [1] x1 + [4] p(true) = [0] p(0#) = [1] p(activate#) = [1] p(div#) = [1] x2 + [4] p(geq#) = [1] x1 + [1] x2 + [1] p(if#) = [4] x1 + [2] x3 + [7] p(minus#) = [1] x1 + [1] x2 + [1] p(s#) = [1] p(c_1) = [0] p(c_2) = [1] p(c_3) = [1] x1 + [0] p(c_4) = [1] x1 + [0] p(c_5) = [2] x1 + [0] p(c_6) = [4] p(c_7) = [0] p(c_8) = [1] p(c_9) = [1] x1 + [4] p(c_10) = [1] x1 + [1] p(c_11) = [1] x1 + [6] p(c_12) = [1] x1 + [2] p(c_13) = [1] x1 + [1] p(c_14) = [0] Following rules are strictly oriented: if#(false(),X,Y) = [2] Y + [15] > [2] = c_10(activate#(Y)) s#(X) = [1] > [0] = c_14(X) Following rules are (at-least) weakly oriented: 0#() = [1] >= [0] = c_1() activate#(X) = [1] >= [1] = c_2(X) activate#(n__0()) = [1] >= [1] = c_3(0#()) activate#(n__s(X)) = [1] >= [1] = c_4(s#(X)) geq#(X,n__0()) = [1] X + [3] >= [0] = c_7() geq#(n__0(),n__s(Y)) = [1] Y + [10] >= [1] = c_8() geq#(n__s(X),n__s(Y)) = [1] X + [1] Y + [15] >= [1] X + [1] Y + [15] = c_9(geq#(activate(X),activate(Y))) if#(true(),X,Y) = [2] Y + [7] >= [7] = c_11(activate#(X)) minus#(n__0(),Y) = [1] Y + [3] >= [3] = c_12(0#()) minus#(n__s(X),n__s(Y)) = [1] X + [1] Y + [15] >= [1] X + [1] Y + [12] = c_13(minus#(activate(X),activate(Y))) 0() = [4] >= [2] = n__0() activate(X) = [1] X + [5] >= [1] X + [0] = X activate(n__0()) = [7] >= [4] = 0() activate(n__s(X)) = [1] X + [12] >= [1] X + [4] = s(X) s(X) = [1] X + [4] >= [1] X + [7] = n__s(X) Further, it can be verified that all rules not oriented are covered by the weightgap condition. * Step 8: WeightGap WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: s(X) -> n__s(X) - Weak DPs: 0#() -> c_1() activate#(X) -> c_2(X) activate#(n__0()) -> c_3(0#()) activate#(n__s(X)) -> c_4(s#(X)) geq#(X,n__0()) -> c_7() geq#(n__0(),n__s(Y)) -> c_8() geq#(n__s(X),n__s(Y)) -> c_9(geq#(activate(X),activate(Y))) if#(false(),X,Y) -> c_10(activate#(Y)) if#(true(),X,Y) -> c_11(activate#(X)) minus#(n__0(),Y) -> c_12(0#()) minus#(n__s(X),n__s(Y)) -> c_13(minus#(activate(X),activate(Y))) s#(X) -> c_14(X) - Weak TRS: 0() -> n__0() activate(X) -> X activate(n__0()) -> 0() activate(n__s(X)) -> s(X) - Signature: {0/0,activate/1,div/2,geq/2,if/3,minus/2,s/1,0#/0,activate#/1,div#/2,geq#/2,if#/3,minus#/2,s#/1} / {false/0 ,n__0/0,n__s/1,true/0,c_1/0,c_2/1,c_3/1,c_4/1,c_5/1,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1 ,c_14/1} - Obligation: runtime complexity wrt. defined symbols {0#,activate#,div#,geq#,if#,minus#,s#} and constructors {false,n__0 ,n__s,true} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 0, 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(geq#) = {1,2}, uargs(minus#) = {1,2}, uargs(c_3) = {1}, uargs(c_4) = {1}, uargs(c_9) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_13) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(0) = [4] p(activate) = [1] x1 + [4] p(div) = [0] p(false) = [0] p(geq) = [0] p(if) = [0] p(minus) = [0] p(n__0) = [1] p(n__s) = [1] x1 + [4] p(s) = [1] x1 + [6] p(true) = [0] p(0#) = [1] p(activate#) = [2] p(div#) = [0] p(geq#) = [1] x1 + [1] x2 + [5] p(if#) = [2] p(minus#) = [1] x1 + [1] x2 + [0] p(s#) = [0] p(c_1) = [0] p(c_2) = [0] p(c_3) = [1] x1 + [0] p(c_4) = [1] x1 + [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [2] p(c_9) = [1] x1 + [0] p(c_10) = [1] x1 + [0] p(c_11) = [1] x1 + [0] p(c_12) = [1] x1 + [0] p(c_13) = [1] x1 + [0] p(c_14) = [0] Following rules are strictly oriented: s(X) = [1] X + [6] > [1] X + [4] = n__s(X) Following rules are (at-least) weakly oriented: 0#() = [1] >= [0] = c_1() activate#(X) = [2] >= [0] = c_2(X) activate#(n__0()) = [2] >= [1] = c_3(0#()) activate#(n__s(X)) = [2] >= [0] = c_4(s#(X)) geq#(X,n__0()) = [1] X + [6] >= [0] = c_7() geq#(n__0(),n__s(Y)) = [1] Y + [10] >= [2] = c_8() geq#(n__s(X),n__s(Y)) = [1] X + [1] Y + [13] >= [1] X + [1] Y + [13] = c_9(geq#(activate(X),activate(Y))) if#(false(),X,Y) = [2] >= [2] = c_10(activate#(Y)) if#(true(),X,Y) = [2] >= [2] = c_11(activate#(X)) minus#(n__0(),Y) = [1] Y + [1] >= [1] = c_12(0#()) minus#(n__s(X),n__s(Y)) = [1] X + [1] Y + [8] >= [1] X + [1] Y + [8] = c_13(minus#(activate(X),activate(Y))) s#(X) = [0] >= [0] = c_14(X) 0() = [4] >= [1] = n__0() activate(X) = [1] X + [4] >= [1] X + [0] = X activate(n__0()) = [5] >= [4] = 0() activate(n__s(X)) = [1] X + [8] >= [1] X + [6] = s(X) Further, it can be verified that all rules not oriented are covered by the weightgap condition. * Step 9: EmptyProcessor WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: 0#() -> c_1() activate#(X) -> c_2(X) activate#(n__0()) -> c_3(0#()) activate#(n__s(X)) -> c_4(s#(X)) geq#(X,n__0()) -> c_7() geq#(n__0(),n__s(Y)) -> c_8() geq#(n__s(X),n__s(Y)) -> c_9(geq#(activate(X),activate(Y))) if#(false(),X,Y) -> c_10(activate#(Y)) if#(true(),X,Y) -> c_11(activate#(X)) minus#(n__0(),Y) -> c_12(0#()) minus#(n__s(X),n__s(Y)) -> c_13(minus#(activate(X),activate(Y))) s#(X) -> c_14(X) - Weak TRS: 0() -> n__0() activate(X) -> X activate(n__0()) -> 0() activate(n__s(X)) -> s(X) s(X) -> n__s(X) - Signature: {0/0,activate/1,div/2,geq/2,if/3,minus/2,s/1,0#/0,activate#/1,div#/2,geq#/2,if#/3,minus#/2,s#/1} / {false/0 ,n__0/0,n__s/1,true/0,c_1/0,c_2/1,c_3/1,c_4/1,c_5/1,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1,c_12/1,c_13/1 ,c_14/1} - Obligation: runtime complexity wrt. defined symbols {0#,activate#,div#,geq#,if#,minus#,s#} and constructors {false,n__0 ,n__s,true} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(?,O(n^1))