R
↳Dependency Pair Analysis
REV1(X, cons(Y, L)) -> REV1(Y, L)
REV(cons(X, L)) -> REV1(X, L)
REV(cons(X, L)) -> REV2(X, L)
REV2(X, cons(Y, L)) -> REV(cons(X, rev(rev2(Y, L))))
REV2(X, cons(Y, L)) -> REV(rev2(Y, L))
REV2(X, cons(Y, L)) -> REV2(Y, L)
R
↳DPs
→DP Problem 1
↳Argument Filtering and Ordering
→DP Problem 2
↳Nar
REV1(X, cons(Y, L)) -> REV1(Y, L)
rev1(0, nil) -> 0
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
REV1(X, cons(Y, L)) -> REV1(Y, L)
REV1(x1, x2) -> x2
cons(x1, x2) -> cons(x1, x2)
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 3
↳Dependency Graph
→DP Problem 2
↳Nar
rev1(0, nil) -> 0
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳Narrowing Transformation
REV2(X, cons(Y, L)) -> REV2(Y, L)
REV2(X, cons(Y, L)) -> REV(rev2(Y, L))
REV2(X, cons(Y, L)) -> REV(cons(X, rev(rev2(Y, L))))
REV(cons(X, L)) -> REV2(X, L)
rev1(0, nil) -> 0
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
two new Dependency Pairs are created:
REV2(X, cons(Y, L)) -> REV(rev2(Y, L))
REV2(X, cons(Y', nil)) -> REV(nil)
REV2(X, cons(Y0, cons(Y'', L''))) -> REV(rev(cons(Y0, rev(rev2(Y'', L'')))))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳Nar
→DP Problem 4
↳Narrowing Transformation
REV2(X, cons(Y0, cons(Y'', L''))) -> REV(rev(cons(Y0, rev(rev2(Y'', L'')))))
REV(cons(X, L)) -> REV2(X, L)
REV2(X, cons(Y, L)) -> REV(cons(X, rev(rev2(Y, L))))
REV2(X, cons(Y, L)) -> REV2(Y, L)
rev1(0, nil) -> 0
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
three new Dependency Pairs are created:
REV2(X, cons(Y0, cons(Y'', L''))) -> REV(rev(cons(Y0, rev(rev2(Y'', L'')))))
REV2(X, cons(Y0', cons(Y''', L'''))) -> REV(cons(rev1(Y0', rev(rev2(Y''', L'''))), rev2(Y0', rev(rev2(Y''', L''')))))
REV2(X, cons(Y0, cons(Y''', nil))) -> REV(rev(cons(Y0, rev(nil))))
REV2(X, cons(Y0, cons(Y''', cons(Y', L')))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev2(Y', L'))))))))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳Nar
→DP Problem 4
↳Nar
...
→DP Problem 5
↳Narrowing Transformation
REV2(X, cons(Y0, cons(Y''', cons(Y', L')))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev2(Y', L'))))))))
REV2(X, cons(Y0, cons(Y''', nil))) -> REV(rev(cons(Y0, rev(nil))))
REV2(X, cons(Y0', cons(Y''', L'''))) -> REV(cons(rev1(Y0', rev(rev2(Y''', L'''))), rev2(Y0', rev(rev2(Y''', L''')))))
REV2(X, cons(Y, L)) -> REV2(Y, L)
REV2(X, cons(Y, L)) -> REV(cons(X, rev(rev2(Y, L))))
REV(cons(X, L)) -> REV2(X, L)
rev1(0, nil) -> 0
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
two new Dependency Pairs are created:
REV2(X, cons(Y0, cons(Y''', nil))) -> REV(rev(cons(Y0, rev(nil))))
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', rev(nil)), rev2(Y0', rev(nil))))
REV2(X, cons(Y0, cons(Y''', nil))) -> REV(rev(cons(Y0, nil)))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳Nar
→DP Problem 4
↳Nar
...
→DP Problem 6
↳Narrowing Transformation
REV2(X, cons(Y0, cons(Y''', nil))) -> REV(rev(cons(Y0, nil)))
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', rev(nil)), rev2(Y0', rev(nil))))
REV2(X, cons(Y0', cons(Y''', L'''))) -> REV(cons(rev1(Y0', rev(rev2(Y''', L'''))), rev2(Y0', rev(rev2(Y''', L''')))))
REV2(X, cons(Y, L)) -> REV2(Y, L)
REV2(X, cons(Y, L)) -> REV(cons(X, rev(rev2(Y, L))))
REV(cons(X, L)) -> REV2(X, L)
REV2(X, cons(Y0, cons(Y''', cons(Y', L')))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev2(Y', L'))))))))
rev1(0, nil) -> 0
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
four new Dependency Pairs are created:
REV2(X, cons(Y0, cons(Y''', cons(Y', L')))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev2(Y', L'))))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', L'')))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L'')))))), rev2(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', L'')))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', rev(rev2(Y'', L''))), rev2(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(nil)))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1, L''))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(rev2(Y1, L'')))))))))))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳Nar
→DP Problem 4
↳Nar
...
→DP Problem 7
↳Narrowing Transformation
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1, L''))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(rev2(Y1, L'')))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(nil)))))))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', L'')))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', rev(rev2(Y'', L''))), rev2(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', L'')))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L'')))))), rev2(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', rev(nil)), rev2(Y0', rev(nil))))
REV2(X, cons(Y0', cons(Y''', L'''))) -> REV(cons(rev1(Y0', rev(rev2(Y''', L'''))), rev2(Y0', rev(rev2(Y''', L''')))))
REV2(X, cons(Y, L)) -> REV2(Y, L)
REV2(X, cons(Y, L)) -> REV(cons(X, rev(rev2(Y, L))))
REV(cons(X, L)) -> REV2(X, L)
REV2(X, cons(Y0, cons(Y''', nil))) -> REV(rev(cons(Y0, nil)))
rev1(0, nil) -> 0
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
one new Dependency Pair is created:
REV2(X, cons(Y0, cons(Y''', nil))) -> REV(rev(cons(Y0, nil)))
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', nil), rev2(Y0', nil)))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳Nar
→DP Problem 4
↳Nar
...
→DP Problem 8
↳Narrowing Transformation
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', nil), rev2(Y0', nil)))
REV2(X, cons(Y0, cons(Y''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(nil)))))))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', L'')))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', rev(rev2(Y'', L''))), rev2(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', L'')))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L'')))))), rev2(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', rev(nil)), rev2(Y0', rev(nil))))
REV2(X, cons(Y0', cons(Y''', L'''))) -> REV(cons(rev1(Y0', rev(rev2(Y''', L'''))), rev2(Y0', rev(rev2(Y''', L''')))))
REV2(X, cons(Y, L)) -> REV2(Y, L)
REV2(X, cons(Y, L)) -> REV(cons(X, rev(rev2(Y, L))))
REV(cons(X, L)) -> REV2(X, L)
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1, L''))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(rev2(Y1, L'')))))))))))
rev1(0, nil) -> 0
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
three new Dependency Pairs are created:
REV2(X, cons(Y0, cons(Y''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(nil)))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', nil)))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', rev(nil))))), rev2(Y0', rev(rev(cons(Y'''', rev(nil)))))))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', rev(nil)), rev2(Y'''', rev(nil)))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', nil))))))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳Nar
→DP Problem 4
↳Nar
...
→DP Problem 9
↳Narrowing Transformation
REV2(X, cons(Y0, cons(Y''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', nil))))))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', rev(nil)), rev2(Y'''', rev(nil)))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', nil)))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', rev(nil))))), rev2(Y0', rev(rev(cons(Y'''', rev(nil)))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1, L''))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(rev2(Y1, L'')))))))))))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', L'')))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', rev(rev2(Y'', L''))), rev2(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', L'')))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L'')))))), rev2(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', rev(nil)), rev2(Y0', rev(nil))))
REV2(X, cons(Y0', cons(Y''', L'''))) -> REV(cons(rev1(Y0', rev(rev2(Y''', L'''))), rev2(Y0', rev(rev2(Y''', L''')))))
REV2(X, cons(Y, L)) -> REV2(Y, L)
REV2(X, cons(Y, L)) -> REV(cons(X, rev(rev2(Y, L))))
REV(cons(X, L)) -> REV2(X, L)
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', nil), rev2(Y0', nil)))
rev1(0, nil) -> 0
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
five new Dependency Pairs are created:
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1, L''))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(rev2(Y1, L'')))))))))))
REV2(X, cons(Y0', cons(Y''''', cons(Y'''', cons(Y1', L'''))))) -> REV(cons(rev1(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L'''))))))))), rev2(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L''')))))))))))
REV2(X, cons(Y0, cons(Y''''', cons(Y'''', cons(Y1', L'''))))) -> REV(rev(cons(Y0, rev(cons(rev1(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L''')))))), rev2(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L''')))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'''', cons(Y1', L'''))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(cons(rev1(Y'''', rev(rev2(Y1', L'''))), rev2(Y'''', rev(rev2(Y1', L''')))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', nil))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(nil))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', cons(Y', L')))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(rev(cons(Y1', rev(rev2(Y', L'))))))))))))))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳Nar
→DP Problem 4
↳Nar
...
→DP Problem 10
↳Narrowing Transformation
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', cons(Y', L')))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(rev(cons(Y1', rev(rev2(Y', L'))))))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', nil))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(nil))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'''', cons(Y1', L'''))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(cons(rev1(Y'''', rev(rev2(Y1', L'''))), rev2(Y'''', rev(rev2(Y1', L''')))))))))))
REV2(X, cons(Y0, cons(Y''''', cons(Y'''', cons(Y1', L'''))))) -> REV(rev(cons(Y0, rev(cons(rev1(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L''')))))), rev2(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L''')))))))))))
REV2(X, cons(Y0', cons(Y''''', cons(Y'''', cons(Y1', L'''))))) -> REV(cons(rev1(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L'''))))))))), rev2(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L''')))))))))))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', rev(nil)), rev2(Y'''', rev(nil)))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', nil)))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', rev(nil))))), rev2(Y0', rev(rev(cons(Y'''', rev(nil)))))))
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', nil), rev2(Y0', nil)))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', L'')))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', rev(rev2(Y'', L''))), rev2(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', L'')))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L'')))))), rev2(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', rev(nil)), rev2(Y0', rev(nil))))
REV2(X, cons(Y0', cons(Y''', L'''))) -> REV(cons(rev1(Y0', rev(rev2(Y''', L'''))), rev2(Y0', rev(rev2(Y''', L''')))))
REV2(X, cons(Y, L)) -> REV2(Y, L)
REV2(X, cons(Y, L)) -> REV(cons(X, rev(rev2(Y, L))))
REV(cons(X, L)) -> REV2(X, L)
REV2(X, cons(Y0, cons(Y''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', nil))))))
rev1(0, nil) -> 0
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
two new Dependency Pairs are created:
REV2(X, cons(Y0, cons(Y''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', nil))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', nil)))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', nil)))), rev2(Y0', rev(rev(cons(Y'''', nil))))))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', nil), rev2(Y'''', nil))))))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳Nar
→DP Problem 4
↳Nar
...
→DP Problem 11
↳Narrowing Transformation
REV2(X, cons(Y0, cons(Y'''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', nil), rev2(Y'''', nil))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', nil)))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', nil)))), rev2(Y0', rev(rev(cons(Y'''', nil))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', nil))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(nil))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'''', cons(Y1', L'''))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(cons(rev1(Y'''', rev(rev2(Y1', L'''))), rev2(Y'''', rev(rev2(Y1', L''')))))))))))
REV2(X, cons(Y0, cons(Y''''', cons(Y'''', cons(Y1', L'''))))) -> REV(rev(cons(Y0, rev(cons(rev1(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L''')))))), rev2(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L''')))))))))))
REV2(X, cons(Y0', cons(Y''''', cons(Y'''', cons(Y1', L'''))))) -> REV(cons(rev1(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L'''))))))))), rev2(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L''')))))))))))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', rev(nil)), rev2(Y'''', rev(nil)))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', nil)))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', rev(nil))))), rev2(Y0', rev(rev(cons(Y'''', rev(nil)))))))
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', nil), rev2(Y0', nil)))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', L'')))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', rev(rev2(Y'', L''))), rev2(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', L'')))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L'')))))), rev2(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', rev(nil)), rev2(Y0', rev(nil))))
REV2(X, cons(Y0', cons(Y''', L'''))) -> REV(cons(rev1(Y0', rev(rev2(Y''', L'''))), rev2(Y0', rev(rev2(Y''', L''')))))
REV2(X, cons(Y, L)) -> REV2(Y, L)
REV2(X, cons(Y, L)) -> REV(cons(X, rev(rev2(Y, L))))
REV(cons(X, L)) -> REV2(X, L)
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', cons(Y', L')))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(rev(cons(Y1', rev(rev2(Y', L'))))))))))))))
rev1(0, nil) -> 0
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
four new Dependency Pairs are created:
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', nil))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(nil))))))))))
REV2(X, cons(Y0', cons(Y''''', cons(Y'''', cons(Y1', nil))))) -> REV(cons(rev1(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(nil)))))))), rev2(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(nil))))))))))
REV2(X, cons(Y0, cons(Y''''', cons(Y'''', cons(Y1', nil))))) -> REV(rev(cons(Y0, rev(cons(rev1(Y''''', rev(rev(cons(Y'''', rev(nil))))), rev2(Y''''', rev(rev(cons(Y'''', rev(nil))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'''', cons(Y1', nil))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(cons(rev1(Y'''', rev(nil)), rev2(Y'''', rev(nil))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', nil))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', nil)))))))))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳Nar
→DP Problem 4
↳Nar
...
→DP Problem 12
↳Narrowing Transformation
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', nil))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', nil)))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'''', cons(Y1', nil))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(cons(rev1(Y'''', rev(nil)), rev2(Y'''', rev(nil))))))))))
REV2(X, cons(Y0, cons(Y''''', cons(Y'''', cons(Y1', nil))))) -> REV(rev(cons(Y0, rev(cons(rev1(Y''''', rev(rev(cons(Y'''', rev(nil))))), rev2(Y''''', rev(rev(cons(Y'''', rev(nil))))))))))
REV2(X, cons(Y0', cons(Y''''', cons(Y'''', cons(Y1', nil))))) -> REV(cons(rev1(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(nil)))))))), rev2(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(nil))))))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', nil)))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', nil)))), rev2(Y0', rev(rev(cons(Y'''', nil))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', cons(Y', L')))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(rev(cons(Y1', rev(rev2(Y', L'))))))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'''', cons(Y1', L'''))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(cons(rev1(Y'''', rev(rev2(Y1', L'''))), rev2(Y'''', rev(rev2(Y1', L''')))))))))))
REV2(X, cons(Y0, cons(Y''''', cons(Y'''', cons(Y1', L'''))))) -> REV(rev(cons(Y0, rev(cons(rev1(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L''')))))), rev2(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L''')))))))))))
REV2(X, cons(Y0', cons(Y''''', cons(Y'''', cons(Y1', L'''))))) -> REV(cons(rev1(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L'''))))))))), rev2(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L''')))))))))))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', rev(nil)), rev2(Y'''', rev(nil)))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', nil)))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', rev(nil))))), rev2(Y0', rev(rev(cons(Y'''', rev(nil)))))))
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', nil), rev2(Y0', nil)))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', L'')))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', rev(rev2(Y'', L''))), rev2(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', L'')))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L'')))))), rev2(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', rev(nil)), rev2(Y0', rev(nil))))
REV2(X, cons(Y0', cons(Y''', L'''))) -> REV(cons(rev1(Y0', rev(rev2(Y''', L'''))), rev2(Y0', rev(rev2(Y''', L''')))))
REV2(X, cons(Y, L)) -> REV2(Y, L)
REV2(X, cons(Y, L)) -> REV(cons(X, rev(rev2(Y, L))))
REV(cons(X, L)) -> REV2(X, L)
REV2(X, cons(Y0, cons(Y'''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', nil), rev2(Y'''', nil))))))
rev1(0, nil) -> 0
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
six new Dependency Pairs are created:
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', cons(Y', L')))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(rev(cons(Y1', rev(rev2(Y', L'))))))))))))))
REV2(X, cons(Y0', cons(Y''''', cons(Y'''', cons(Y1'', cons(Y'0, L'')))))) -> REV(cons(rev1(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(rev(cons(Y1'', rev(rev2(Y'0, L'')))))))))))), rev2(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(rev(cons(Y1'', rev(rev2(Y'0, L''))))))))))))))
REV2(X, cons(Y0, cons(Y''''', cons(Y'''', cons(Y1'', cons(Y'0, L'')))))) -> REV(rev(cons(Y0, rev(cons(rev1(Y''''', rev(rev(cons(Y'''', rev(rev(cons(Y1'', rev(rev2(Y'0, L''))))))))), rev2(Y''''', rev(rev(cons(Y'''', rev(rev(cons(Y1'', rev(rev2(Y'0, L''))))))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'''', cons(Y1'', cons(Y'0, L'')))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(cons(rev1(Y'''', rev(rev(cons(Y1'', rev(rev2(Y'0, L'')))))), rev2(Y'''', rev(rev(cons(Y1'', rev(rev2(Y'0, L''))))))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1'', cons(Y'0, L'')))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(cons(rev1(Y1'', rev(rev2(Y'0, L''))), rev2(Y1'', rev(rev2(Y'0, L''))))))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', cons(Y'0, nil)))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(rev(cons(Y1', rev(nil)))))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', cons(Y'0, cons(Y1, L''))))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(rev(cons(Y1', rev(rev(cons(Y'0, rev(rev2(Y1, L'')))))))))))))))))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳Nar
→DP Problem 4
↳Nar
...
→DP Problem 13
↳Remaining Obligation(s)
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', cons(Y'0, cons(Y1, L''))))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(rev(cons(Y1', rev(rev(cons(Y'0, rev(rev2(Y1, L'')))))))))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', cons(Y'0, nil)))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(rev(cons(Y1', rev(nil)))))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1'', cons(Y'0, L'')))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', rev(cons(rev1(Y1'', rev(rev2(Y'0, L''))), rev2(Y1'', rev(rev2(Y'0, L''))))))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'''', cons(Y1'', cons(Y'0, L'')))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(cons(rev1(Y'''', rev(rev(cons(Y1'', rev(rev2(Y'0, L'')))))), rev2(Y'''', rev(rev(cons(Y1'', rev(rev2(Y'0, L''))))))))))))))
REV2(X, cons(Y0, cons(Y''''', cons(Y'''', cons(Y1'', cons(Y'0, L'')))))) -> REV(rev(cons(Y0, rev(cons(rev1(Y''''', rev(rev(cons(Y'''', rev(rev(cons(Y1'', rev(rev2(Y'0, L''))))))))), rev2(Y''''', rev(rev(cons(Y'''', rev(rev(cons(Y1'', rev(rev2(Y'0, L''))))))))))))))
REV2(X, cons(Y0', cons(Y''''', cons(Y'''', cons(Y1'', cons(Y'0, L'')))))) -> REV(cons(rev1(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(rev(cons(Y1'', rev(rev2(Y'0, L'')))))))))))), rev2(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(rev(cons(Y1'', rev(rev2(Y'0, L''))))))))))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'''', cons(Y1', nil))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(cons(rev1(Y'''', rev(nil)), rev2(Y'''', rev(nil))))))))))
REV2(X, cons(Y0, cons(Y''''', cons(Y'''', cons(Y1', nil))))) -> REV(rev(cons(Y0, rev(cons(rev1(Y''''', rev(rev(cons(Y'''', rev(nil))))), rev2(Y''''', rev(rev(cons(Y'''', rev(nil))))))))))
REV2(X, cons(Y0', cons(Y''''', cons(Y'''', cons(Y1', nil))))) -> REV(cons(rev1(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(nil)))))))), rev2(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(nil))))))))))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', nil), rev2(Y'''', nil))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', nil)))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', nil)))), rev2(Y0', rev(rev(cons(Y'''', nil))))))
REV2(X, cons(Y0, cons(Y''', cons(Y'''', cons(Y1', L'''))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(cons(rev1(Y'''', rev(rev2(Y1', L'''))), rev2(Y'''', rev(rev2(Y1', L''')))))))))))
REV2(X, cons(Y0, cons(Y''''', cons(Y'''', cons(Y1', L'''))))) -> REV(rev(cons(Y0, rev(cons(rev1(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L''')))))), rev2(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L''')))))))))))
REV2(X, cons(Y0', cons(Y''''', cons(Y'''', cons(Y1', L'''))))) -> REV(cons(rev1(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L'''))))))))), rev2(Y0', rev(rev(cons(Y''''', rev(rev(cons(Y'''', rev(rev2(Y1', L''')))))))))))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', nil)))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', rev(nil)), rev2(Y'''', rev(nil)))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', nil)))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', rev(nil))))), rev2(Y0', rev(rev(cons(Y'''', rev(nil)))))))
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', nil), rev2(Y0', nil)))
REV2(X, cons(Y0, cons(Y'''', cons(Y'', L'')))) -> REV(rev(cons(Y0, rev(cons(rev1(Y'''', rev(rev2(Y'', L''))), rev2(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0', cons(Y'''', cons(Y'', L'')))) -> REV(cons(rev1(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L'')))))), rev2(Y0', rev(rev(cons(Y'''', rev(rev2(Y'', L''))))))))
REV2(X, cons(Y0', cons(Y''', nil))) -> REV(cons(rev1(Y0', rev(nil)), rev2(Y0', rev(nil))))
REV2(X, cons(Y0', cons(Y''', L'''))) -> REV(cons(rev1(Y0', rev(rev2(Y''', L'''))), rev2(Y0', rev(rev2(Y''', L''')))))
REV2(X, cons(Y, L)) -> REV2(Y, L)
REV2(X, cons(Y, L)) -> REV(cons(X, rev(rev2(Y, L))))
REV(cons(X, L)) -> REV2(X, L)
REV2(X, cons(Y0, cons(Y''', cons(Y'', cons(Y1', nil))))) -> REV(rev(cons(Y0, rev(rev(cons(Y''', rev(rev(cons(Y'', nil)))))))))
rev1(0, nil) -> 0
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))