R
↳Dependency Pair Analysis
ACTIVE(zeros) -> CONS(0, zeros)
ACTIVE(cons(X1, X2)) -> CONS(active(X1), X2)
ACTIVE(cons(X1, X2)) -> ACTIVE(X1)
ACTIVE(tail(X)) -> TAIL(active(X))
ACTIVE(tail(X)) -> ACTIVE(X)
CONS(mark(X1), X2) -> CONS(X1, X2)
CONS(ok(X1), ok(X2)) -> CONS(X1, X2)
TAIL(mark(X)) -> TAIL(X)
TAIL(ok(X)) -> TAIL(X)
PROPER(cons(X1, X2)) -> CONS(proper(X1), proper(X2))
PROPER(cons(X1, X2)) -> PROPER(X1)
PROPER(cons(X1, X2)) -> PROPER(X2)
PROPER(tail(X)) -> TAIL(proper(X))
PROPER(tail(X)) -> PROPER(X)
TOP(mark(X)) -> TOP(proper(X))
TOP(mark(X)) -> PROPER(X)
TOP(ok(X)) -> TOP(active(X))
TOP(ok(X)) -> ACTIVE(X)
R
↳DPs
→DP Problem 1
↳Argument Filtering and Ordering
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
CONS(ok(X1), ok(X2)) -> CONS(X1, X2)
CONS(mark(X1), X2) -> CONS(X1, X2)
active(zeros) -> mark(cons(0, zeros))
active(tail(cons(X, XS))) -> mark(XS)
active(cons(X1, X2)) -> cons(active(X1), X2)
active(tail(X)) -> tail(active(X))
cons(mark(X1), X2) -> mark(cons(X1, X2))
cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
tail(mark(X)) -> mark(tail(X))
tail(ok(X)) -> ok(tail(X))
proper(zeros) -> ok(zeros)
proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
proper(0) -> ok(0)
proper(tail(X)) -> tail(proper(X))
top(mark(X)) -> top(proper(X))
top(ok(X)) -> top(active(X))
innermost
CONS(ok(X1), ok(X2)) -> CONS(X1, X2)
CONS(mark(X1), X2) -> CONS(X1, X2)
trivial
CONS(x1, x2) -> CONS(x1, x2)
mark(x1) -> mark(x1)
ok(x1) -> ok(x1)
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 6
↳Dependency Graph
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
active(zeros) -> mark(cons(0, zeros))
active(tail(cons(X, XS))) -> mark(XS)
active(cons(X1, X2)) -> cons(active(X1), X2)
active(tail(X)) -> tail(active(X))
cons(mark(X1), X2) -> mark(cons(X1, X2))
cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
tail(mark(X)) -> mark(tail(X))
tail(ok(X)) -> ok(tail(X))
proper(zeros) -> ok(zeros)
proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
proper(0) -> ok(0)
proper(tail(X)) -> tail(proper(X))
top(mark(X)) -> top(proper(X))
top(ok(X)) -> top(active(X))
innermost
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳Argument Filtering and Ordering
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
TAIL(ok(X)) -> TAIL(X)
TAIL(mark(X)) -> TAIL(X)
active(zeros) -> mark(cons(0, zeros))
active(tail(cons(X, XS))) -> mark(XS)
active(cons(X1, X2)) -> cons(active(X1), X2)
active(tail(X)) -> tail(active(X))
cons(mark(X1), X2) -> mark(cons(X1, X2))
cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
tail(mark(X)) -> mark(tail(X))
tail(ok(X)) -> ok(tail(X))
proper(zeros) -> ok(zeros)
proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
proper(0) -> ok(0)
proper(tail(X)) -> tail(proper(X))
top(mark(X)) -> top(proper(X))
top(ok(X)) -> top(active(X))
innermost
TAIL(ok(X)) -> TAIL(X)
TAIL(mark(X)) -> TAIL(X)
trivial
TAIL(x1) -> TAIL(x1)
mark(x1) -> mark(x1)
ok(x1) -> ok(x1)
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 7
↳Dependency Graph
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
active(zeros) -> mark(cons(0, zeros))
active(tail(cons(X, XS))) -> mark(XS)
active(cons(X1, X2)) -> cons(active(X1), X2)
active(tail(X)) -> tail(active(X))
cons(mark(X1), X2) -> mark(cons(X1, X2))
cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
tail(mark(X)) -> mark(tail(X))
tail(ok(X)) -> ok(tail(X))
proper(zeros) -> ok(zeros)
proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
proper(0) -> ok(0)
proper(tail(X)) -> tail(proper(X))
top(mark(X)) -> top(proper(X))
top(ok(X)) -> top(active(X))
innermost
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳Argument Filtering and Ordering
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
ACTIVE(tail(X)) -> ACTIVE(X)
ACTIVE(cons(X1, X2)) -> ACTIVE(X1)
active(zeros) -> mark(cons(0, zeros))
active(tail(cons(X, XS))) -> mark(XS)
active(cons(X1, X2)) -> cons(active(X1), X2)
active(tail(X)) -> tail(active(X))
cons(mark(X1), X2) -> mark(cons(X1, X2))
cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
tail(mark(X)) -> mark(tail(X))
tail(ok(X)) -> ok(tail(X))
proper(zeros) -> ok(zeros)
proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
proper(0) -> ok(0)
proper(tail(X)) -> tail(proper(X))
top(mark(X)) -> top(proper(X))
top(ok(X)) -> top(active(X))
innermost
ACTIVE(tail(X)) -> ACTIVE(X)
ACTIVE(cons(X1, X2)) -> ACTIVE(X1)
trivial
ACTIVE(x1) -> ACTIVE(x1)
tail(x1) -> tail(x1)
cons(x1, x2) -> cons(x1, x2)
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 8
↳Dependency Graph
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
active(zeros) -> mark(cons(0, zeros))
active(tail(cons(X, XS))) -> mark(XS)
active(cons(X1, X2)) -> cons(active(X1), X2)
active(tail(X)) -> tail(active(X))
cons(mark(X1), X2) -> mark(cons(X1, X2))
cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
tail(mark(X)) -> mark(tail(X))
tail(ok(X)) -> ok(tail(X))
proper(zeros) -> ok(zeros)
proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
proper(0) -> ok(0)
proper(tail(X)) -> tail(proper(X))
top(mark(X)) -> top(proper(X))
top(ok(X)) -> top(active(X))
innermost
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳Argument Filtering and Ordering
→DP Problem 5
↳Nar
PROPER(tail(X)) -> PROPER(X)
PROPER(cons(X1, X2)) -> PROPER(X2)
PROPER(cons(X1, X2)) -> PROPER(X1)
active(zeros) -> mark(cons(0, zeros))
active(tail(cons(X, XS))) -> mark(XS)
active(cons(X1, X2)) -> cons(active(X1), X2)
active(tail(X)) -> tail(active(X))
cons(mark(X1), X2) -> mark(cons(X1, X2))
cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
tail(mark(X)) -> mark(tail(X))
tail(ok(X)) -> ok(tail(X))
proper(zeros) -> ok(zeros)
proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
proper(0) -> ok(0)
proper(tail(X)) -> tail(proper(X))
top(mark(X)) -> top(proper(X))
top(ok(X)) -> top(active(X))
innermost
PROPER(tail(X)) -> PROPER(X)
PROPER(cons(X1, X2)) -> PROPER(X2)
PROPER(cons(X1, X2)) -> PROPER(X1)
trivial
PROPER(x1) -> PROPER(x1)
cons(x1, x2) -> cons(x1, x2)
tail(x1) -> tail(x1)
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 9
↳Dependency Graph
→DP Problem 5
↳Nar
active(zeros) -> mark(cons(0, zeros))
active(tail(cons(X, XS))) -> mark(XS)
active(cons(X1, X2)) -> cons(active(X1), X2)
active(tail(X)) -> tail(active(X))
cons(mark(X1), X2) -> mark(cons(X1, X2))
cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
tail(mark(X)) -> mark(tail(X))
tail(ok(X)) -> ok(tail(X))
proper(zeros) -> ok(zeros)
proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
proper(0) -> ok(0)
proper(tail(X)) -> tail(proper(X))
top(mark(X)) -> top(proper(X))
top(ok(X)) -> top(active(X))
innermost
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Narrowing Transformation
TOP(ok(X)) -> TOP(active(X))
TOP(mark(X)) -> TOP(proper(X))
active(zeros) -> mark(cons(0, zeros))
active(tail(cons(X, XS))) -> mark(XS)
active(cons(X1, X2)) -> cons(active(X1), X2)
active(tail(X)) -> tail(active(X))
cons(mark(X1), X2) -> mark(cons(X1, X2))
cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
tail(mark(X)) -> mark(tail(X))
tail(ok(X)) -> ok(tail(X))
proper(zeros) -> ok(zeros)
proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
proper(0) -> ok(0)
proper(tail(X)) -> tail(proper(X))
top(mark(X)) -> top(proper(X))
top(ok(X)) -> top(active(X))
innermost
four new Dependency Pairs are created:
TOP(mark(X)) -> TOP(proper(X))
TOP(mark(zeros)) -> TOP(ok(zeros))
TOP(mark(cons(X1', X2'))) -> TOP(cons(proper(X1'), proper(X2')))
TOP(mark(0)) -> TOP(ok(0))
TOP(mark(tail(X''))) -> TOP(tail(proper(X'')))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
→DP Problem 10
↳Narrowing Transformation
TOP(mark(tail(X''))) -> TOP(tail(proper(X'')))
TOP(mark(0)) -> TOP(ok(0))
TOP(mark(cons(X1', X2'))) -> TOP(cons(proper(X1'), proper(X2')))
TOP(mark(zeros)) -> TOP(ok(zeros))
TOP(ok(X)) -> TOP(active(X))
active(zeros) -> mark(cons(0, zeros))
active(tail(cons(X, XS))) -> mark(XS)
active(cons(X1, X2)) -> cons(active(X1), X2)
active(tail(X)) -> tail(active(X))
cons(mark(X1), X2) -> mark(cons(X1, X2))
cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
tail(mark(X)) -> mark(tail(X))
tail(ok(X)) -> ok(tail(X))
proper(zeros) -> ok(zeros)
proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
proper(0) -> ok(0)
proper(tail(X)) -> tail(proper(X))
top(mark(X)) -> top(proper(X))
top(ok(X)) -> top(active(X))
innermost
four new Dependency Pairs are created:
TOP(ok(X)) -> TOP(active(X))
TOP(ok(zeros)) -> TOP(mark(cons(0, zeros)))
TOP(ok(tail(cons(X'', XS')))) -> TOP(mark(XS'))
TOP(ok(cons(X1', X2'))) -> TOP(cons(active(X1'), X2'))
TOP(ok(tail(X''))) -> TOP(tail(active(X'')))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
→DP Problem 10
↳Nar
...
→DP Problem 11
↳Forward Instantiation Transformation
TOP(ok(tail(X''))) -> TOP(tail(active(X'')))
TOP(ok(cons(X1', X2'))) -> TOP(cons(active(X1'), X2'))
TOP(ok(tail(cons(X'', XS')))) -> TOP(mark(XS'))
TOP(mark(cons(X1', X2'))) -> TOP(cons(proper(X1'), proper(X2')))
TOP(ok(zeros)) -> TOP(mark(cons(0, zeros)))
TOP(mark(zeros)) -> TOP(ok(zeros))
TOP(mark(tail(X''))) -> TOP(tail(proper(X'')))
active(zeros) -> mark(cons(0, zeros))
active(tail(cons(X, XS))) -> mark(XS)
active(cons(X1, X2)) -> cons(active(X1), X2)
active(tail(X)) -> tail(active(X))
cons(mark(X1), X2) -> mark(cons(X1, X2))
cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
tail(mark(X)) -> mark(tail(X))
tail(ok(X)) -> ok(tail(X))
proper(zeros) -> ok(zeros)
proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
proper(0) -> ok(0)
proper(tail(X)) -> tail(proper(X))
top(mark(X)) -> top(proper(X))
top(ok(X)) -> top(active(X))
innermost
three new Dependency Pairs are created:
TOP(ok(tail(cons(X'', XS')))) -> TOP(mark(XS'))
TOP(ok(tail(cons(X'', zeros)))) -> TOP(mark(zeros))
TOP(ok(tail(cons(X'', cons(X1''', X2'''))))) -> TOP(mark(cons(X1''', X2''')))
TOP(ok(tail(cons(X'', tail(X''''))))) -> TOP(mark(tail(X'''')))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
→DP Problem 10
↳Nar
...
→DP Problem 12
↳Argument Filtering and Ordering
TOP(ok(tail(cons(X'', tail(X''''))))) -> TOP(mark(tail(X'''')))
TOP(ok(tail(cons(X'', cons(X1''', X2'''))))) -> TOP(mark(cons(X1''', X2''')))
TOP(ok(tail(cons(X'', zeros)))) -> TOP(mark(zeros))
TOP(ok(cons(X1', X2'))) -> TOP(cons(active(X1'), X2'))
TOP(mark(tail(X''))) -> TOP(tail(proper(X'')))
TOP(mark(cons(X1', X2'))) -> TOP(cons(proper(X1'), proper(X2')))
TOP(ok(zeros)) -> TOP(mark(cons(0, zeros)))
TOP(mark(zeros)) -> TOP(ok(zeros))
TOP(ok(tail(X''))) -> TOP(tail(active(X'')))
active(zeros) -> mark(cons(0, zeros))
active(tail(cons(X, XS))) -> mark(XS)
active(cons(X1, X2)) -> cons(active(X1), X2)
active(tail(X)) -> tail(active(X))
cons(mark(X1), X2) -> mark(cons(X1, X2))
cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
tail(mark(X)) -> mark(tail(X))
tail(ok(X)) -> ok(tail(X))
proper(zeros) -> ok(zeros)
proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
proper(0) -> ok(0)
proper(tail(X)) -> tail(proper(X))
top(mark(X)) -> top(proper(X))
top(ok(X)) -> top(active(X))
innermost
TOP(ok(tail(cons(X'', tail(X''''))))) -> TOP(mark(tail(X'''')))
TOP(ok(tail(cons(X'', cons(X1''', X2'''))))) -> TOP(mark(cons(X1''', X2''')))
TOP(ok(tail(cons(X'', zeros)))) -> TOP(mark(zeros))
cons(mark(X1), X2) -> mark(cons(X1, X2))
cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
proper(zeros) -> ok(zeros)
proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
proper(0) -> ok(0)
proper(tail(X)) -> tail(proper(X))
tail(mark(X)) -> mark(tail(X))
tail(ok(X)) -> ok(tail(X))
active(zeros) -> mark(cons(0, zeros))
active(tail(cons(X, XS))) -> mark(XS)
active(cons(X1, X2)) -> cons(active(X1), X2)
active(tail(X)) -> tail(active(X))
trivial
TOP(x1) -> TOP(x1)
ok(x1) -> x1
tail(x1) -> tail(x1)
mark(x1) -> x1
cons(x1, x2) -> x2
proper(x1) -> x1
active(x1) -> x1
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
→DP Problem 10
↳Nar
...
→DP Problem 13
↳Remaining Obligation(s)
TOP(ok(cons(X1', X2'))) -> TOP(cons(active(X1'), X2'))
TOP(mark(tail(X''))) -> TOP(tail(proper(X'')))
TOP(mark(cons(X1', X2'))) -> TOP(cons(proper(X1'), proper(X2')))
TOP(ok(zeros)) -> TOP(mark(cons(0, zeros)))
TOP(mark(zeros)) -> TOP(ok(zeros))
TOP(ok(tail(X''))) -> TOP(tail(active(X'')))
active(zeros) -> mark(cons(0, zeros))
active(tail(cons(X, XS))) -> mark(XS)
active(cons(X1, X2)) -> cons(active(X1), X2)
active(tail(X)) -> tail(active(X))
cons(mark(X1), X2) -> mark(cons(X1, X2))
cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
tail(mark(X)) -> mark(tail(X))
tail(ok(X)) -> ok(tail(X))
proper(zeros) -> ok(zeros)
proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
proper(0) -> ok(0)
proper(tail(X)) -> tail(proper(X))
top(mark(X)) -> top(proper(X))
top(ok(X)) -> top(active(X))
innermost