/export/starexec/sandbox2/solver/bin/starexec_run_tct_rc /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^1),O(n^1)) * Step 1: Sum. WORST_CASE(Omega(n^1),O(n^1)) + Considered Problem: - Strict TRS: +(0(),y) -> y +(s(x),0()) -> s(x) +(s(x),s(y)) -> s(+(s(x),+(y,0()))) - Signature: {+/2} / {0/0,s/1} - Obligation: runtime complexity wrt. defined symbols {+} and constructors {0,s} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () ** Step 1.a:1: Sum. WORST_CASE(Omega(n^1),?) + Considered Problem: - Strict TRS: +(0(),y) -> y +(s(x),0()) -> s(x) +(s(x),s(y)) -> s(+(s(x),+(y,0()))) - Signature: {+/2} / {0/0,s/1} - Obligation: runtime complexity wrt. defined symbols {+} and constructors {0,s} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () ** Step 1.a:2: DecreasingLoops. WORST_CASE(Omega(n^1),?) + Considered Problem: - Strict TRS: +(0(),y) -> y +(s(x),0()) -> s(x) +(s(x),s(y)) -> s(+(s(x),+(y,0()))) - Signature: {+/2} / {0/0,s/1} - Obligation: runtime complexity wrt. defined symbols {+} and constructors {0,s} + Applied Processor: DecreasingLoops {bound = AnyLoop, narrow = 10} + Details: The system has following decreasing Loops: +(s(y),s(x)){x -> s(x)} = +(s(y),s(s(x))) ->^+ s(+(s(y),s(x))) = C[+(s(y),s(x)) = +(s(y),s(x)){}] ** Step 1.b:1: ToInnermost. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: +(0(),y) -> y +(s(x),0()) -> s(x) +(s(x),s(y)) -> s(+(s(x),+(y,0()))) - Signature: {+/2} / {0/0,s/1} - Obligation: runtime complexity wrt. defined symbols {+} and constructors {0,s} + Applied Processor: ToInnermost + Details: switch to innermost, as the system is overlay and right linear and does not contain weak rules ** Step 1.b:2: DependencyPairs. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: +(0(),y) -> y +(s(x),0()) -> s(x) +(s(x),s(y)) -> s(+(s(x),+(y,0()))) - Signature: {+/2} / {0/0,s/1} - Obligation: innermost runtime complexity wrt. defined symbols {+} and constructors {0,s} + Applied Processor: DependencyPairs {dpKind_ = WIDP} + Details: We add the following weak innermost dependency pairs: Strict DPs +#(0(),y) -> c_1() +#(s(x),0()) -> c_2() +#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))) Weak DPs and mark the set of starting terms. ** Step 1.b:3: UsableRules. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: +#(0(),y) -> c_1() +#(s(x),0()) -> c_2() +#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))) - Strict TRS: +(0(),y) -> y +(s(x),0()) -> s(x) +(s(x),s(y)) -> s(+(s(x),+(y,0()))) - Signature: {+/2,+#/2} / {0/0,s/1,c_1/0,c_2/0,c_3/1} - Obligation: innermost runtime complexity wrt. defined symbols {+#} and constructors {0,s} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: +(0(),y) -> y +(s(x),0()) -> s(x) +#(0(),y) -> c_1() +#(s(x),0()) -> c_2() +#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))) ** Step 1.b:4: WeightGap. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: +#(0(),y) -> c_1() +#(s(x),0()) -> c_2() +#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))) - Strict TRS: +(0(),y) -> y +(s(x),0()) -> s(x) - Signature: {+/2,+#/2} / {0/0,s/1,c_1/0,c_2/0,c_3/1} - Obligation: innermost runtime complexity wrt. defined symbols {+#} and constructors {0,s} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnTrs} + Details: The weightgap principle applies using the following constant growth matrix-interpretation: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(+#) = {2}, uargs(c_3) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(+) = [1] x1 + [2] x2 + [5] p(0) = [0] p(s) = [1] x1 + [0] p(+#) = [1] x2 + [0] p(c_1) = [0] p(c_2) = [0] p(c_3) = [1] x1 + [0] Following rules are strictly oriented: +(0(),y) = [2] y + [5] > [1] y + [0] = y +(s(x),0()) = [1] x + [5] > [1] x + [0] = s(x) Following rules are (at-least) weakly oriented: +#(0(),y) = [1] y + [0] >= [0] = c_1() +#(s(x),0()) = [0] >= [0] = c_2() +#(s(x),s(y)) = [1] y + [0] >= [1] y + [5] = c_3(+#(s(x),+(y,0()))) Further, it can be verified that all rules not oriented are covered by the weightgap condition. ** Step 1.b:5: PredecessorEstimation. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: +#(0(),y) -> c_1() +#(s(x),0()) -> c_2() +#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))) - Weak TRS: +(0(),y) -> y +(s(x),0()) -> s(x) - Signature: {+/2,+#/2} / {0/0,s/1,c_1/0,c_2/0,c_3/1} - Obligation: innermost runtime complexity wrt. defined symbols {+#} and constructors {0,s} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,2} by application of Pre({1,2}) = {3}. Here rules are labelled as follows: 1: +#(0(),y) -> c_1() 2: +#(s(x),0()) -> c_2() 3: +#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))) ** Step 1.b:6: RemoveWeakSuffixes. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: +#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))) - Weak DPs: +#(0(),y) -> c_1() +#(s(x),0()) -> c_2() - Weak TRS: +(0(),y) -> y +(s(x),0()) -> s(x) - Signature: {+/2,+#/2} / {0/0,s/1,c_1/0,c_2/0,c_3/1} - Obligation: innermost runtime complexity wrt. defined symbols {+#} and constructors {0,s} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:+#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))) -->_1 +#(s(x),0()) -> c_2():3 -->_1 +#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))):1 2:W:+#(0(),y) -> c_1() 3:W:+#(s(x),0()) -> c_2() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 2: +#(0(),y) -> c_1() 3: +#(s(x),0()) -> c_2() ** Step 1.b:7: PredecessorEstimationCP. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: +#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))) - Weak TRS: +(0(),y) -> y +(s(x),0()) -> s(x) - Signature: {+/2,+#/2} / {0/0,s/1,c_1/0,c_2/0,c_3/1} - Obligation: innermost runtime complexity wrt. defined symbols {+#} and constructors {0,s} + Applied Processor: PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}} + Details: We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly: 1: +#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))) The strictly oriented rules are moved into the weak component. *** Step 1.b:7.a:1: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: +#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))) - Weak TRS: +(0(),y) -> y +(s(x),0()) -> s(x) - Signature: {+/2,+#/2} / {0/0,s/1,c_1/0,c_2/0,c_3/1} - Obligation: innermost runtime complexity wrt. defined symbols {+#} and constructors {0,s} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_3) = {1} Following symbols are considered usable: {+,+#} TcT has computed the following interpretation: p(+) = [1] x1 + [4] x2 + [0] p(0) = [0] p(s) = [1] x1 + [2] p(+#) = [8] x2 + [0] p(c_1) = [0] p(c_2) = [0] p(c_3) = [1] x1 + [15] Following rules are strictly oriented: +#(s(x),s(y)) = [8] y + [16] > [8] y + [15] = c_3(+#(s(x),+(y,0()))) Following rules are (at-least) weakly oriented: +(0(),y) = [4] y + [0] >= [1] y + [0] = y +(s(x),0()) = [1] x + [2] >= [1] x + [2] = s(x) *** Step 1.b:7.a:2: Assumption. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: +#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))) - Weak TRS: +(0(),y) -> y +(s(x),0()) -> s(x) - Signature: {+/2,+#/2} / {0/0,s/1,c_1/0,c_2/0,c_3/1} - Obligation: innermost runtime complexity wrt. defined symbols {+#} and constructors {0,s} + Applied Processor: Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown, timeBCUB = Unknown, timeBCLB = Unknown}} + Details: () *** Step 1.b:7.b:1: RemoveWeakSuffixes. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: +#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))) - Weak TRS: +(0(),y) -> y +(s(x),0()) -> s(x) - Signature: {+/2,+#/2} / {0/0,s/1,c_1/0,c_2/0,c_3/1} - Obligation: innermost runtime complexity wrt. defined symbols {+#} and constructors {0,s} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:W:+#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))) -->_1 +#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))):1 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 1: +#(s(x),s(y)) -> c_3(+#(s(x),+(y,0()))) *** Step 1.b:7.b:2: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak TRS: +(0(),y) -> y +(s(x),0()) -> s(x) - Signature: {+/2,+#/2} / {0/0,s/1,c_1/0,c_2/0,c_3/1} - Obligation: innermost runtime complexity wrt. defined symbols {+#} and constructors {0,s} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(Omega(n^1),O(n^1))