YES(O(1), O(n^1)) 0.00/0.89 YES(O(1), O(n^1)) 0.00/0.92 0.00/0.92 0.00/0.92
0.00/0.92 0.00/0.920 CpxTRS0.00/0.92
↳1 CpxTrsToCdtProof (BOTH BOUNDS(ID, ID))0.00/0.92
↳2 CdtProblem0.00/0.92
↳3 CdtLeafRemovalProof (ComplexityIfPolyImplication)0.00/0.92
↳4 CdtProblem0.00/0.92
↳5 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))0.00/0.92
↳6 CdtProblem0.00/0.92
↳7 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))0.00/0.92
↳8 CdtProblem0.00/0.92
↳9 SIsEmptyProof (BOTH BOUNDS(ID, ID))0.00/0.92
↳10 BOUNDS(O(1), O(1))0.00/0.92
revconsapp(C(x1, x2), r) → revconsapp(x2, C(x1, r)) 0.00/0.92
deeprevapp(C(x1, x2), rest) → deeprevapp(x2, C(x1, rest)) 0.00/0.92
deeprevapp(V(n), rest) → revconsapp(rest, V(n)) 0.00/0.92
deeprevapp(N, rest) → rest 0.00/0.92
revconsapp(V(n), r) → r 0.00/0.92
revconsapp(N, r) → r 0.00/0.92
deeprev(C(x1, x2)) → deeprevapp(C(x1, x2), N) 0.00/0.92
deeprev(V(n)) → V(n) 0.00/0.92
deeprev(N) → N 0.00/0.92
second(V(n)) → N 0.00/0.92
second(C(x1, x2)) → x2 0.00/0.92
isVal(C(x1, x2)) → False 0.00/0.92
isVal(V(n)) → True 0.00/0.92
isVal(N) → False 0.00/0.92
isNotEmptyT(C(x1, x2)) → True 0.00/0.92
isNotEmptyT(V(n)) → False 0.00/0.92
isNotEmptyT(N) → False 0.00/0.92
isEmptyT(C(x1, x2)) → False 0.00/0.92
isEmptyT(V(n)) → False 0.00/0.92
isEmptyT(N) → True 0.00/0.92
first(V(n)) → N 0.00/0.92
first(C(x1, x2)) → x1 0.00/0.92
goal(x) → deeprev(x)
Tuples:
revconsapp(C(z0, z1), z2) → revconsapp(z1, C(z0, z2)) 0.00/0.92
revconsapp(V(z0), z1) → z1 0.00/0.92
revconsapp(N, z0) → z0 0.00/0.92
deeprevapp(C(z0, z1), z2) → deeprevapp(z1, C(z0, z2)) 0.00/0.92
deeprevapp(V(z0), z1) → revconsapp(z1, V(z0)) 0.00/0.92
deeprevapp(N, z0) → z0 0.00/0.92
deeprev(C(z0, z1)) → deeprevapp(C(z0, z1), N) 0.00/0.92
deeprev(V(z0)) → V(z0) 0.00/0.92
deeprev(N) → N 0.00/0.92
second(V(z0)) → N 0.00/0.92
second(C(z0, z1)) → z1 0.00/0.92
isVal(C(z0, z1)) → False 0.00/0.92
isVal(V(z0)) → True 0.00/0.92
isVal(N) → False 0.00/0.92
isNotEmptyT(C(z0, z1)) → True 0.00/0.92
isNotEmptyT(V(z0)) → False 0.00/0.92
isNotEmptyT(N) → False 0.00/0.92
isEmptyT(C(z0, z1)) → False 0.00/0.92
isEmptyT(V(z0)) → False 0.00/0.92
isEmptyT(N) → True 0.00/0.92
first(V(z0)) → N 0.00/0.92
first(C(z0, z1)) → z0 0.00/0.92
goal(z0) → deeprev(z0)
S tuples:
REVCONSAPP(C(z0, z1), z2) → c(REVCONSAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(C(z0, z1), z2) → c3(DEEPREVAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(V(z0), z1) → c4(REVCONSAPP(z1, V(z0))) 0.00/0.92
DEEPREV(C(z0, z1)) → c6(DEEPREVAPP(C(z0, z1), N)) 0.00/0.92
GOAL(z0) → c22(DEEPREV(z0))
K tuples:none
REVCONSAPP(C(z0, z1), z2) → c(REVCONSAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(C(z0, z1), z2) → c3(DEEPREVAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(V(z0), z1) → c4(REVCONSAPP(z1, V(z0))) 0.00/0.92
DEEPREV(C(z0, z1)) → c6(DEEPREVAPP(C(z0, z1), N)) 0.00/0.92
GOAL(z0) → c22(DEEPREV(z0))
revconsapp, deeprevapp, deeprev, second, isVal, isNotEmptyT, isEmptyT, first, goal
REVCONSAPP, DEEPREVAPP, DEEPREV, GOAL
c, c3, c4, c6, c22
GOAL(z0) → c22(DEEPREV(z0)) 0.00/0.92
DEEPREV(C(z0, z1)) → c6(DEEPREVAPP(C(z0, z1), N))
Tuples:
revconsapp(C(z0, z1), z2) → revconsapp(z1, C(z0, z2)) 0.00/0.92
revconsapp(V(z0), z1) → z1 0.00/0.92
revconsapp(N, z0) → z0 0.00/0.92
deeprevapp(C(z0, z1), z2) → deeprevapp(z1, C(z0, z2)) 0.00/0.92
deeprevapp(V(z0), z1) → revconsapp(z1, V(z0)) 0.00/0.92
deeprevapp(N, z0) → z0 0.00/0.92
deeprev(C(z0, z1)) → deeprevapp(C(z0, z1), N) 0.00/0.92
deeprev(V(z0)) → V(z0) 0.00/0.92
deeprev(N) → N 0.00/0.92
second(V(z0)) → N 0.00/0.92
second(C(z0, z1)) → z1 0.00/0.92
isVal(C(z0, z1)) → False 0.00/0.92
isVal(V(z0)) → True 0.00/0.92
isVal(N) → False 0.00/0.92
isNotEmptyT(C(z0, z1)) → True 0.00/0.92
isNotEmptyT(V(z0)) → False 0.00/0.92
isNotEmptyT(N) → False 0.00/0.92
isEmptyT(C(z0, z1)) → False 0.00/0.92
isEmptyT(V(z0)) → False 0.00/0.92
isEmptyT(N) → True 0.00/0.92
first(V(z0)) → N 0.00/0.92
first(C(z0, z1)) → z0 0.00/0.92
goal(z0) → deeprev(z0)
S tuples:
REVCONSAPP(C(z0, z1), z2) → c(REVCONSAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(C(z0, z1), z2) → c3(DEEPREVAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(V(z0), z1) → c4(REVCONSAPP(z1, V(z0)))
K tuples:none
REVCONSAPP(C(z0, z1), z2) → c(REVCONSAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(C(z0, z1), z2) → c3(DEEPREVAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(V(z0), z1) → c4(REVCONSAPP(z1, V(z0)))
revconsapp, deeprevapp, deeprev, second, isVal, isNotEmptyT, isEmptyT, first, goal
REVCONSAPP, DEEPREVAPP
c, c3, c4
We considered the (Usable) Rules:none
DEEPREVAPP(C(z0, z1), z2) → c3(DEEPREVAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(V(z0), z1) → c4(REVCONSAPP(z1, V(z0)))
The order we found is given by the following interpretation:
REVCONSAPP(C(z0, z1), z2) → c(REVCONSAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(C(z0, z1), z2) → c3(DEEPREVAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(V(z0), z1) → c4(REVCONSAPP(z1, V(z0)))
POL(C(x1, x2)) = [2] + x2 0.00/0.92
POL(DEEPREVAPP(x1, x2)) = [3] + [4]x1 + [3]x2 0.00/0.92
POL(REVCONSAPP(x1, x2)) = [3] + [2]x1 + [2]x2 0.00/0.92
POL(V(x1)) = [4] + x1 0.00/0.92
POL(c(x1)) = x1 0.00/0.92
POL(c3(x1)) = x1 0.00/0.92
POL(c4(x1)) = x1
Tuples:
revconsapp(C(z0, z1), z2) → revconsapp(z1, C(z0, z2)) 0.00/0.92
revconsapp(V(z0), z1) → z1 0.00/0.92
revconsapp(N, z0) → z0 0.00/0.92
deeprevapp(C(z0, z1), z2) → deeprevapp(z1, C(z0, z2)) 0.00/0.92
deeprevapp(V(z0), z1) → revconsapp(z1, V(z0)) 0.00/0.92
deeprevapp(N, z0) → z0 0.00/0.92
deeprev(C(z0, z1)) → deeprevapp(C(z0, z1), N) 0.00/0.92
deeprev(V(z0)) → V(z0) 0.00/0.92
deeprev(N) → N 0.00/0.92
second(V(z0)) → N 0.00/0.92
second(C(z0, z1)) → z1 0.00/0.92
isVal(C(z0, z1)) → False 0.00/0.92
isVal(V(z0)) → True 0.00/0.92
isVal(N) → False 0.00/0.92
isNotEmptyT(C(z0, z1)) → True 0.00/0.92
isNotEmptyT(V(z0)) → False 0.00/0.92
isNotEmptyT(N) → False 0.00/0.92
isEmptyT(C(z0, z1)) → False 0.00/0.92
isEmptyT(V(z0)) → False 0.00/0.92
isEmptyT(N) → True 0.00/0.92
first(V(z0)) → N 0.00/0.92
first(C(z0, z1)) → z0 0.00/0.92
goal(z0) → deeprev(z0)
S tuples:
REVCONSAPP(C(z0, z1), z2) → c(REVCONSAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(C(z0, z1), z2) → c3(DEEPREVAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(V(z0), z1) → c4(REVCONSAPP(z1, V(z0)))
K tuples:
REVCONSAPP(C(z0, z1), z2) → c(REVCONSAPP(z1, C(z0, z2)))
Defined Rule Symbols:
DEEPREVAPP(C(z0, z1), z2) → c3(DEEPREVAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(V(z0), z1) → c4(REVCONSAPP(z1, V(z0)))
revconsapp, deeprevapp, deeprev, second, isVal, isNotEmptyT, isEmptyT, first, goal
REVCONSAPP, DEEPREVAPP
c, c3, c4
We considered the (Usable) Rules:none
REVCONSAPP(C(z0, z1), z2) → c(REVCONSAPP(z1, C(z0, z2)))
The order we found is given by the following interpretation:
REVCONSAPP(C(z0, z1), z2) → c(REVCONSAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(C(z0, z1), z2) → c3(DEEPREVAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(V(z0), z1) → c4(REVCONSAPP(z1, V(z0)))
POL(C(x1, x2)) = [1] + x1 + x2 0.00/0.92
POL(DEEPREVAPP(x1, x2)) = [5] + [5]x1 + [2]x2 0.00/0.92
POL(REVCONSAPP(x1, x2)) = [3] + [2]x1 + x2 0.00/0.92
POL(V(x1)) = [1] + x1 0.00/0.92
POL(c(x1)) = x1 0.00/0.92
POL(c3(x1)) = x1 0.00/0.92
POL(c4(x1)) = x1
Tuples:
revconsapp(C(z0, z1), z2) → revconsapp(z1, C(z0, z2)) 0.00/0.92
revconsapp(V(z0), z1) → z1 0.00/0.92
revconsapp(N, z0) → z0 0.00/0.92
deeprevapp(C(z0, z1), z2) → deeprevapp(z1, C(z0, z2)) 0.00/0.92
deeprevapp(V(z0), z1) → revconsapp(z1, V(z0)) 0.00/0.92
deeprevapp(N, z0) → z0 0.00/0.92
deeprev(C(z0, z1)) → deeprevapp(C(z0, z1), N) 0.00/0.92
deeprev(V(z0)) → V(z0) 0.00/0.92
deeprev(N) → N 0.00/0.92
second(V(z0)) → N 0.00/0.92
second(C(z0, z1)) → z1 0.00/0.92
isVal(C(z0, z1)) → False 0.00/0.92
isVal(V(z0)) → True 0.00/0.92
isVal(N) → False 0.00/0.92
isNotEmptyT(C(z0, z1)) → True 0.00/0.92
isNotEmptyT(V(z0)) → False 0.00/0.92
isNotEmptyT(N) → False 0.00/0.92
isEmptyT(C(z0, z1)) → False 0.00/0.92
isEmptyT(V(z0)) → False 0.00/0.92
isEmptyT(N) → True 0.00/0.92
first(V(z0)) → N 0.00/0.92
first(C(z0, z1)) → z0 0.00/0.92
goal(z0) → deeprev(z0)
S tuples:none
REVCONSAPP(C(z0, z1), z2) → c(REVCONSAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(C(z0, z1), z2) → c3(DEEPREVAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(V(z0), z1) → c4(REVCONSAPP(z1, V(z0)))
Defined Rule Symbols:
DEEPREVAPP(C(z0, z1), z2) → c3(DEEPREVAPP(z1, C(z0, z2))) 0.00/0.92
DEEPREVAPP(V(z0), z1) → c4(REVCONSAPP(z1, V(z0))) 0.00/0.92
REVCONSAPP(C(z0, z1), z2) → c(REVCONSAPP(z1, C(z0, z2)))
revconsapp, deeprevapp, deeprev, second, isVal, isNotEmptyT, isEmptyT, first, goal
REVCONSAPP, DEEPREVAPP
c, c3, c4