```* Step 1: ToInnermost WORST_CASE(?,O(1))
+ Considered Problem:
- Strict TRS:
f(s(X),Y) -> h(s(f(h(Y),X)))
- Signature:
{f/2} / {h/1,s/1}
- Obligation:
runtime complexity wrt. defined symbols {f} and constructors {h,s}
+ Applied Processor:
ToInnermost
+ Details:
switch to innermost, as the system is overlay and right linear and does not contain weak rules
* Step 2: DependencyPairs WORST_CASE(?,O(1))
+ Considered Problem:
- Strict TRS:
f(s(X),Y) -> h(s(f(h(Y),X)))
- Signature:
{f/2} / {h/1,s/1}
- Obligation:
innermost runtime complexity wrt. defined symbols {f} and constructors {h,s}
+ Applied Processor:
DependencyPairs {dpKind_ = DT}
+ Details:
We add the following dependency tuples:

Strict DPs
f#(s(X),Y) -> c_1(f#(h(Y),X))
Weak DPs

and mark the set of starting terms.
* Step 3: UsableRules WORST_CASE(?,O(1))
+ Considered Problem:
- Strict DPs:
f#(s(X),Y) -> c_1(f#(h(Y),X))
- Weak TRS:
f(s(X),Y) -> h(s(f(h(Y),X)))
- Signature:
{f/2,f#/2} / {h/1,s/1,c_1/1}
- Obligation:
innermost runtime complexity wrt. defined symbols {f#} and constructors {h,s}
+ Applied Processor:
UsableRules
+ Details:
We replace rewrite rules by usable rules:
f#(s(X),Y) -> c_1(f#(h(Y),X))
* Step 4: Trivial WORST_CASE(?,O(1))
+ Considered Problem:
- Strict DPs:
f#(s(X),Y) -> c_1(f#(h(Y),X))
- Signature:
{f/2,f#/2} / {h/1,s/1,c_1/1}
- Obligation:
innermost runtime complexity wrt. defined symbols {f#} and constructors {h,s}
+ Applied Processor:
Trivial
+ Details:
Consider the dependency graph
1:S:f#(s(X),Y) -> c_1(f#(h(Y),X))

The dependency graph contains no loops, we remove all dependency pairs.
* Step 5: EmptyProcessor WORST_CASE(?,O(1))
+ Considered Problem:

- Signature:
{f/2,f#/2} / {h/1,s/1,c_1/1}
- Obligation:
innermost runtime complexity wrt. defined symbols {f#} and constructors {h,s}
+ Applied Processor:
EmptyProcessor
+ Details:
The problem is already closed. The intended complexity is O(1).

WORST_CASE(?,O(1))
```