interpretations
YES(?,O(n^1))
We are left with following problem, upon which TcT provides the
certificate YES(?,O(n^1)).
Strict Trs:
{ a__f(X) -> f(X)
, a__f(f(X)) -> a__c(f(g(f(X))))
, a__c(X) -> d(X)
, a__c(X) -> c(X)
, a__h(X) -> a__c(d(X))
, a__h(X) -> h(X)
, mark(f(X)) -> a__f(mark(X))
, mark(g(X)) -> g(X)
, mark(d(X)) -> d(X)
, mark(c(X)) -> a__c(X)
, mark(h(X)) -> a__h(mark(X)) }
Obligation:
innermost runtime complexity
Answer:
YES(?,O(n^1))
The following argument positions are usable:
Uargs(a__f) = {1}, Uargs(f) = {}, Uargs(a__c) = {}, Uargs(g) = {},
Uargs(d) = {}, Uargs(a__h) = {1}, Uargs(mark) = {}, Uargs(c) = {},
Uargs(h) = {}
TcT has computed following constructor-based matrix interpretation
satisfying not(EDA).
[a__f](x1) = [1] x1 + [3]
[f](x1) = [1] x1 + [2]
[a__c](x1) = [1] x1 + [1]
[g](x1) = [0]
[d](x1) = [0]
[a__h](x1) = [1] x1 + [3]
[mark](x1) = [2] x1 + [2]
[c](x1) = [1] x1 + [0]
[h](x1) = [1] x1 + [2]
This order satisfies following ordering constraints
[a__f(X)] = [1] X + [3]
> [1] X + [2]
= [f(X)]
[a__f(f(X))] = [1] X + [5]
> [3]
= [a__c(f(g(f(X))))]
[a__c(X)] = [1] X + [1]
> [0]
= [d(X)]
[a__c(X)] = [1] X + [1]
> [1] X + [0]
= [c(X)]
[a__h(X)] = [1] X + [3]
> [1]
= [a__c(d(X))]
[a__h(X)] = [1] X + [3]
> [1] X + [2]
= [h(X)]
[mark(f(X))] = [2] X + [6]
> [2] X + [5]
= [a__f(mark(X))]
[mark(g(X))] = [2]
> [0]
= [g(X)]
[mark(d(X))] = [2]
> [0]
= [d(X)]
[mark(c(X))] = [2] X + [2]
> [1] X + [1]
= [a__c(X)]
[mark(h(X))] = [2] X + [6]
> [2] X + [5]
= [a__h(mark(X))]
Hurray, we answered YES(?,O(n^1))
lmpo
YES(?,ELEMENTARY)
We are left with following problem, upon which TcT provides the
certificate YES(?,ELEMENTARY).
Strict Trs:
{ a__f(f(X)) -> a__c(f(g(f(X))))
, a__c(X) -> d(X)
, a__h(X) -> a__c(d(X))
, mark(f(X)) -> a__f(mark(X))
, mark(c(X)) -> a__c(X)
, mark(h(X)) -> a__h(mark(X))
, mark(g(X)) -> g(X)
, mark(d(X)) -> d(X)
, a__f(X) -> f(X)
, a__c(X) -> c(X)
, a__h(X) -> h(X) }
Obligation:
innermost runtime complexity
Answer:
YES(?,ELEMENTARY)
The input was oriented with the instance of 'Lightweight Multiset
Path Order' as induced by the safe mapping
safe(a__f) = {1}, safe(f) = {1}, safe(a__c) = {1}, safe(g) = {1},
safe(d) = {1}, safe(a__h) = {1}, safe(mark) = {}, safe(c) = {1},
safe(h) = {1}
and precedence
a__f > a__c, a__h > a__c, mark > a__f, mark > a__c, mark > a__h .
Following symbols are considered recursive:
{a__f, a__c, a__h, mark}
The recursion depth is 3.
For your convenience, here are the oriented rules in predicative
notation, possibly applying argument filtering:
Strict DPs:
Weak DPs :
Strict Trs:
{ a__f(; f(; X)) -> a__c(; f(; g(; f(; X))))
, a__c(; X) -> d(; X)
, a__h(; X) -> a__c(; d(; X))
, mark(f(; X);) -> a__f(; mark(X;))
, mark(c(; X);) -> a__c(; X)
, mark(h(; X);) -> a__h(; mark(X;))
, mark(g(; X);) -> g(; X)
, mark(d(; X);) -> d(; X)
, a__f(; X) -> f(; X)
, a__c(; X) -> c(; X)
, a__h(; X) -> h(; X) }
Weak Trs :
Hurray, we answered YES(?,ELEMENTARY)
mpo
YES(?,PRIMREC)
We are left with following problem, upon which TcT provides the
certificate YES(?,PRIMREC).
Strict Trs:
{ a__f(f(X)) -> a__c(f(g(f(X))))
, a__c(X) -> d(X)
, a__h(X) -> a__c(d(X))
, mark(f(X)) -> a__f(mark(X))
, mark(c(X)) -> a__c(X)
, mark(h(X)) -> a__h(mark(X))
, mark(g(X)) -> g(X)
, mark(d(X)) -> d(X)
, a__f(X) -> f(X)
, a__c(X) -> c(X)
, a__h(X) -> h(X) }
Obligation:
innermost runtime complexity
Answer:
YES(?,PRIMREC)
The input was oriented with the instance of'multiset path orders'
as induced by the precedence
a__f > f, a__f > a__c, a__f > g, a__c > d, a__c > c, a__h > a__c,
a__h > d, a__h > h, mark > a__f, mark > a__c, mark > a__h .
Hurray, we answered YES(?,PRIMREC)
popstar
YES(?,POLY)
We are left with following problem, upon which TcT provides the
certificate YES(?,POLY).
Strict Trs:
{ a__f(f(X)) -> a__c(f(g(f(X))))
, a__c(X) -> d(X)
, a__h(X) -> a__c(d(X))
, mark(f(X)) -> a__f(mark(X))
, mark(c(X)) -> a__c(X)
, mark(h(X)) -> a__h(mark(X))
, mark(g(X)) -> g(X)
, mark(d(X)) -> d(X)
, a__f(X) -> f(X)
, a__c(X) -> c(X)
, a__h(X) -> h(X) }
Obligation:
innermost runtime complexity
Answer:
YES(?,POLY)
The input was oriented with the instance of 'Polynomial Path Order'
as induced by the safe mapping
safe(a__f) = {1}, safe(f) = {1}, safe(a__c) = {1}, safe(g) = {1},
safe(d) = {1}, safe(a__h) = {1}, safe(mark) = {}, safe(c) = {1},
safe(h) = {1}
and precedence
a__f > a__c, a__h > a__c, mark > a__f, mark > a__c, mark > a__h .
Following symbols are considered recursive:
{a__f, a__c, a__h, mark}
The recursion depth is 3.
For your convenience, here are the oriented rules in predicative
notation, possibly applying argument filtering:
Strict DPs:
Weak DPs :
Strict Trs:
{ a__f(; f(; X)) -> a__c(; f(; g(; f(; X))))
, a__c(; X) -> d(; X)
, a__h(; X) -> a__c(; d(; X))
, mark(f(; X);) -> a__f(; mark(X;))
, mark(c(; X);) -> a__c(; X)
, mark(h(; X);) -> a__h(; mark(X;))
, mark(g(; X);) -> g(; X)
, mark(d(; X);) -> d(; X)
, a__f(; X) -> f(; X)
, a__c(; X) -> c(; X)
, a__h(; X) -> h(; X) }
Weak Trs :
Hurray, we answered YES(?,POLY)
popstar-ps
YES(?,POLY)
We are left with following problem, upon which TcT provides the
certificate YES(?,POLY).
Strict Trs:
{ a__f(f(X)) -> a__c(f(g(f(X))))
, a__c(X) -> d(X)
, a__h(X) -> a__c(d(X))
, mark(f(X)) -> a__f(mark(X))
, mark(c(X)) -> a__c(X)
, mark(h(X)) -> a__h(mark(X))
, mark(g(X)) -> g(X)
, mark(d(X)) -> d(X)
, a__f(X) -> f(X)
, a__c(X) -> c(X)
, a__h(X) -> h(X) }
Obligation:
innermost runtime complexity
Answer:
YES(?,POLY)
The input was oriented with the instance of 'Polynomial Path Order
(PS)' as induced by the safe mapping
safe(a__f) = {1}, safe(f) = {1}, safe(a__c) = {1}, safe(g) = {1},
safe(d) = {1}, safe(a__h) = {1}, safe(mark) = {}, safe(c) = {1},
safe(h) = {1}
and precedence
a__f > a__c, a__h > a__c, mark > a__f, mark > a__c, mark > a__h .
Following symbols are considered recursive:
{a__f, a__c, a__h, mark}
The recursion depth is 3.
For your convenience, here are the oriented rules in predicative
notation, possibly applying argument filtering:
Strict DPs:
Weak DPs :
Strict Trs:
{ a__f(; f(; X)) -> a__c(; f(; g(; f(; X))))
, a__c(; X) -> d(; X)
, a__h(; X) -> a__c(; d(; X))
, mark(f(; X);) -> a__f(; mark(X;))
, mark(c(; X);) -> a__c(; X)
, mark(h(; X);) -> a__h(; mark(X;))
, mark(g(; X);) -> g(; X)
, mark(d(; X);) -> d(; X)
, a__f(; X) -> f(; X)
, a__c(; X) -> c(; X)
, a__h(; X) -> h(; X) }
Weak Trs :
Hurray, we answered YES(?,POLY)