/export/starexec/sandbox2/solver/bin/starexec_run_tct_dc /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- WORST_CASE(?,O(n^3)) * Step 1: WeightGap. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict TRS: active(tail(cons(X,XS))) -> mark(XS) active(zeros()) -> mark(cons(0(),zeros())) cons(X1,active(X2)) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(mark(X1),X2) -> cons(X1,X2) mark(0()) -> active(0()) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(tail(X)) -> active(tail(mark(X))) mark(zeros()) -> active(zeros()) tail(active(X)) -> tail(X) tail(mark(X)) -> tail(X) - Signature: {active/1,cons/2,mark/1,tail/1} / {0/0,zeros/0} - Obligation: derivational complexity wrt. signature {0,active,cons,mark,tail,zeros} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = NoUArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following nonconstant growth matrix-interpretation: We apply a matrix interpretation of kind triangular matrix interpretation: Following symbols are considered usable: all TcT has computed the following interpretation: p(0) = [0] p(active) = [1] x1 + [0] p(cons) = [1] x1 + [1] x2 + [7] p(mark) = [1] x1 + [1] p(tail) = [1] x1 + [0] p(zeros) = [0] Following rules are strictly oriented: active(tail(cons(X,XS))) = [1] X + [1] XS + [7] > [1] XS + [1] = mark(XS) cons(X1,mark(X2)) = [1] X1 + [1] X2 + [8] > [1] X1 + [1] X2 + [7] = cons(X1,X2) cons(mark(X1),X2) = [1] X1 + [1] X2 + [8] > [1] X1 + [1] X2 + [7] = cons(X1,X2) mark(0()) = [1] > [0] = active(0()) mark(zeros()) = [1] > [0] = active(zeros()) tail(mark(X)) = [1] X + [1] > [1] X + [0] = tail(X) Following rules are (at-least) weakly oriented: active(zeros()) = [0] >= [8] = mark(cons(0(),zeros())) cons(X1,active(X2)) = [1] X1 + [1] X2 + [7] >= [1] X1 + [1] X2 + [7] = cons(X1,X2) cons(active(X1),X2) = [1] X1 + [1] X2 + [7] >= [1] X1 + [1] X2 + [7] = cons(X1,X2) mark(cons(X1,X2)) = [1] X1 + [1] X2 + [8] >= [1] X1 + [1] X2 + [8] = active(cons(mark(X1),X2)) mark(tail(X)) = [1] X + [1] >= [1] X + [1] = active(tail(mark(X))) tail(active(X)) = [1] X + [0] >= [1] X + [0] = tail(X) Further, it can be verified that all rules not oriented are covered by the weightgap condition. * Step 2: WeightGap. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict TRS: active(zeros()) -> mark(cons(0(),zeros())) cons(X1,active(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(tail(X)) -> active(tail(mark(X))) tail(active(X)) -> tail(X) - Weak TRS: active(tail(cons(X,XS))) -> mark(XS) cons(X1,mark(X2)) -> cons(X1,X2) cons(mark(X1),X2) -> cons(X1,X2) mark(0()) -> active(0()) mark(zeros()) -> active(zeros()) tail(mark(X)) -> tail(X) - Signature: {active/1,cons/2,mark/1,tail/1} / {0/0,zeros/0} - Obligation: derivational complexity wrt. signature {0,active,cons,mark,tail,zeros} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = NoUArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following nonconstant growth matrix-interpretation: We apply a matrix interpretation of kind triangular matrix interpretation: Following symbols are considered usable: all TcT has computed the following interpretation: p(0) = [1] p(active) = [1] x1 + [8] p(cons) = [1] x1 + [1] x2 + [1] p(mark) = [1] x1 + [13] p(tail) = [1] x1 + [4] p(zeros) = [0] Following rules are strictly oriented: cons(X1,active(X2)) = [1] X1 + [1] X2 + [9] > [1] X1 + [1] X2 + [1] = cons(X1,X2) cons(active(X1),X2) = [1] X1 + [1] X2 + [9] > [1] X1 + [1] X2 + [1] = cons(X1,X2) tail(active(X)) = [1] X + [12] > [1] X + [4] = tail(X) Following rules are (at-least) weakly oriented: active(tail(cons(X,XS))) = [1] X + [1] XS + [13] >= [1] XS + [13] = mark(XS) active(zeros()) = [8] >= [15] = mark(cons(0(),zeros())) cons(X1,mark(X2)) = [1] X1 + [1] X2 + [14] >= [1] X1 + [1] X2 + [1] = cons(X1,X2) cons(mark(X1),X2) = [1] X1 + [1] X2 + [14] >= [1] X1 + [1] X2 + [1] = cons(X1,X2) mark(0()) = [14] >= [9] = active(0()) mark(cons(X1,X2)) = [1] X1 + [1] X2 + [14] >= [1] X1 + [1] X2 + [22] = active(cons(mark(X1),X2)) mark(tail(X)) = [1] X + [17] >= [1] X + [25] = active(tail(mark(X))) mark(zeros()) = [13] >= [8] = active(zeros()) tail(mark(X)) = [1] X + [17] >= [1] X + [4] = tail(X) Further, it can be verified that all rules not oriented are covered by the weightgap condition. * Step 3: NaturalMI. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict TRS: active(zeros()) -> mark(cons(0(),zeros())) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(tail(X)) -> active(tail(mark(X))) - Weak TRS: active(tail(cons(X,XS))) -> mark(XS) cons(X1,active(X2)) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(mark(X1),X2) -> cons(X1,X2) mark(0()) -> active(0()) mark(zeros()) -> active(zeros()) tail(active(X)) -> tail(X) tail(mark(X)) -> tail(X) - Signature: {active/1,cons/2,mark/1,tail/1} / {0/0,zeros/0} - Obligation: derivational complexity wrt. signature {0,active,cons,mark,tail,zeros} + Applied Processor: NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = NoUArgs, urules = NoURules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind triangular matrix interpretation: Following symbols are considered usable: all TcT has computed the following interpretation: p(0) = [0] [0] p(active) = [1 0] x1 + [0] [0 1] [0] p(cons) = [1 0] x1 + [1 4] x2 + [0] [0 1] [0 1] [0] p(mark) = [1 4] x1 + [0] [0 1] [0] p(tail) = [1 0] x1 + [5] [0 1] [2] p(zeros) = [0] [0] Following rules are strictly oriented: mark(tail(X)) = [1 4] X + [13] [0 1] [2] > [1 4] X + [5] [0 1] [2] = active(tail(mark(X))) Following rules are (at-least) weakly oriented: active(tail(cons(X,XS))) = [1 0] X + [1 4] XS + [5] [0 1] [0 1] [2] >= [1 4] XS + [0] [0 1] [0] = mark(XS) active(zeros()) = [0] [0] >= [0] [0] = mark(cons(0(),zeros())) cons(X1,active(X2)) = [1 0] X1 + [1 4] X2 + [0] [0 1] [0 1] [0] >= [1 0] X1 + [1 4] X2 + [0] [0 1] [0 1] [0] = cons(X1,X2) cons(X1,mark(X2)) = [1 0] X1 + [1 8] X2 + [0] [0 1] [0 1] [0] >= [1 0] X1 + [1 4] X2 + [0] [0 1] [0 1] [0] = cons(X1,X2) cons(active(X1),X2) = [1 0] X1 + [1 4] X2 + [0] [0 1] [0 1] [0] >= [1 0] X1 + [1 4] X2 + [0] [0 1] [0 1] [0] = cons(X1,X2) cons(mark(X1),X2) = [1 4] X1 + [1 4] X2 + [0] [0 1] [0 1] [0] >= [1 0] X1 + [1 4] X2 + [0] [0 1] [0 1] [0] = cons(X1,X2) mark(0()) = [0] [0] >= [0] [0] = active(0()) mark(cons(X1,X2)) = [1 4] X1 + [1 8] X2 + [0] [0 1] [0 1] [0] >= [1 4] X1 + [1 4] X2 + [0] [0 1] [0 1] [0] = active(cons(mark(X1),X2)) mark(zeros()) = [0] [0] >= [0] [0] = active(zeros()) tail(active(X)) = [1 0] X + [5] [0 1] [2] >= [1 0] X + [5] [0 1] [2] = tail(X) tail(mark(X)) = [1 4] X + [5] [0 1] [2] >= [1 0] X + [5] [0 1] [2] = tail(X) * Step 4: NaturalMI. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict TRS: active(zeros()) -> mark(cons(0(),zeros())) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) - Weak TRS: active(tail(cons(X,XS))) -> mark(XS) cons(X1,active(X2)) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(mark(X1),X2) -> cons(X1,X2) mark(0()) -> active(0()) mark(tail(X)) -> active(tail(mark(X))) mark(zeros()) -> active(zeros()) tail(active(X)) -> tail(X) tail(mark(X)) -> tail(X) - Signature: {active/1,cons/2,mark/1,tail/1} / {0/0,zeros/0} - Obligation: derivational complexity wrt. signature {0,active,cons,mark,tail,zeros} + Applied Processor: NaturalMI {miDimension = 4, miDegree = 2, miKind = Algebraic, uargs = NoUArgs, urules = NoURules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind triangular matrix interpretation (containing no more than 2 non-zero interpretation-entries in the diagonal of the component-wise maxima): Following symbols are considered usable: all TcT has computed the following interpretation: p(0) = [0] [0] [0] [0] p(active) = [1 1 0 1] [0] [0 0 0 0] x1 + [0] [0 0 1 1] [0] [0 0 0 0] [0] p(cons) = [1 1 0 1] [1 1 0 0] [0] [0 0 1 1] x1 + [0 0 0 0] x2 + [0] [0 0 0 0] [0 0 1 1] [0] [0 0 0 0] [0 0 0 0] [0] p(mark) = [1 1 0 1] [0] [0 0 0 0] x1 + [0] [0 0 1 1] [0] [0 0 0 0] [0] p(tail) = [1 1 0 1] [0] [0 0 1 1] x1 + [0] [0 0 1 1] [1] [0 0 0 0] [0] p(zeros) = [0] [0] [0] [1] Following rules are strictly oriented: active(zeros()) = [1] [0] [1] [0] > [0] [0] [1] [0] = mark(cons(0(),zeros())) Following rules are (at-least) weakly oriented: active(tail(cons(X,XS))) = [1 1 1 2] [1 1 1 1] [0] [0 0 0 0] X + [0 0 0 0] XS + [0] [0 0 0 0] [0 0 1 1] [1] [0 0 0 0] [0 0 0 0] [0] >= [1 1 0 1] [0] [0 0 0 0] XS + [0] [0 0 1 1] [0] [0 0 0 0] [0] = mark(XS) cons(X1,active(X2)) = [1 1 0 1] [1 1 0 1] [0] [0 0 1 1] X1 + [0 0 0 0] X2 + [0] [0 0 0 0] [0 0 1 1] [0] [0 0 0 0] [0 0 0 0] [0] >= [1 1 0 1] [1 1 0 0] [0] [0 0 1 1] X1 + [0 0 0 0] X2 + [0] [0 0 0 0] [0 0 1 1] [0] [0 0 0 0] [0 0 0 0] [0] = cons(X1,X2) cons(X1,mark(X2)) = [1 1 0 1] [1 1 0 1] [0] [0 0 1 1] X1 + [0 0 0 0] X2 + [0] [0 0 0 0] [0 0 1 1] [0] [0 0 0 0] [0 0 0 0] [0] >= [1 1 0 1] [1 1 0 0] [0] [0 0 1 1] X1 + [0 0 0 0] X2 + [0] [0 0 0 0] [0 0 1 1] [0] [0 0 0 0] [0 0 0 0] [0] = cons(X1,X2) cons(active(X1),X2) = [1 1 0 1] [1 1 0 0] [0] [0 0 1 1] X1 + [0 0 0 0] X2 + [0] [0 0 0 0] [0 0 1 1] [0] [0 0 0 0] [0 0 0 0] [0] >= [1 1 0 1] [1 1 0 0] [0] [0 0 1 1] X1 + [0 0 0 0] X2 + [0] [0 0 0 0] [0 0 1 1] [0] [0 0 0 0] [0 0 0 0] [0] = cons(X1,X2) cons(mark(X1),X2) = [1 1 0 1] [1 1 0 0] [0] [0 0 1 1] X1 + [0 0 0 0] X2 + [0] [0 0 0 0] [0 0 1 1] [0] [0 0 0 0] [0 0 0 0] [0] >= [1 1 0 1] [1 1 0 0] [0] [0 0 1 1] X1 + [0 0 0 0] X2 + [0] [0 0 0 0] [0 0 1 1] [0] [0 0 0 0] [0 0 0 0] [0] = cons(X1,X2) mark(0()) = [0] [0] [0] [0] >= [0] [0] [0] [0] = active(0()) mark(cons(X1,X2)) = [1 1 1 2] [1 1 0 0] [0] [0 0 0 0] X1 + [0 0 0 0] X2 + [0] [0 0 0 0] [0 0 1 1] [0] [0 0 0 0] [0 0 0 0] [0] >= [1 1 1 2] [1 1 0 0] [0] [0 0 0 0] X1 + [0 0 0 0] X2 + [0] [0 0 0 0] [0 0 1 1] [0] [0 0 0 0] [0 0 0 0] [0] = active(cons(mark(X1),X2)) mark(tail(X)) = [1 1 1 2] [0] [0 0 0 0] X + [0] [0 0 1 1] [1] [0 0 0 0] [0] >= [1 1 1 2] [0] [0 0 0 0] X + [0] [0 0 1 1] [1] [0 0 0 0] [0] = active(tail(mark(X))) mark(zeros()) = [1] [0] [1] [0] >= [1] [0] [1] [0] = active(zeros()) tail(active(X)) = [1 1 0 1] [0] [0 0 1 1] X + [0] [0 0 1 1] [1] [0 0 0 0] [0] >= [1 1 0 1] [0] [0 0 1 1] X + [0] [0 0 1 1] [1] [0 0 0 0] [0] = tail(X) tail(mark(X)) = [1 1 0 1] [0] [0 0 1 1] X + [0] [0 0 1 1] [1] [0 0 0 0] [0] >= [1 1 0 1] [0] [0 0 1 1] X + [0] [0 0 1 1] [1] [0 0 0 0] [0] = tail(X) * Step 5: MI. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict TRS: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) - Weak TRS: active(tail(cons(X,XS))) -> mark(XS) active(zeros()) -> mark(cons(0(),zeros())) cons(X1,active(X2)) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(mark(X1),X2) -> cons(X1,X2) mark(0()) -> active(0()) mark(tail(X)) -> active(tail(mark(X))) mark(zeros()) -> active(zeros()) tail(active(X)) -> tail(X) tail(mark(X)) -> tail(X) - Signature: {active/1,cons/2,mark/1,tail/1} / {0/0,zeros/0} - Obligation: derivational complexity wrt. signature {0,active,cons,mark,tail,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 4, miUArgs = NoUArgs, miURules = NoURules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: Following symbols are considered usable: all TcT has computed the following interpretation: p(0) = [0] [0] [0] [0] p(active) = [1 0 2 0] [0] [0 1 2 0] x_1 + [0] [0 0 0 0] [0] [0 0 1 1] [0] p(cons) = [1 0 0 0] [1 0 0 0] [0] [0 0 0 0] x_1 + [0 1 2 0] x_2 + [0] [0 0 0 0] [0 0 0 0] [0] [0 0 1 1] [0 0 0 1] [1] p(mark) = [1 0 1 1] [1] [0 1 2 0] x_1 + [0] [0 0 0 0] [0] [0 0 1 1] [0] p(tail) = [1 1 2 2] [0] [0 1 2 0] x_1 + [3] [0 0 0 0] [0] [0 1 3 1] [3] p(zeros) = [0] [0] [1] [0] Following rules are strictly oriented: mark(cons(X1,X2)) = [1 0 1 1] [1 0 0 1] [2] [0 0 0 0] X1 + [0 1 2 0] X2 + [0] [0 0 0 0] [0 0 0 0] [0] [0 0 1 1] [0 0 0 1] [1] > [1 0 1 1] [1 0 0 0] [1] [0 0 0 0] X1 + [0 1 2 0] X2 + [0] [0 0 0 0] [0 0 0 0] [0] [0 0 1 1] [0 0 0 1] [1] = active(cons(mark(X1),X2)) Following rules are (at-least) weakly oriented: active(tail(cons(X,XS))) = [1 0 2 2] [1 1 2 2] [2] [0 0 0 0] X + [0 1 2 0] XS + [3] [0 0 0 0] [0 0 0 0] [0] [0 0 1 1] [0 1 2 1] [4] >= [1 0 1 1] [1] [0 1 2 0] XS + [0] [0 0 0 0] [0] [0 0 1 1] [0] = mark(XS) active(zeros()) = [2] [2] [0] [1] >= [2] [2] [0] [1] = mark(cons(0(),zeros())) cons(X1,active(X2)) = [1 0 0 0] [1 0 2 0] [0] [0 0 0 0] X1 + [0 1 2 0] X2 + [0] [0 0 0 0] [0 0 0 0] [0] [0 0 1 1] [0 0 1 1] [1] >= [1 0 0 0] [1 0 0 0] [0] [0 0 0 0] X1 + [0 1 2 0] X2 + [0] [0 0 0 0] [0 0 0 0] [0] [0 0 1 1] [0 0 0 1] [1] = cons(X1,X2) cons(X1,mark(X2)) = [1 0 0 0] [1 0 1 1] [1] [0 0 0 0] X1 + [0 1 2 0] X2 + [0] [0 0 0 0] [0 0 0 0] [0] [0 0 1 1] [0 0 1 1] [1] >= [1 0 0 0] [1 0 0 0] [0] [0 0 0 0] X1 + [0 1 2 0] X2 + [0] [0 0 0 0] [0 0 0 0] [0] [0 0 1 1] [0 0 0 1] [1] = cons(X1,X2) cons(active(X1),X2) = [1 0 2 0] [1 0 0 0] [0] [0 0 0 0] X1 + [0 1 2 0] X2 + [0] [0 0 0 0] [0 0 0 0] [0] [0 0 1 1] [0 0 0 1] [1] >= [1 0 0 0] [1 0 0 0] [0] [0 0 0 0] X1 + [0 1 2 0] X2 + [0] [0 0 0 0] [0 0 0 0] [0] [0 0 1 1] [0 0 0 1] [1] = cons(X1,X2) cons(mark(X1),X2) = [1 0 1 1] [1 0 0 0] [1] [0 0 0 0] X1 + [0 1 2 0] X2 + [0] [0 0 0 0] [0 0 0 0] [0] [0 0 1 1] [0 0 0 1] [1] >= [1 0 0 0] [1 0 0 0] [0] [0 0 0 0] X1 + [0 1 2 0] X2 + [0] [0 0 0 0] [0 0 0 0] [0] [0 0 1 1] [0 0 0 1] [1] = cons(X1,X2) mark(0()) = [1] [0] [0] [0] >= [0] [0] [0] [0] = active(0()) mark(tail(X)) = [1 2 5 3] [4] [0 1 2 0] X + [3] [0 0 0 0] [0] [0 1 3 1] [3] >= [1 1 5 3] [1] [0 1 2 0] X + [3] [0 0 0 0] [0] [0 1 3 1] [3] = active(tail(mark(X))) mark(zeros()) = [2] [2] [0] [1] >= [2] [2] [0] [1] = active(zeros()) tail(active(X)) = [1 1 6 2] [0] [0 1 2 0] X + [3] [0 0 0 0] [0] [0 1 3 1] [3] >= [1 1 2 2] [0] [0 1 2 0] X + [3] [0 0 0 0] [0] [0 1 3 1] [3] = tail(X) tail(mark(X)) = [1 1 5 3] [1] [0 1 2 0] X + [3] [0 0 0 0] [0] [0 1 3 1] [3] >= [1 1 2 2] [0] [0 1 2 0] X + [3] [0 0 0 0] [0] [0 1 3 1] [3] = tail(X) * Step 6: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak TRS: active(tail(cons(X,XS))) -> mark(XS) active(zeros()) -> mark(cons(0(),zeros())) cons(X1,active(X2)) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(mark(X1),X2) -> cons(X1,X2) mark(0()) -> active(0()) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(tail(X)) -> active(tail(mark(X))) mark(zeros()) -> active(zeros()) tail(active(X)) -> tail(X) tail(mark(X)) -> tail(X) - Signature: {active/1,cons/2,mark/1,tail/1} / {0/0,zeros/0} - Obligation: derivational complexity wrt. signature {0,active,cons,mark,tail,zeros} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(?,O(n^3))