WORST_CASE(?,O(1)) * Step 1: Sum WORST_CASE(?,O(1)) + Considered Problem: - Strict TRS: f(X,X) -> c(X) f(X,c(X)) -> f(s(X),X) f(s(X),X) -> f(X,a(X)) - Signature: {f/2} / {a/1,c/1,s/1} - Obligation: innermost runtime complexity wrt. defined symbols {f} and constructors {a,c,s} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () * Step 2: DependencyPairs WORST_CASE(?,O(1)) + Considered Problem: - Strict TRS: f(X,X) -> c(X) f(X,c(X)) -> f(s(X),X) f(s(X),X) -> f(X,a(X)) - Signature: {f/2} / {a/1,c/1,s/1} - Obligation: innermost runtime complexity wrt. defined symbols {f} and constructors {a,c,s} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs f#(X,X) -> c_1() f#(X,c(X)) -> c_2(f#(s(X),X)) f#(s(X),X) -> c_3(f#(X,a(X))) Weak DPs and mark the set of starting terms. * Step 3: PredecessorEstimation WORST_CASE(?,O(1)) + Considered Problem: - Strict DPs: f#(X,X) -> c_1() f#(X,c(X)) -> c_2(f#(s(X),X)) f#(s(X),X) -> c_3(f#(X,a(X))) - Weak TRS: f(X,X) -> c(X) f(X,c(X)) -> f(s(X),X) f(s(X),X) -> f(X,a(X)) - Signature: {f/2,f#/2} / {a/1,c/1,s/1,c_1/0,c_2/1,c_3/1} - Obligation: innermost runtime complexity wrt. defined symbols {f#} and constructors {a,c,s} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,3} by application of Pre({1,3}) = {2}. Here rules are labelled as follows: 1: f#(X,X) -> c_1() 2: f#(X,c(X)) -> c_2(f#(s(X),X)) 3: f#(s(X),X) -> c_3(f#(X,a(X))) * Step 4: PredecessorEstimation WORST_CASE(?,O(1)) + Considered Problem: - Strict DPs: f#(X,c(X)) -> c_2(f#(s(X),X)) - Weak DPs: f#(X,X) -> c_1() f#(s(X),X) -> c_3(f#(X,a(X))) - Weak TRS: f(X,X) -> c(X) f(X,c(X)) -> f(s(X),X) f(s(X),X) -> f(X,a(X)) - Signature: {f/2,f#/2} / {a/1,c/1,s/1,c_1/0,c_2/1,c_3/1} - Obligation: innermost runtime complexity wrt. defined symbols {f#} and constructors {a,c,s} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1} by application of Pre({1}) = {}. Here rules are labelled as follows: 1: f#(X,c(X)) -> c_2(f#(s(X),X)) 2: f#(X,X) -> c_1() 3: f#(s(X),X) -> c_3(f#(X,a(X))) * Step 5: RemoveWeakSuffixes WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: f#(X,X) -> c_1() f#(X,c(X)) -> c_2(f#(s(X),X)) f#(s(X),X) -> c_3(f#(X,a(X))) - Weak TRS: f(X,X) -> c(X) f(X,c(X)) -> f(s(X),X) f(s(X),X) -> f(X,a(X)) - Signature: {f/2,f#/2} / {a/1,c/1,s/1,c_1/0,c_2/1,c_3/1} - Obligation: innermost runtime complexity wrt. defined symbols {f#} and constructors {a,c,s} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:W:f#(X,X) -> c_1() 2:W:f#(X,c(X)) -> c_2(f#(s(X),X)) -->_1 f#(s(X),X) -> c_3(f#(X,a(X))):3 3:W:f#(s(X),X) -> c_3(f#(X,a(X))) The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 2: f#(X,c(X)) -> c_2(f#(s(X),X)) 3: f#(s(X),X) -> c_3(f#(X,a(X))) 1: f#(X,X) -> c_1() * Step 6: EmptyProcessor WORST_CASE(?,O(1)) + Considered Problem: - Weak TRS: f(X,X) -> c(X) f(X,c(X)) -> f(s(X),X) f(s(X),X) -> f(X,a(X)) - Signature: {f/2,f#/2} / {a/1,c/1,s/1,c_1/0,c_2/1,c_3/1} - Obligation: innermost runtime complexity wrt. defined symbols {f#} and constructors {a,c,s} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(?,O(1))