* Step 1: Sum WORST_CASE(?,O(1))
+ Considered Problem:
- Strict TRS:
0() -> 1()
f(s(x)) -> f(g(x,x))
g(0(),1()) -> s(0())
- Signature:
{0/0,f/1,g/2} / {1/0,s/1}
- Obligation:
innermost runtime complexity wrt. defined symbols {0,f,g} and constructors {1,s}
+ Applied Processor:
Sum {left = someStrategy, right = someStrategy}
+ Details:
()
* Step 2: InnermostRuleRemoval WORST_CASE(?,O(1))
+ Considered Problem:
- Strict TRS:
0() -> 1()
f(s(x)) -> f(g(x,x))
g(0(),1()) -> s(0())
- Signature:
{0/0,f/1,g/2} / {1/0,s/1}
- Obligation:
innermost runtime complexity wrt. defined symbols {0,f,g} and constructors {1,s}
+ Applied Processor:
InnermostRuleRemoval
+ Details:
Arguments of following rules are not normal-forms.
g(0(),1()) -> s(0())
All above mentioned rules can be savely removed.
* Step 3: DependencyPairs WORST_CASE(?,O(1))
+ Considered Problem:
- Strict TRS:
0() -> 1()
f(s(x)) -> f(g(x,x))
- Signature:
{0/0,f/1,g/2} / {1/0,s/1}
- Obligation:
innermost runtime complexity wrt. defined symbols {0,f,g} and constructors {1,s}
+ Applied Processor:
DependencyPairs {dpKind_ = DT}
+ Details:
We add the following dependency tuples:
Strict DPs
0#() -> c_1()
f#(s(x)) -> c_2(f#(g(x,x)),g#(x,x))
Weak DPs
and mark the set of starting terms.
* Step 4: UsableRules WORST_CASE(?,O(1))
+ Considered Problem:
- Strict DPs:
0#() -> c_1()
f#(s(x)) -> c_2(f#(g(x,x)),g#(x,x))
- Weak TRS:
0() -> 1()
f(s(x)) -> f(g(x,x))
- Signature:
{0/0,f/1,g/2,0#/0,f#/1,g#/2} / {1/0,s/1,c_1/0,c_2/2}
- Obligation:
innermost runtime complexity wrt. defined symbols {0#,f#,g#} and constructors {1,s}
+ Applied Processor:
UsableRules
+ Details:
We replace rewrite rules by usable rules:
0#() -> c_1()
f#(s(x)) -> c_2(f#(g(x,x)),g#(x,x))
* Step 5: Trivial WORST_CASE(?,O(1))
+ Considered Problem:
- Strict DPs:
0#() -> c_1()
f#(s(x)) -> c_2(f#(g(x,x)),g#(x,x))
- Signature:
{0/0,f/1,g/2,0#/0,f#/1,g#/2} / {1/0,s/1,c_1/0,c_2/2}
- Obligation:
innermost runtime complexity wrt. defined symbols {0#,f#,g#} and constructors {1,s}
+ Applied Processor:
Trivial
+ Details:
Consider the dependency graph
1:S:0#() -> c_1()
2:S:f#(s(x)) -> c_2(f#(g(x,x)),g#(x,x))
The dependency graph contains no loops, we remove all dependency pairs.
* Step 6: EmptyProcessor WORST_CASE(?,O(1))
+ Considered Problem:
- Signature:
{0/0,f/1,g/2,0#/0,f#/1,g#/2} / {1/0,s/1,c_1/0,c_2/2}
- Obligation:
innermost runtime complexity wrt. defined symbols {0#,f#,g#} and constructors {1,s}
+ Applied Processor:
EmptyProcessor
+ Details:
The problem is already closed. The intended complexity is O(1).
WORST_CASE(?,O(1))