LMPO
YES(?,ELEMENTARY)
We consider the following Problem:
Strict Trs:
{ fst(0(), Z) -> nil()
, fst(s(X), cons(Y, Z)) ->
cons(Y, n__fst(activate(X), activate(Z)))
, from(X) -> cons(X, n__from(s(X)))
, add(0(), X) -> X
, add(s(X), Y) -> s(n__add(activate(X), Y))
, len(nil()) -> 0()
, len(cons(X, Z)) -> s(n__len(activate(Z)))
, fst(X1, X2) -> n__fst(X1, X2)
, from(X) -> n__from(X)
, add(X1, X2) -> n__add(X1, X2)
, len(X) -> n__len(X)
, activate(n__fst(X1, X2)) -> fst(X1, X2)
, activate(n__from(X)) -> from(X)
, activate(n__add(X1, X2)) -> add(X1, X2)
, activate(n__len(X)) -> len(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,ELEMENTARY)
Proof:
The input was oriented with the instance of
Lightweight Multiset Path Order () as induced by the safe mapping
safe(fst) = {}, safe(0) = {}, safe(nil) = {}, safe(s) = {1},
safe(cons) = {1, 2}, safe(n__fst) = {1, 2}, safe(activate) = {},
safe(from) = {}, safe(n__from) = {1}, safe(add) = {},
safe(n__add) = {1, 2}, safe(len) = {}, safe(n__len) = {1}
and precedence
fst ~ activate, activate ~ from, activate ~ add, activate ~ len .
Following symbols are considered recursive:
{fst, activate, from, add, len}
The recursion depth is 1 .
For your convenience, here are the oriented rules in predicative
notation (possibly applying argument filtering):
Strict DPs: {}
Weak DPs : {}
Strict Trs:
{ fst(0(), Z;) -> nil()
, fst(s(; X), cons(; Y, Z);) ->
cons(; Y, n__fst(; activate(X;), activate(Z;)))
, from(X;) -> cons(; X, n__from(; s(; X)))
, add(0(), X;) -> X
, add(s(; X), Y;) -> s(; n__add(; activate(X;), Y))
, len(nil();) -> 0()
, len(cons(; X, Z);) -> s(; n__len(; activate(Z;)))
, fst(X1, X2;) -> n__fst(; X1, X2)
, from(X;) -> n__from(; X)
, add(X1, X2;) -> n__add(; X1, X2)
, len(X;) -> n__len(; X)
, activate(n__fst(; X1, X2);) -> fst(X1, X2;)
, activate(n__from(; X);) -> from(X;)
, activate(n__add(; X1, X2);) -> add(X1, X2;)
, activate(n__len(; X);) -> len(X;)
, activate(X;) -> X}
Weak Trs : {}
Hurray, we answered YES(?,ELEMENTARY)
MPO
YES(?,PRIMREC)
We consider the following Problem:
Strict Trs:
{ fst(0(), Z) -> nil()
, fst(s(X), cons(Y, Z)) ->
cons(Y, n__fst(activate(X), activate(Z)))
, from(X) -> cons(X, n__from(s(X)))
, add(0(), X) -> X
, add(s(X), Y) -> s(n__add(activate(X), Y))
, len(nil()) -> 0()
, len(cons(X, Z)) -> s(n__len(activate(Z)))
, fst(X1, X2) -> n__fst(X1, X2)
, from(X) -> n__from(X)
, add(X1, X2) -> n__add(X1, X2)
, len(X) -> n__len(X)
, activate(n__fst(X1, X2)) -> fst(X1, X2)
, activate(n__from(X)) -> from(X)
, activate(n__add(X1, X2)) -> add(X1, X2)
, activate(n__len(X)) -> len(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: YES(?,PRIMREC)
Proof:
The input was oriented with the instance of
'multiset path orders' as induced by the precedence
fst > cons, fst > n__fst, nil > 0, activate > from, from > s,
from > cons, from > n__from, add > s, add > n__add, len > s,
len > n__len, fst ~ nil, fst ~ activate, activate ~ add,
activate ~ len .
Hurray, we answered YES(?,PRIMREC)
POP*
MAYBE
We consider the following Problem:
Strict Trs:
{ fst(0(), Z) -> nil()
, fst(s(X), cons(Y, Z)) ->
cons(Y, n__fst(activate(X), activate(Z)))
, from(X) -> cons(X, n__from(s(X)))
, add(0(), X) -> X
, add(s(X), Y) -> s(n__add(activate(X), Y))
, len(nil()) -> 0()
, len(cons(X, Z)) -> s(n__len(activate(Z)))
, fst(X1, X2) -> n__fst(X1, X2)
, from(X) -> n__from(X)
, add(X1, X2) -> n__add(X1, X2)
, len(X) -> n__len(X)
, activate(n__fst(X1, X2)) -> fst(X1, X2)
, activate(n__from(X)) -> from(X)
, activate(n__add(X1, X2)) -> add(X1, X2)
, activate(n__len(X)) -> len(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: MAYBE
Proof:
The input cannot be shown compatible
Arrrr..
POP* (PS)
MAYBE
We consider the following Problem:
Strict Trs:
{ fst(0(), Z) -> nil()
, fst(s(X), cons(Y, Z)) ->
cons(Y, n__fst(activate(X), activate(Z)))
, from(X) -> cons(X, n__from(s(X)))
, add(0(), X) -> X
, add(s(X), Y) -> s(n__add(activate(X), Y))
, len(nil()) -> 0()
, len(cons(X, Z)) -> s(n__len(activate(Z)))
, fst(X1, X2) -> n__fst(X1, X2)
, from(X) -> n__from(X)
, add(X1, X2) -> n__add(X1, X2)
, len(X) -> n__len(X)
, activate(n__fst(X1, X2)) -> fst(X1, X2)
, activate(n__from(X)) -> from(X)
, activate(n__add(X1, X2)) -> add(X1, X2)
, activate(n__len(X)) -> len(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: MAYBE
Proof:
The input cannot be shown compatible
Arrrr..
Small POP*
MAYBE
We consider the following Problem:
Strict Trs:
{ fst(0(), Z) -> nil()
, fst(s(X), cons(Y, Z)) ->
cons(Y, n__fst(activate(X), activate(Z)))
, from(X) -> cons(X, n__from(s(X)))
, add(0(), X) -> X
, add(s(X), Y) -> s(n__add(activate(X), Y))
, len(nil()) -> 0()
, len(cons(X, Z)) -> s(n__len(activate(Z)))
, fst(X1, X2) -> n__fst(X1, X2)
, from(X) -> n__from(X)
, add(X1, X2) -> n__add(X1, X2)
, len(X) -> n__len(X)
, activate(n__fst(X1, X2)) -> fst(X1, X2)
, activate(n__from(X)) -> from(X)
, activate(n__add(X1, X2)) -> add(X1, X2)
, activate(n__len(X)) -> len(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: MAYBE
Proof:
The input cannot be shown compatible
Arrrr..
Small POP* (PS)
MAYBE
We consider the following Problem:
Strict Trs:
{ fst(0(), Z) -> nil()
, fst(s(X), cons(Y, Z)) ->
cons(Y, n__fst(activate(X), activate(Z)))
, from(X) -> cons(X, n__from(s(X)))
, add(0(), X) -> X
, add(s(X), Y) -> s(n__add(activate(X), Y))
, len(nil()) -> 0()
, len(cons(X, Z)) -> s(n__len(activate(Z)))
, fst(X1, X2) -> n__fst(X1, X2)
, from(X) -> n__from(X)
, add(X1, X2) -> n__add(X1, X2)
, len(X) -> n__len(X)
, activate(n__fst(X1, X2)) -> fst(X1, X2)
, activate(n__from(X)) -> from(X)
, activate(n__add(X1, X2)) -> add(X1, X2)
, activate(n__len(X)) -> len(X)
, activate(X) -> X}
StartTerms: basic terms
Strategy: innermost
Certificate: MAYBE
Proof:
The input cannot be shown compatible
Arrrr..