R
↳Dependency Pair Analysis
REV(++(x, y)) -> REV1(x, y)
REV(++(x, y)) -> REV2(x, y)
REV1(x, ++(y, z)) -> REV1(y, z)
REV2(x, ++(y, z)) -> REV(++(x, rev(rev2(y, z))))
REV2(x, ++(y, z)) -> REV(rev2(y, z))
REV2(x, ++(y, z)) -> REV2(y, z)
R
↳DPs
→DP Problem 1
↳Polynomial Ordering
→DP Problem 2
↳Nar
REV1(x, ++(y, z)) -> REV1(y, z)
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
REV1(x, ++(y, z)) -> REV1(y, z)
POL(REV1(x1, x2)) = x2 POL(++(x1, x2)) = 1 + x2
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 3
↳Dependency Graph
→DP Problem 2
↳Nar
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Narrowing Transformation
REV2(x, ++(y, z)) -> REV2(y, z)
REV2(x, ++(y, z)) -> REV(rev2(y, z))
REV2(x, ++(y, z)) -> REV(++(x, rev(rev2(y, z))))
REV(++(x, y)) -> REV2(x, y)
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
two new Dependency Pairs are created:
REV2(x, ++(y, z)) -> REV(rev2(y, z))
REV2(x, ++(y', nil)) -> REV(nil)
REV2(x, ++(y0, ++(y'', z''))) -> REV(rev(++(y0, rev(rev2(y'', z'')))))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Nar
→DP Problem 4
↳Rewriting Transformation
REV2(x, ++(y0, ++(y'', z''))) -> REV(rev(++(y0, rev(rev2(y'', z'')))))
REV(++(x, y)) -> REV2(x, y)
REV2(x, ++(y, z)) -> REV(++(x, rev(rev2(y, z))))
REV2(x, ++(y, z)) -> REV2(y, z)
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
one new Dependency Pair is created:
REV2(x, ++(y0, ++(y'', z''))) -> REV(rev(++(y0, rev(rev2(y'', z'')))))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Nar
→DP Problem 4
↳Rw
...
→DP Problem 5
↳Forward Instantiation Transformation
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
REV2(x, ++(y, z)) -> REV2(y, z)
REV2(x, ++(y, z)) -> REV(++(x, rev(rev2(y, z))))
REV(++(x, y)) -> REV2(x, y)
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
two new Dependency Pairs are created:
REV(++(x, y)) -> REV2(x, y)
REV(++(x'', ++(y'', z''))) -> REV2(x'', ++(y'', z''))
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Nar
→DP Problem 4
↳Rw
...
→DP Problem 6
↳Narrowing Transformation
REV2(x, ++(y, z)) -> REV2(y, z)
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
REV2(x, ++(y, z)) -> REV(++(x, rev(rev2(y, z))))
REV(++(x'', ++(y'', z''))) -> REV2(x'', ++(y'', z''))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
two new Dependency Pairs are created:
REV2(x, ++(y, z)) -> REV(++(x, rev(rev2(y, z))))
REV2(x, ++(y', nil)) -> REV(++(x, rev(nil)))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, rev(rev(++(y0, rev(rev2(y'', z'')))))))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Nar
→DP Problem 4
↳Rw
...
→DP Problem 7
↳Rewriting Transformation
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, rev(rev(++(y0, rev(rev2(y'', z'')))))))
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
REV2(x, ++(y', nil)) -> REV(++(x, rev(nil)))
REV(++(x'', ++(y'', z''))) -> REV2(x'', ++(y'', z''))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
REV2(x, ++(y, z)) -> REV2(y, z)
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
one new Dependency Pair is created:
REV2(x, ++(y', nil)) -> REV(++(x, rev(nil)))
REV2(x, ++(y', nil)) -> REV(++(x, nil))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Nar
→DP Problem 4
↳Rw
...
→DP Problem 8
↳Rewriting Transformation
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
REV2(x, ++(y, z)) -> REV2(y, z)
REV(++(x'', ++(y'', z''))) -> REV2(x'', ++(y'', z''))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, rev(rev(++(y0, rev(rev2(y'', z'')))))))
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
one new Dependency Pair is created:
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, rev(rev(++(y0, rev(rev2(y'', z'')))))))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, rev(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Nar
→DP Problem 4
↳Rw
...
→DP Problem 9
↳Forward Instantiation Transformation
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, rev(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))))
REV(++(x'', ++(y'', z''))) -> REV2(x'', ++(y'', z''))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
REV2(x, ++(y, z)) -> REV2(y, z)
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost
two new Dependency Pairs are created:
REV2(x, ++(y, z)) -> REV2(y, z)
REV2(x, ++(y0, ++(y'', z''))) -> REV2(y0, ++(y'', z''))
REV2(x, ++(y', ++(y0'', ++(y'''', z'''')))) -> REV2(y', ++(y0'', ++(y'''', z'''')))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Nar
→DP Problem 4
↳Rw
...
→DP Problem 10
↳Remaining Obligation(s)
REV2(x, ++(y', ++(y0'', ++(y'''', z'''')))) -> REV2(y', ++(y0'', ++(y'''', z'''')))
REV2(x, ++(y0, ++(y'', z''))) -> REV2(y0, ++(y'', z''))
REV(++(x'', ++(y0'', ++(y'''', z'''')))) -> REV2(x'', ++(y0'', ++(y'''', z'''')))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))
REV(++(x'', ++(y'', z''))) -> REV2(x'', ++(y'', z''))
REV2(x, ++(y0, ++(y'', z''))) -> REV(++(x, rev(++(rev1(y0, rev(rev2(y'', z''))), rev2(y0, rev(rev2(y'', z'')))))))
rev(nil) -> nil
rev(++(x, y)) -> ++(rev1(x, y), rev2(x, y))
rev1(x, nil) -> x
rev1(x, ++(y, z)) -> rev1(y, z)
rev2(x, nil) -> nil
rev2(x, ++(y, z)) -> rev(++(x, rev(rev2(y, z))))
innermost